English
Language : 

PXR40RM Datasheet, PDF (578/1434 Pages) Freescale Semiconductor, Inc – PXR40 Microcontroller
Enhanced Direct Memory Access Controller (eDMA)
2. The channel is selected by arbitration for servicing.
3. eDMA engine writes: EDMA_x_TCD.DONE = 0, EDMA_x_TCD.START = 0,
EDMA_x_TCD.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(0x1000), read_byte(0x1001), read_byte(0x1002), read_byte(0x1003)
b) write_word(0x2000)  first iteration of the minor loop
c) read_byte(0x1004), read_byte(0x1005), read_byte(0x1006), read_byte(0x1007)
d) write_word(0x2004)  second iteration of the minor loop
e) read_byte(0x1008), read_byte(0x1009), read_byte(0x100a), read_byte(0x100b)
f) write_word(0x2008)  third iteration of the minor loop
g) read_byte(0x100c), read_byte(0x100d), read_byte(0x100e), read_byte(0x100f)
h) write_word(0x200c)  last iteration of the minor loop  major loop complete
6. eDMA engine writes: EDMA_x_TCD.SADDR = 0x1000, EDMA_x_TCD.DADDR = 0x2000,
EDMA_x_TCD.CITER = 1 (EDMA_x_TCD.BITER).
7. eDMA engine writes: EDMA_x_TCD.ACTIVE = 0, EDMA_x_TCD.DONE = 1,
EDMA_x_IRQRn = 1.
8. The channel retires.
The eDMA goes idle or services the next channel.
21.5.5.2 Multiple Requests
The next example is the same as previous, excepting transferring 32 bytes via two hardware requests. The
only fields that change are the major loop iteration count and the final address offsets. The eDMA is
programmed for two iterations of the major loop transferring 16 bytes per iteration. After the channel’s
hardware requests are enabled in the EDMA_x_ERQR, channel service requests are initiated by the slave
device (ERQR should be set after TCD). Note that EDMA_x_TCD.START = 0.
EDMA_x_TCD.CITER = EDMA_x_TCD.BITER = 2
EDMA_x_TCD.NBYTES = 16
EDMA_x_TCD.SADDR = 0x1000
EDMA_x_TCD.SOFF = 1
EDMA_x_TCD.SSIZE = 0
EDMA_x_TCD.SLAST = –32
EDMA_x_TCD.DADDR = 0x2000
EDMA_x_TCD.DOFF = 4
EDMA_x_TCD.DSIZE = 2
EDMA_x_TCD.DLAST_SGA = –32
EDMA_x_TCD.INT_MAJ = 1
EDMA_x_TCD.START = 0 (Must be written last after all other fields have been initialized)
21-54
PXR40 Microcontroller Reference Manual, Rev. 1
Freescale Semiconductor