
ML674001 Series/ML675001 Series User’s Manual
Chapter 12
Direct Memory Access Controller (DMAC)
12-21
12.3.6
Important Usage Notes
1.
When setting up a DMA transfer, always take into consideration bus width, address alignment, and
any other access restrictions in effect for the source and destination devices.
2.
There can be no DMA transfers in HALT mode because the CPU is not available to grant bus access.
3.
The DMA controller increments the source (DMACSAD0 or DMACSAD1) and destination
(DMACDAD0 or DMACDAD1) addresses by the transfer size in bytes if the corresponding device
type so specifies. The hardware enforces alignment by internally ignoring the lowest address bits as
appropriate for the transfer size, but reading an address register returns those bits exactly as written.
Example: Writing address of 0x10000011
Word (32-bit) transfer:
The DMA controller internally forces the lowest 2 bits to “00” for an effective
address of 0x10000000. Reading the register, however, returns
0x10000011.
Halfword (16-bit) transfer: The DMA controller internally forces the lowest bit to “0” for an effective
address of 0x10000010. Reading the register, however, returns
0x10000011.
4.
DMA transfers are not possible between certain combinations of source and destination devices.
Built-in peripheral registers , for example SIO, UART with FIFO and I2C, can not be set as source or
destination of a DMA transfer.
Table 8.2 lists the choices available for the transfer size (TSIZ) field in the DMA transfer mode
register (DMAMOD0 or DMAMOD1) for the channel.
Internal device
(internal SRAM)
External device
Transfer
destination
Incremental
address device
Incremental address
device
Fixed address device
Transfer source
Bus width
32bit
8bit
16bit
8bit
16bit
Internal
device
(internal
SRAM)
Incremental
address
device
32 bit
W/H/B
B
H
8 bit
W/H/B
B
H
Incremental
address
device
16 bit
W/H/B
B
H
8 bit
B
X
External
device
Fixed
address
device
16 bit
H
X
H
W:
Word (32-bit) transfer
H:
Halfword (16-bit) transfer
B:
Byte (8-bit) transfer
X:
Invalid combination
5.
Restriction of DMA to External ROM area
DMA controller can not access external ROM area/BANK25.
This restriction applies to external
ROM area when it is remapped to BANK0 as well.
Thus, the DMA registers DMACSAD0/1 and
DMACDAD0/1, should never be set to addresses for BANK25(0xC800_0000~0xCFFF_FFFF) or
BANK0(0x0000_0000~0x07FF_FFFF).
These restrictions were implemented in order to optimize
efficiency during processor access to external ROM area.
6.
Restrictions of DMA to the internal SRAM from extarnal IO module (only ML674001 series)
When DMA contoller transmits to internal RAM from the external IO0/1 or the external IO2/3, in the
setting of IO01TYPE= [111] of IO01AC or IO23TYPE= [111] of IO23AC, the DMA transfer in cycle
steal mode cannot carry out. Because access to an external bus from CPU cannot be performed until
all transmission is completed, even if DMA transfer is set as cycle steal mode. Since it may be in a
deadlock state, do not set the above setting.