Enhanced Direct Memory Access (eDMA)
MPC5566 Microcontroller Reference Manual, Rev. 2
9-46 Freescale Semiconductor
9.4.4.4 Fixed-Group Arbitration, Round-Robin Channel Arbitration
The highest priority group with a request is serviced. Lower priority groups are serviced if no pending 
requests exist in the higher priority groups.
Within each group, channels are serviced starting with the highest channel number and rotating through to 
the lowest channel number without regard to the channel priority levels assigned within the group.
This can cause the same bandwidth problem indicated in Section 9.4.4.1, but all the channels in the highest 
priority group are serviced. Service latency is short on the highest-priority group, but increases as the 
group priority decreases.
9.4.5 DMA Transfer
9.4.5.1 Single Request 
To perform a simple transfer of ‘n’ bytes of data with one activation, set the major loop to 1 
(TCD.CITER = TCD.BITER = 1). The data transfer begins after the channel service request is 
acknowledged and the channel is selected to execute. After the transfer completes, the TCD.DONE bit is 
set and an interrupt is generated if correctly enabled.
For example, the following TCD entry is configured to transfer 16 bytes of data. The eDMA is 
programmed for one iteration of the major loop transferring 16 bytes per iteration. The source memory has 
a byte-wide memory port located at 0x1000. The destination memory has a word-wide port located at 
0x2000. The address offsets are programmed in increments to match the size of the transfer; one byte for 
the source and four bytes for the destination. The final source and destination addresses are adjusted to 
return to their beginning values.
TCD.CITER = TCD.BITER = 1
TCD.NBYTES = 16
TCD.SADDR = 0x1000
TCD.SOFF = 1
TCD.SSIZE = 0
TCD.SLAST = –16
TCD.DADDR = 0x2000
TCD.DOFF = 4
TCD.DSIZE = 2
TCD.DLAST_SGA= –16
TCD.INT_MAJ = 1
TCD.START = 1 (Initialize all other fields before writing to this bit)
All other TCD fields = 0
This generates the following sequence of events:
1. Slave write to the TCD.START bit requests channel service.
2. The channel is selected by arbitration for servicing.