Architecture
597
SPRUH82C – April 2013 – Revised September 2016
Copyright © 2013–2016, Texas Instruments Incorporated
Enhanced Direct Memory Access (EDMA3) Controller
17.2.4 Initiating a DMA Transfer
There are multiple ways to initiate a programmed data transfer using the EDMA3 channel controller.
Transfers on DMA channels are initiated by three sources:
•
Event-triggered transfer request
(this is the more typical usage of EDMA3): Allows for a peripheral,
system, or externally-generated event to trigger a transfer request.
•
Manually-triggered transfer request:
The CPU manually triggers a transfer by writing a 1 to the
corresponding bit in the event set register (ESR).
•
Chain-triggered transfer request:
A transfer is triggered on the completion of another transfer or
subtransfer.
Transfers on QDMA channels are initiated by two sources:
•
Autotriggered transfer request:
A transfer is triggered when the PaRAM set entry programmed
trigger word is written to.
•
Link-triggered transfer requests:
When linking occurs, the transfer is triggered when the PaRAM set
entry programmed trigger word is written to.
17.2.4.1 DMA Channel
17.2.4.1.1 Event-Triggered Transfer Request
When an event is asserted from a peripheral or device pins, it gets latched in the corresponding bit of the
event register (ER.E
n
= 1). If the corresponding event in the event enable register (EER) is enabled
(EER.E
n
= 1), then the EDMA3CC prioritizes and queues the event in the appropriate event queue. When
the event reaches the head of the queue, it is evaluated for submission as a transfer request to the
transfer controller.
If the PaRAM set is valid (not a NULL set), then a transfer request packet (TRP) is submitted to the
EDMA3TC and the E
n
bit in ER is cleared. At this point, a new event can be safely received by the
EDMA3CC.
If the PaRAM set associated with the channel is a NULL set (see
), then no transfer
request (TR) is submitted and the corresponding E
n
bit in ER is cleared and simultaneously the
corresponding channel bit is set in the event miss register (EMR.E
n
= 1) to indicate that the event was
discarded due to a null TR being serviced. Good programming practices should include cleaning the event
missed error before retriggering the DMA channel.
When an event is received, the corresponding event bit in the event register is set (ER.E
n
= 1), regardless
of the state of EER.E
n
. If the event is disabled when an external event is received (ER.E
n
= 1 and
EER.E
n
= 0), the ER.E
n
bit remains set. If the event is subsequently enabled (EER.E
n
= 1), then the
pending event is processed by the EDMA3CC and the TR is processed/submitted, after which the ER.E
n
bit is cleared.
If an event is being processed (prioritized or is in the event queue) and another sync event is received for
the same channel prior to the original being cleared (ER.E
n
!= 0), then the second event is registered as a
missed event in the corresponding bit of the event missed register (EMR.E
n
= 1).
For the synchronization events associated with each of the programmable DMA channels, see your
device-specific data manual to determine the event to channel mapping.