
Enhanced Direct Memory Access Controller (eDMA)
MPC5644A Microcontroller Reference Manual, Rev. 6
Freescale Semiconductor
183
Within each group, channels are serviced starting with the highest channel number and rotating through to
the lowest channel number without regard to channel priority levels.
Because channels are serviced in round-robin manner, any channel that generates DMA requests faster
than a combination of the group round-robin service rate and the channel service rate for its group does
not prevent the servicing of other channels in its group. Any DMA requests that are not serviced are simply
lost, but at least one channel gets serviced.
This scenario ensures that all channels are guaranteed service at some point, regardless of the request rates.
However, the potential latency could be high. All channels are treated equally. Priority levels are not used
in round-robin/round-robin mode.
8.5.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 scenario could cause the same bandwidth consumption problem as indicated in
Fixed-group arbitration, fixed-channel arbitration
but all the channels in the highest priority group get
serviced. Service latency is short on the highest priority group, but could potentially get longer and longer
as the group priority decreases.
8.5.5
DMA transfer
8.5.5.1
Single request
To perform a simple transfer of
n
bytes of data with one activation, set the major loop to ‘1’
(EDMA_TCD[CITER] = EDMA_TCD[BITER] = 1). The data transfer begins after the channel service
request is acknowledged and the channel is selected to execute. After the transfer is complete, bit
EDMA_TCD[DONE] is set and an interrupt is generated if properly 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.
EDMA_TCD[CITER] = EDMA_TCD[BITER] = 1
EDMA_TCD[NBYTES] = 16
EDMA_TCD[SADDR] = 0x1000
EDMA_TCD[SOFF] = 1
EDMA_TCD[SSIZE] = 0
EDMA_TCD[SLAST] = –16
EDMA_TCD[DADDR] = 0x2000
Summary of Contents for MPC5644A
Page 2: ...MPC5644A Microcontroller Reference Manual Rev 6 2 Freescale Semiconductor...
Page 24: ...MPC5644A Microcontroller Reference Manual Rev 6 24 Freescale Semiconductor...
Page 26: ...MPC5644A Microcontroller Reference Manual Rev 6 26 Freescale Semiconductor...
Page 52: ...Introduction MPC5644A Microcontroller Reference Manual Rev 6 52 Freescale Semiconductor...
Page 56: ...Memory Map MPC5644A Microcontroller Reference Manual Rev 6 56 Freescale Semiconductor...
Page 1228: ...Decimation Filter MPC5644A Microcontroller Reference Manual Rev 6 1228 Freescale Semiconductor...
Page 1440: ...FlexCAN Module MPC5644A Microcontroller Reference Manual Rev 6 1440 Freescale Semiconductor...