DMA controller (DMA)
Figure 30. Memory-to-memory mode
1. For double-buffer mode.
9.3.7
Pointer incrementation
Peripheral and memory pointers can optionally be automatically post-incremented or kept
constant after each transfer depending on the PINC and MINC bits in the DMA_SxCR
register.
Disabling the Increment mode is useful when the peripheral source or destination data are
accessed through a single register.
If the Increment mode is enabled, the address of the next transfer will be the address of the
previous one incremented by 1 (for bytes), 2 (for half-words) or 4 (for words) depending on
the data width programmed in the PSIZE or MSIZE bits in the DMA_SxCR register.
In order to optimize the packing operation, it is possible to fix the increment offset size for
the peripheral address whatever the size of the data transferred on the AHB peripheral port.
The PINCOS bit in the DMA_SxCR register is used to align the increment offset size with
the data size on the peripheral AHB port, or on a 32-bit address (the address is then
incremented by 4). The PINCOS bit has an impact on the AHB peripheral port only.
If PINCOS bit is set, the address of the next transfer is the address of the previous one
incremented by 4 (automatically aligned on a 32-bit address) whatever the PSIZE value.
The AHB memory port, however, is not impacted by this operation.
The PINC or the MINC bit needs to be set if the burst transaction is requested on the AHB
peripheral port or the AHB memory port, respectively, to satisfy the AMBA protocol (burst is
not allowed in the fixed address mode).
223/1422
DMA controller
Arbiter
Stream enable
Doc ID 018909 Rev 4
DMA_SxM0AR
(1)
DMA_SxM1AR
AHB memory
port
FIFO
FIFO
level
FIFO
AHB peripheral
port
DMA_SxPAR
RM0090
Memory bus
Memory 2
destination
Peripheral bus
Memory 1
source
ai15950
Need help?
Do you have a question about the STM32F40 Series and is the answer not in the manual?
Questions and answers