GD32A50x User Manual
237
3. Configure the CMEN bit in the DMA_CHxCTL register to enable/disable the circular mode.
4. Configure the PRIO bits in the DMA_CHxCTL register to set the channel software priority.
5. Configure the memory and peripheral transfer width, memory and peripheral address
generation algorithm in the DMA_CHxCTL register.
6. Configure the enable bit for full transfer finish interrupt, half transfer finish interrupt,
transfer error interrupt in the DMA_CHxCTL register.
7. Configure the DMA_CHxPADDR register for setting the peripheral base address.
8. Configure the DMA_CHxMADDR register for setting the memory base address.
9. Configure the DMA_CHxCNT register to set the total transfer data number.
10.
Configure the CHEN bit with ‘1’ in the DMA_CHxCTL register to enable the channel.
11.4.8.
Interrupt
Each DMA channel has a dedicated interrupt. There are three types of interrupt event,
including full transfer finish, half transfer finish, and transfer error.
Each interrupt event has a dedicated flag bit in the DMA_INTF register, a dedicated clear bit
in the DMA_INTC register, and a dedicated enable bit in the DMA_CHxCTL register. The
relationship is described in the following
Table 11-2. interrupt events
Interrupt event
Flag bit
Clear bit
Enable bit
DMA_INTF
DMA_INTC
DMA_CHxCTL
Full transfer finish
FTFIF
FTFIFC
FTFIE
Half transfer finish
HTFIF
HTFIFC
HTFIE
Transfer error
ERRIF
ERRIFC
ERRIE
The DMA interrupt logic is shown in the
Figure 11-3. DMA interrupt logic
, an interrupt can
be produced when any type of interrupt event occurs and enabled on the channel.
Figure 11-3. DMA interrupt logic
and
and
and
or
FTFIFx
FTFIEx
HTFIFx
HTFIEx
ERRIFx
ERRIEx
CHxINTF
Note:
“x” indicates channel number (x=0…6).