![](http://datasheet.mmic.net.cn/30000/M30245MC-XXXGP_datasheet_2358670/M30245MC-XXXGP_107.png)
M30245 Group
DMA
Rev.2.00
Oct 16, 2006
page 105 of 264
REJ03B0005-0200
Transfer modes
Single transfer mode
DMA transfer occurs until the tranfer counter underflows. Afterward, the DMA becomes inactive.
Repeat transfer mode
The DMA remains active even after the transfer counter underflows. The transfer counter and forward direction address
pointer are reloaded after each transfer counter underflow. The DMA becomes inactive when "0" is written to the DMA
enable bit.
DMA enable bit
Setting the DMA enable bit to "1" makes the DMAC active. If data transfer starts immediately after the DMAC is turned
active, the following operations are carried out:
(1) Reloads the value of either the source pointer or the destination pointer - the one specified for the forward direction
- to the forward direction address pointer.
(2) Reloads the value of the transfer counter reload register to the transfer counter.
Thus writing "1" to the DMA enable bit with the DMAC being active carries out the operations given above, so the DMAC
operates again from the initial state at the instant "1" is written to the DMA enable bit.
DMA request bit
The DMAC can generate a DMA transfer request signal triggered by a factor chosen in advance out of DMA request
causes for each channel (DMiSL registers).
DMA request causes include the following.
Internal causes triggered by using the interrupt request signals from the built-in peripheral functions and software
DMA request all controlled by software.
External causes effected by utilizing the input from external interrupt signals.
For the selection of DMA request causes, see the descriptions of the DMAi request cause select registers.
The DMA request bit turns to "1" if the DMA transfer request signal occurs regardless of the DMAC's state (regardless
of whether the DMA enable bit is set "1" or to "0"). It turns to "0" immediately before data transfer starts.
In addition, this bit can be set to "0" by software, but it cannot be set to "1".
There can be instances in which a change in the DMA request cause selection bits causes the DMA request bit to turn
to "1". Make sure to set the DMA request bit to "0" after the DMA request cause selection bits are changed.
The DMA request bit turns to "1" if a DMA transfer request signal occurs, and turns to "0" immediately before data transfer
starts. If the DMAC is active, data transfer starts immediately, so the value of the DMA request bit, if read by software,
turns out to be "0" in most cases. To examine whether the DMAC is active, read the DMA enable bit.
The timing changes of the DMA request bit are discussed in the following section.