
Specifications in this manual are tentative and subject to change
Rev. E
MITSUBISHI MICROCOMPUTERS
M30245 Group
SINGLE-CHIP 16-BIT CMOS MICROCOMPUTER
DMAC
100
Direct memory access controller
This microcomputer has four DMAC (direct memory access controller) channels that allow data to be sent to
memory without using the CPU. DMAC shares the same data bus with the CPU. The DMAC is given a higher right
of using the bus than the CPU, which leads to working the cycle stealing method. On this account, the operation
from the occurrence of a DMA transfer request signal to the completion of 1-word (16-bit) or 1-byte (8-bit) data
transfer can be performed at high speed. Figure 1.70 shows the DMAC block diagram. Table 1.37 shows the
DMAC specifications. Figure 1.71 to Figure 1.73 show the registers used by the DMAC.
Either a write signal to the software DMA request bit or an interrupt request signal can be used as the DMA
transfer request signal. But the DMA transfer is not affected by either the interrupt enable flag (I flag) or by the
interrupt priority level. The DMA transfer doesn’t affect any interrupts either.
If the DMAC is active (the DMA enable bit is set to 1), data transfer starts every time a DMA transfer request signal
occurs. If the cycle of the occurrences of DMA transfer request signals is higher than the DMA transfer cycle, there
can be instances in which the number of transfer requests doesn’t match the number of transfers. For details, see
the description of the DMA request bit.
Data bus low-order bits
DMA latch high-order bits
DMA latch low-order bits
DMA2 source pointer SAR2(20)
DMA2 destination pointer DAR2 (20)
DMA2 forward address pointer (20) (Note)
Data bus high-order bits
Address bus
DMA3 destination pointer DAR3 (20)
DMA3 source pointer SAR3 (20)
DMA3 forward address pointer (20) (Note)
DMA2 transfer counter reload register TCR2 (16)
DMA2 transfer counter TCR2 (16)
DMA3 transfer counter reload register TCR3 (16)
DMA3 transfer counter TCR3 (16)
(addresses 0189 16, 018816)
(addresses 0199 16, 019816)
(addresses 0182 16 to 018016)
(addresses 018616 to 018416)
(addresses 0192 16 to 019016)
(addresses 019616 to 019416)
Note: Pointer is incremented by a DMA request.
DMA0 source pointer SAR0(20)
DMA0 destination pointer DAR0 (20)
DMA0 forward address pointer (20) (Note)
DMA1 destination pointer DAR1 (20)
DMA1 source pointer SAR1 (20)
DMA1 forward address pointer (20) (Note)
(addresses 0022 16 to 002016)
(addresses 002616 to 002416)
(addresses 0032 16 to 003016)
(addresses 003616 to 003416)
DMA0 transfer counter reload register TCR0 (16)
DMA0 transfer counter TCR0 (16)
DMA1 transfer counter reload register TCR1 (16)
DMA1 transfer counter TCR1 (16)
(addresses 0029 16, 002816)
(addresses 0039 16, 003816)
Figure 1.70. DMAC block diagram