RM0046 Enhanced Direct Memory Access (eDMA)
Doc ID 16912 Rev 5 383/936
18.3 Features
The eDMA is a highly programmable data transfer engine, which has been optimized to
minimize the required intervention from the host processor. It is intended for use in
applications where the data size to be transferred is statically known, and is not defined
within the data packet itself. The eDMA module features:
● All data movement via dual-address transfers: read from source, write to destination
● Programmable source, destination addresses, transfer size, plus support for enhanced
addressing modes
● 16-channel implementation performs complex data transfers with minimal intervention
from a host processor
– 32 bytes of data registers, used as temporary storage to support burst transfers
(refer to SSIZE bit)
– Connections to the crossbar switch for bus mastering the data movement
● Transfer control descriptor (TCD) organized to support two-deep, nested transfer
operations
– 32-byte TCD per channel stored in local memory
– An inner data transfer loop defined by a minor byte transfer count
– An outer data transfer loop defined by a major iteration count
● Channel activation via one of three methods:
– Explicit software initiation
– Initiation via a channel-to-channel linking mechanism for continual transfers
– Peripheral-paced hardware requests (one per channel)
Note: For all three methods, one activation per execution of the minor loop is required.
● Support for fixed-priority and round-robin channel arbitration
● Channel completion reported via optional interrupt requests
– 1 interrupt per channel, optionally asserted at completion of major iteration count
– Error terminations are enabled per channel, and logically summed together to
form a single error interrupt.
● Support for scatter/gather DMA processing
● Any channel can be programmed so that it can be suspended by a higher priority
channel’s activation, before completion of a minor loop.
Throughout this chapter, n is used to reference the channel number. Additionally, data sizes
are defined as byte (8-bit), halfword (16-bit), word (32-bit) and doubleword (64-bit).
18.4 Modes of operation
18.4.1 Normal mode
In normal mode, the eDMA transfers data between a source and a destination. The source
and destination can be a memory block or an I/O block capable of operation with the eDMA.