CHAPTER 6 DMA FUNCTIONS (DMA CONTROLLER)
129
User’s Manual U15195EJ5V0UD
6.12 Forcible Termination
In addition to the forcible interruption operation by means of NMI input, DMA transfer can be forcibly terminated by
the INITn bit of the DCHCn register (n = 0 to 3).
An example of forcible termination by the INITn bit of the DCHCn register is illustrated below (n = 0 to 3).
Figure 6-9. Example of Forcible Termination of DMA Transfer
(a) Block transfer via DMA channel 3 is started during block transfer via DMA channel 2
CPU CPU CPU CPU DMA2 DMA2 DMA2 DMA2 DMA2 CPU DMA3 DMA3 DMA3 DMA3 CPU CPU CPU
DMARQ2
(internal signal)
DMARQ3
(internal signal)
DMA channel 3 transfer start
DMA channel 3 terminal count
Forcible termination of DMA channel 2 transfer, bus released
DSA2, DDA2, DBC2,
DADC2, DCHC2
Register set
DCHC2
(INIT2 bit = 1)
Register set
DSA3, DDA3, DBC3,
DADC3, DCHC3
Register set
E22 bit = 1
TC2 bit = 0
E22 bit
→
0
TC2 bit = 0
E33 bit = 1
TC3 bit = 0
E33 bit
→
0
TC3 bit
→
1
(b) When transfer is suspended during DMA channel 1 block transfer, and transfer under another
condition is executed
CPU CPU CPU CPU DMA1 DMA1 DMA1 DMA1 DMA1 DMA1 CPU CPU CPU CPU DMA1 DMA1 DMA1 CPU
DMARQ1
(internal signal)
Forcible termination of DMA channel
1 transfer, bus released
DMA channel 1
terminal count
DSA1, DDA1, DBC1,
DADC1, DCHC1
Register set
DADC1,
DCHC1
Register set
DCHC1
(INIT1 bit = 1)
Register set
DSA1, DDA1,
DBC1
Register set
E11 bit = 1
TC1 bit = 0
E11 bit
→
0
TC1 bit = 0
E11 bit
→
1
TC1 bit = 0
E11 bit
→
0
TC1 bit
→
1
Remark
The values of the DSAn, DDAn, and DBCn registers (n = 0 to 3) are retained even when DMA
transfer is forcibly terminated, because these registers are FIFO-format buffer registers. The next
transfer condition can be set to these registers even while DMA transfer is in progress. On the
other hand, the setting of the DADCn and DCHCn registers is invalid during DMA transfer because
these registers are not buffer registers (see
6.8 Next Address Setting Function
,
6.3.4 DMA
addressing control registers 0 to 3 (DADC0 to DADC3)
, and
6.3.5 DMA channel control
registers 0 to 3 (DCHC0 to DCHC3)
).