DMA (Direct Memory Access)

group group_hal_impl_dma

DW (DataWire) is one of two DMA hardware implementations for CAT1 (PSoC 6).

DW is designed for low latency memory to peripheral or peripheral to memory transfers but can also perform memory to memory transfers and peripheral to peripheral transfers.

DMAC (Direct Memory Access Controller) is the second of two DMA hardware implementations for CAT1 (PSoC 6). It is also the implementation that is found on CAT2 (PMG/PSoC 4) devices. DMAC is designed with high memory bandwidth for large memory to memory transfers but can perform peripheral to memory, memory to peripheral, and peripheral to peripheral transfers.

Which DMA type is used is dependent on the exact hardware and number of DMA channels already in use. This implementation will attempt to use DMAC first for memory to memory transfers and Datawire otherwise but either type may be used.

Interconnect

For both DW and DMAC each channel has a single input and a single output trigger available. The input, when triggered, initiates a DMA transfer of the configured type (note that this also affects the type transferred by the SW triggering). For output, a trigger is generated when a DMA transfer of the configured type is completed. For DW and DMAC neither input nor output triggers can be disabled completely but the signals do not, of course, have to be connected through the interconnect.

Defines

CYHAL_DMA_PRIORITY_DEFAULT

Default DMA channel priority.

CYHAL_DMA_PRIORITY_HIGH

High DMA channel priority.

CYHAL_DMA_PRIORITY_MEDIUM

Medium DMA channel priority.

CYHAL_DMA_PRIORITY_LOW

Low DMA channel priority.