RM0090
After an event, the peripheral sends a request signal to the DMA controller. The DMA
controller serves the request depending on the channel priorities. As soon as the DMA
controller accesses the peripheral, an Acknowledge signal is sent to the peripheral by the
DMA controller. The peripheral releases its request as soon as it gets the Acknowledge
signal from the DMA controller. Once the request has been deasserted by the peripheral,
the DMA controller releases the Acknowledge signal. If there are more requests, the
peripheral can initiate the next transaction.
10.3.3
Channel selection
Each stream is associated with a DMA request that can be selected out of 8 possible
channel requests. The selection is controlled by the CHSEL[2:0] bits in the DMA_SxCR
register.
The 8 requests from the peripherals (TIM, ADC, SPI, I2C, etc.) are independently connected
to each channel and their connection depends on the product implementation.
See the following table(s) for examples of DMA request mappings.
Peripheral
Stream 0
requests
Channel 0
SPI3_RX
Channel 1
I2C1_RX
Channel 2
TIM4_CH1
I2S3_EXT_
Channel 3
RX
Channel 4
UART5_RX
Channel 5
UART8_TX
Figure 35. Channel selection
REQ_STRx_CH7
REQ_STRx_CH6
REQ_STRx_CH5
REQ_STRx_CH4
REQ_STRx_CH3
REQ_STRx_CH2
REQ_STRx_CH1
REQ_STRx_CH0
3 1
DMA_SxCR
Table 42. DMA1 request mapping
Stream 1
Stream 2
-
SPI3_RX
-
TIM7_UP
I2S3_EXT_
-
RX
TIM2_UP
I2C3_RX
TIM2_CH3
USART3_RX
UART4_RX
TIM3_CH4
(1)
(1)
UART7_TX
TIM3_UP
REQ_STREAMx
2 7
25
CHSEL[2:0]
Stream 3
Stream 4
SPI2_RX
SPI2_TX
-
TIM7_UP
I2S2_EXT_
TIM4_CH2
TX
I2S2_EXT_
I2C3_TX
RX
USART3_TX
UART4_TX
TIM3_CH1
(1)
UART7_RX
TIM3_TRIG
RM0090 Rev 18
DMA controller (DMA)
0
Stream 5
Stream 6
-
SPI3_TX
I2C1_RX
I2C1_TX
I2S3_EXT_
TIM4_UP
TX
TIM2_CH2
TIM2_CH1
TIM2_CH4
USART2_RX
USART2_TX
(1)
TIM3_CH2
UART8_RX
ai15947b
Stream 7
SPI3_TX
I2C1_TX
TIM4_CH3
TIM2_UP
TIM2_CH4
UART5_TX
TIM3_CH3
307/1749
338
Need help?
Do you have a question about the STM32F405 and is the answer not in the manual?