![Freescale Semiconductor MCF54455 Reference Manual Download Page 447](http://html1.mh-extra.com/html/freescale-semiconductor/mcf54455/mcf54455_reference-manual_2330541447.webp)
Enhanced Direct Memory Access (eDMA)
19-32
Freescale Semiconductor
19.6.3.2
Round Robin Channel Arbitration
Channels are serviced starting with the highest channel number and rotating through to the lowest channel
number without regard to the channel priority levels
19.6.4
DMA Transfer
19.6.4.1
Single Request
To perform a simple transfer of n bytes of data with one activation, set the major loop to one
(TCD
n
_CITER = TCD
n
_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
TCD
n
_CSR[DONE] bit is set and an interrupt generates 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 longword-wide port located at
0x2000. The address offsets are programmed in increments to match the transfer size: 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.
Example 19-1. Single Request DMA Transfer
TCD
n
_CITER = TCD
n
_BITER = 1
TCD
n
_NBYTES = 16
TCD
n
_SADDR = 0x1000
TCD
n
_SOFF = 1
TCD
n
_ATTR[SSIZE] = 0
TCD
n
_SLAST = -16
TCD
n
_DADDR = 0x2000
TCD
n
_DOFF = 4
TCD
n
_ATTR[DSIZE] = 2
TCD
n
_DLAST_SGA= –16
TCD
n
_CSR[INT_MAJ] = 1
TCD
n
_CSR[START] = 1 (Should be written last after all other fields have been initialized)
All other TCD
n
fields = 0
This generates the following event sequence:
1. User write to the TCD
n
_CSR[START] bit requests channel service.
2. The channel is selected by arbitration for servicing.
3. eDMA engine writes: TCD
n
_CSR[DONE] = 0, TCD
n
_CSR[START] = 0,
TCD
n
_CSR[ACTIVE] = 1.
4. eDMA engine reads: channel TCD data from local memory to internal register file.
5. The source-to-destination transfers are executed as follows:
a) Read byte from location 0x1000, read byte from location 0x1001, read byte from 0x1002, read
byte from 0x1003.
Summary of Contents for MCF54455
Page 33: ...xxviii Freescale Semiconductor ...
Page 67: ...Freescale Semiconductor 1 ...
Page 125: ...Freescale Semiconductor 1 ...
Page 145: ...Enhanced Multiply Accumulate Unit EMAC 5 21 Freescale Semiconductor ...
Page 173: ...Cache 6 28 Freescale Semiconductor ...
Page 179: ...Static RAM SRAM 7 6 Freescale Semiconductor ...
Page 207: ...Power Management 9 16 Freescale Semiconductor ...
Page 323: ...Reset Controller Module 13 8 Freescale Semiconductor ...
Page 389: ...Pin Multiplexing and Control 16 44 Freescale Semiconductor ...
Page 575: ...PCI Bus Controller 22 58 Freescale Semiconductor ...
Page 600: ...Advanced Technology Attachment ATA Freescale Semiconductor 23 25 ...
Page 601: ...Freescale Semiconductor 1 ...
Page 842: ...I2 C Interface Freescale Semiconductor 33 16 ...
Page 843: ...Freescale Semiconductor 1 ...
Page 921: ...Revision History A 6 Freescale Semiconductor ...