Enhanced Direct Memory Access Controller (eDMA)
21-54
Freescale Semiconductor
PXR40 Microcontroller Reference Manual, Rev. 1
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
_IRQR
n
= 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)
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...