![Freescale Semiconductor PXR4030 Reference Manual Download Page 577](http://html1.mh-extra.com/html/freescale-semiconductor/pxr4030/pxr4030_reference-manual_2330660577.webp)
Enhanced Direct Memory Access Controller (eDMA)
Freescale Semiconductor
21-53
PXR40 Microcontroller Reference Manual, Rev. 1
21.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.
21.5.5
DMA Transfer
21.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
_x
_TCD.CITER = EDMA
_x
_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, the
EDMA
_x
_TCD.DONE bit 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
_x
_TCD.CITER = EDMA
_x
_TCD.BITER = 1
EDMA
_x
_TCD.NBYTES = 16
EDMA
_x
_TCD.SADDR = 0x1000
EDMA
_x
_TCD.SOFF = 1
EDMA
_x
_TCD.SSIZE = 0
EDMA
_x
_TCD.SLAST = –16
EDMA
_x
_TCD.DADDR = 0x2000
EDMA
_x
_TCD.DOFF = 4
EDMA
_x
_TCD.DSIZE = 2
EDMA
_x
_TCD.DLAST_SGA = –16
EDMA
_x
_TCD.INT_MAJ = 1
EDMA
_x
_TCD.START = 1 (Must be written last after all other fields have been initialized)
All other TCD fields = 0
This would generate the following sequence of events:
1. Slave write to the EDMA
_x
_TCD.START bit requests channel service.
Summary of Contents for PXR4030
Page 1: ...PXR40 Microcontroller Reference Manual Devices Supported PXR4030 PXR4040 PXR40RM Rev 1 06 2011...
Page 30: ...PXR40 Microcontroller Reference Manual Rev 1 Freescale Semiconductor xxx...
Page 40: ...PXR40 Microcontroller Reference Manual Rev 1 xl Freescale Semiconductor...
Page 66: ...Memory Map PXR40 Microcontroller Reference Manual Rev 1 2 4 Freescale Semiconductor...
Page 120: ...Signal Descriptions 3 54 Freescale Semiconductor PXR40 Microcontroller Reference Manual Rev 1...
Page 860: ...FlexCAN Module 24 50 Freescale Semiconductor PXR40 Microcontroller Reference Manual Rev 1...
Page 1167: ...Decimation Filter Freescale Semiconductor 28 53 PXR40 Microcontroller Reference Manual Rev 1...
Page 1168: ...Decimation Filter 28 54 Freescale Semiconductor PXR40 Microcontroller Reference Manual Rev 1...