Direct memory access controller (DMA) RM0367
270/1043 RM0367 Rev 7
After an event, the following steps of a single DMA transfer occur:
1. The peripheral sends a single DMA request signal to the DMA controller.
2.  The DMA controller serves the request, depending on the priority of the channel 
associated to this peripheral request.
3.  As soon as the DMA controller grants the peripheral, an acknowledge is sent to the 
peripheral by the DMA controller.
4.  The peripheral releases its request as soon as it gets the acknowledge from the DMA 
controller.
5.  Once the request is de-asserted by the peripheral, the DMA controller releases the 
acknowledge.
The peripheral may order a further single request and initiate another single DMA transfer.
The request/acknowledge protocol is used when a peripheral is either the source or the 
destination of the transfer. For example, in case of memory-to-peripheral transfer, the 
peripheral initiates the transfer by driving its single request signal to the DMA controller. The 
DMA controller reads then a single data in the memory and writes this data to the peripheral.
For a given channel x, a DMA block transfer consists of a repeated sequence of:
• a single DMA transfer, encapsulating two AHB transfers of a single data, over the DMA 
AHB bus master:
– a single data read (byte, half-word or word) from the peripheral data register or a 
location in the memory, addressed through an internal current peripheral/memory 
address register.
The start address used for the first single transfer is the base address of the 
peripheral or memory, and is programmed in the DMA_CPARx or DMA_CMARx 
register.
– a single data write (byte, half-word or word) to the peripheral data register or a 
location in the memory, addressed through an internal current peripheral/memory 
address register.
The start address used for the first transfer is the base address of the peripheral or 
memory, and is programmed in the DMA_CPARx or DMA_CMARx register.
• post-decrementing of the programmed DMA_CNDTRx register
This register contains the remaining number of data items to transfer (number of AHB 
‘read followed by write’ transfers).
This sequence is repeated until DMA_CNDTRx is null.
Note: The AHB master bus source/destination address must be aligned with the programmed size 
of the transferred single data to the source/destination.
11.4.3  DMA arbitration
The DMA arbiter manages the priority between the different channels.
When an active channel x is granted by the arbiter (hardware requested or software 
triggered), a single DMA transfer is issued (such as a AHB ‘read followed by write’ transfer 
of a single data). Then, the arbiter considers again the set of active channels and selects the 
one with the highest priority.