![](http://datasheet.mmic.net.cn/110000/ML674001TC_datasheet_3507949/ML674001TC_206.png)
ML674001 Series/ML675001 Series User’s Manual
Chapter 12
Direct Memory Access Controller (DMAC)
12-16
12.3
Operational Description
A transfer request starts DMA transfers. The DMA controller automatically stops when the specified number of
transfers are complete.
The DMA controller utilizes Dual Address Mode transfer.
This type of transfer
involves two memory or I/O cycles.
The data being transferred is first read from a source address and
subsequently written to a destination address in the next cycle.
The device will initially signal a request to the
DMA controller, e.g. by asserting the DREQ signal.
In response, the DMA controller will grant the device or
memory access to the bus by causing the OUTPUT_ENABLE or WRITE_ENABLE and CS strobes of the
device or memory to be asserted thus giving the device or memory access to the bus.
12.3.1
DMA Transfer Modes
BRQ, bit 5 in the DMA transfer mode register (DMACTMOD0 or DMACTMOD1), offers a choice of two
DMA transfer modes for the corresponding DMA channel.
1.
Cycle stealing mode: The DMA controller surrenders bus access after each individual DMA transfer
and waits for another transfer request before acquiring bus access for the next transfer. This start and
stop process repeats until the specified number of transfers are complete or there is an error.
2.
Burst mode: The DMA controller does not surrender bus access until the specified number of transfers
are complete or there is an error.
12.3.2
DMA Request Sources
ARQ, bit 0 in the DMA transfer mode register (DMACTMOD0 or DMACTMOD1), offers a choice of two
sources for DMA transfer requests: external and internal.
1.
External input (DREQ):
The trigger here is a rising edge in the input signal DREQ. The external source must then negate
(falling edge) DREQ for each individual transfer in cycle stealing mode. Burst mode ignores this input
until the specified number of transfers are complete.
The output signal DREQCLR indicates when the DMA controller is ready for such DREQ edges. The
external source must assert DREQ when DREQCLR is at Low level and negate DREQ when
DREQCLR is at High level.
Note that the DREQCLR timing differs between cycle stealing and burst modes. For cycle stealing
mode, DREQCLR goes to High level after each individual transfer (byte, halfword, or word), so the
external source must wait for TCOUT, the final transfer start signal, to also go to High level before
starting any cleanup operations. For burst mode, DREQCLR and TCOUT go to High level
simultaneously after the specified number of transfers are complete.
Negating DREQ does not cancel a DMA transfer already in progress. The DMA controller retains bus
access as described above. DREQCLR and TCOUT go to High level regardless of whether DREQ is
already negated. Ensure that the external source wait for DREQCLR to go to High level before
negating DREQ.
2.
Software request mode:
For memory-to-memory transfers and transfers between memory and I/O modules that cannot
generate DREQ transfer requests, the program sets a bit to have the DMA controller generate internal
requests until the specified number of transfers are complete. As long as this bit remains set, the DMA
controller automatically performs DMA transfers each time that it is started.