Overview
5-3
Direct Memory Access (DMA) Controller
-
Auxiliary channel: This channel allows the host port to make requests into
the CPU’s memory space. The auxiliary channel requests may be priori-
tized relative to other channels and the CPU.
-
Split-channel operation: A single channel can be used to perform both the
receive and transmit element transfers from or to a peripheral simulta-
neously, effectively acting like two DMA channels. See section 5.8 on page
5-28 for more information.
-
Multiframe transfer: Each block transfer can consist of multiple frames of
a programmable size. See Section 5.5,
Transfer Counting.
-
Programmable priority: Each channel has independently programmable
priorities versus the CPU.
-
Programmable address generation: Each channel’s source and destination
address registers can have configurable indexes for each read and write
transfer. The address can remain constant, increment, decrement, or be
adjusted by a programmable value. The programmable value allows an in-
dex for the last transfer in a frame distinct from that used for the preceding
transfers. See section 5.7.1 on page 5-22 for more information.
-
Full 32-bit address range: The DMA controller can access any region in
the memory map:
J
On-chip data memory
J
On-chip program memory when it is mapped into memory space
rather than being used as cache
J
On-chip peripherals
J
External memory via the EMIF
J
Expansion memory via the expansion bus
-
Programmable width transfers: Each channel can be independently con-
figured to transfer either bytes, 16-bit halfwords, or 32-bit words. See sec-
tion 5.7.3 on page 5-23 for more information.
-
Autoinitialization: Once a block transfer is complete, a DMA channel can
automatically reinitialize itself for the next block transfer. See section 5.4.1
on page 5-13 for more information.
-
Event synchronization: Each read, write, or frame transfer may be initiated
by selected events. See Section 5.6 on page 5-17 for more information.
-
Interrupt generation: On completion of each frame transfer or block transfer,
as well as on various error conditions, each DMA channel can send an inter-
rupt to the CPU. See section 5.10 on page 5-33 for more information.