AT32F421
Series Reference Manual
2022.11.11
Page 99
Rev 2.02
If the two channels have the same priority level, then the channel with lower number will get
priority over the one with higher number. For example, channel 1 has priority over channel 2.
Data transfer direction (DTD)
Memory-to-peripheral (M2P), peripheral-to-memory (P2M)
Address incremented mode (PINCM/MINCM)
In incremented mode, the subsequent transfer address is the previous address plus transfer width
(PWIDTH/MWIDTH).
Circular mode (LM)
In circular mode, the contents in the DMA_CxDTCNT register is automatically reloaded with the
initially programmed value after the completion of the last data transfer.
Memory-to-memory mode (M2M)
This mode indicates that DMA channels perform memory-to-memory transfer (works without being
triggered by requests from peripherals). Circular mode and memory-to-memory mode cannot be
used simultaneously.
9.3.2
Handshake mechanism
In P2M and M2P mode, the peripherals need to send a request signal to the DMA controller. The DMA
channel will send a peripheral transfer request (single) until the signal is acknowledged. After the
completion of a peripheral transfer, the DMA controller sends an acknowledge signal to the peripheral.
The peripheral then releases its request as soon as it receives the acknowledge signal. At the same time,
the DMA controller releases the acknowledge signal as well.
9.3.3
Arbiter
When several channels are enabled simultaneously, the arbiter will restart arbitration after full data
transfer by the master controller. The channel with very high priority waits until the channel of the master
controller has completed data transfers before taking control of it. The master controller will re-arbitrate
to serve other channels as long as the channel completes a single transfer based on the master
controller priority.
Figure 9-2 Re-arbitrate after request/acknowledge
dma_req
dma_ack
One single transfer
Antother single transfer
Re-arbitrate
Re-arbitrate