GD32W51x User Manual
320
Figure 12-3. Handshake mechanism
DMA
Acknowledge
Peripheral
request
Peripheral is ready to transmit
or receive data, and assert the
request signal to DMA
Peripheral request
Peripheral
request
DMA acknowledge
Wait the DMA bus idle and
other higher priority channels
to have been processed
The corresponding channel has
the highest priority and the DMA
controller sents an AHB command
to access the peripheral
Peripheral releases the
request signal when it receives
the acknowledge signal
The DMA controller deasserts
the acknowledge signal when
it receives low request signal
Peripheral launches
the next request
Each DMA has 8 channels, with fixed multiple peripheral requests. The PERIEN bits in the
DMA_CHxCTL register determine which peripheral request signal connectes to each DMA
channel. The peripheral requests mapping of DMA0 is listed in
, and the peripheral requests mapping of DMA1 is listed in
.
Table 12-2. Peripheral requests to DMA0
, a peripheral request can be connected to two different DMA channels. It
is forbidden to simultaneously enable these two DMA channels with selecting the same
peripheral request. For example, in DMA0, I2C0_RX is connected to channel 0 and channel
5. When the PERIEN bits in the DMA_CH0CTL register are configured to 0b001 and the
PERIEN bits in the DMA_CH5CTL register are configured to 0b001, enable these two
channels and responsing the request from I2C0 at the same time will cause transmission
error.
Table 12-2. Peripheral requests to DMA0
Channel
Channel 0 Channel 1 Channel 2 Channel 3 Channel 4 Channel 5 Channel 6 Channel 7
P
E
R
IE
N
[2
:0
]
000
●
●
●
SPI1_RX SPI1_TX
●
●
●
001
I2C0_RX
●
●
●
●
I2C0_RX I2C0_TX I2C0_TX
010
TIMER3_CH
0
●
●
TIMER3_C
H1
I2S1_ADD
_TX
●
TIMER3_U
P
TIMER3_C
H2
011
●
TIMER1_
UP
TIMER1_
CH2
●
I2S1_ADD
_RX
●
TIMER1_C
H0
TIMER1_C
H1
TIMER1_C
H3
TIMER1_U
P
TIMER1_C
H3
100
●
USART2_
RX
●
USART2_
TX
●
USART1_
RX
USART1_
TX
●
101
●
●
TIMER2_CH
3
TIMER2_UP
●
TIMER2_C
H0
TIMER2_T
G
TIMER2_C
H1
●
TIMER2_C
H2
110 TIMER4_CH TIMER4_ TIMER4_CH TIMER4_C TIMER4_C
●
TIMER4_U
●