Tips
708
SPRUH82C – April 2013 – Revised September 2016
Copyright © 2013–2016, Texas Instruments Incorporated
Enhanced Direct Memory Access (EDMA3) Controller
17.5.2 Miscellaneous Programming/Debug Tips
1. For several registers, the setting and clearing of bits needs to be done via separate dedicated
registers. For example, the event register (ER) bits can only be cleared by writing a 1 to the
corresponding bits in the event clear register (ECR). Similarly, the event enable register (EER) bits can
only be set with writes of 1 to the corresponding bits in the event enable set registers (EESR) and can
only be cleared with writes of 1 to the corresponding bits in the event enable clear register (EECR).
2. Writes to the shadow region memory maps are governed by region access enable registers
(DRAE/QRAE). If the appropriate channels are not enabled in these registers, read/write access to the
shadow region memory map is not enabled.
3. When working with shadow region completion interrupts, ensure that the DMA region access enable
registers (DRAE) for every region are set in a mutually exclusive way (unless it is a requirement for an
application). If there is an overlap in the allocated channels and transfer completion codes (setting of
interrupt pending register bits) in the region resource allocation, it results in multiple shadow region
completion interrupts. For example, if DRAE0.E0 and DRAE1.E0 are both set, then on completion of a
transfer that returns a TCC = 0, they will generate both shadow region 0 and 1 completion interrupts.
4. While programming a non-dummy parameter set, ensure the CCNT is not left to zero.
5. Enable the EDMA3CC error interrupt in the device controller and attach an interrupt service routine
(ISR) to ensure that error conditions are not missed in an application and are appropriately addressed
with the ISR.
6. Depending on the application, you may want to break large transfers into smaller transfers and use
self-chaining to prevent starvation of other events in an event queue.
7. In applications where a large transfer is broken into sets of small transfers using chaining or other
methods, you might choose to use the early chaining option to reduce the time between the sets of
transfers and increase the throughput. However, keep in mind that with early completion, all data might
have not been received at the end point when completion is reported because the EDMA3CC internally
signals completion when the TR is submitted to the EDMA3TC, potentially before any data has been
transferred.
8. The event queue entries can be observed to determine the last few events if there is a system failure
(provided the entries were not bypassed).
9. In order to put the EDMA3CC and EDMA3TC in power-down modes, you should ensure that there is
no activity with the EDMA3CC and EDMA3TC. The EDMA3CC status register (CCSTAT) and the
EDMA3TC channel status register (TCSTAT) should be used.