DMAC
97
Mitsubishi microcomputers
M16C / 62P Group
SINGLE-CHIP 16-BIT CMOS MICROCOMPUTER
development
Preliminary Specifications Rev.1.0
Specifications in this manual are tentative and subject to change.
DMAC
The DMAC (Direct Memory Access Controller) allows data to be transferred without the CPU intervention.
Two DMAC channels are included. Each time a DMA request occurs, the DMAC transfers one (8 or 16-bit)
data from the source address to the destination address. The DMAC uses the same data bus as used by
the CPU. Because the DMAC has higher priority of bus control than the CPU and because it makes use of
a cycle steal method, it can transfer one word (16 bits) or one byte (8 bits) of data within a very short time
after a DMA request is generated. Figure 1.13.1 shows the block diagram of the DMAC. Table 1.13.1
shows the DMAC specifications. Figures 1.13.2 to 1.13.4 show the DMAC-related registers.
Figure 1.13.1. DMAC Block Diagram
A
A
AA
AA
AA
AA
AA
AA
A
A
A
A
A
A
Data bus low-order bits
AA
DMA latch low-order bits
DMA0 source pointer SAR0(20)
AA
AA
DMA0 destination pointer DAR0 (20)
AA
DMA0 forward address pointer (20) (Note)
AA
Data bus high-order bits
AA
AA
AA
AAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAA
Address bus
DMA1 destination pointer DAR1 (20)
AA
DMA1 source pointer SAR1 (20)
AA
DMA1 forward address pointer (20) (Note)
AA
DMA0 transfer counter reload register TCR0 (16)
A
(addresses 0029
16
, 0028
16
)
AA
DMA0 transfer counter TCR0 (16)
AA
A
AA
A
DMA1 transfer counter TCR1 (16)
(addresses 0039
16
, 0038
16
)
(addresses 0022
16
to 0020
16
)
16
to 0024
16
)
(addresses 0032
16
to 0030
16
)
(addresses 0036
16
to 0034
16
)
Note: Pointer is incremented by a DMA request.
AA
A DMA request is generated by a write to the DMiSL register (i = 0–1)’s DSR bit, as well as by an interrupt
request which is generated by any function specified by the DMiSL register’s DMS and DSEL3–DSEL0 bits.
However, unlike in the case of interrupt requests, DMA requests are not affected by the I flag and the
interrupt control register, so that even when interrupt requests are disabled and no interrupt request can be
accepted, DMA requests are always accepted. Furthermore, because the DMAC does not affect interrupts,
the interrupt control register’s IR bit does not change state due to a DMA transfer.
A data transfer is initiated each time a DMA request is generated when the DMiCON register’s DMAE bit =
“1” (DMA enabled). However, if the cycle in which a DMA request is generated is faster than the DMA
transfer cycle, the number of transfer requests generated and the number of times data is transferred may
not match. For details, refer to “DMA Requests”.