DMA_REQ[31:0]
CH15ASI[5:0]
CH14ASI[5:0]
CH1ASI[5:0]
CH1ASI[5:0]
Ch chain0
Ch Sel0
Ch chain1
Ch Sel1
Ch chain14
Ch Sel14
Ch chain15
Ch Sel15
0
0
0
0
Pending
Register
Bit 0
Bit 2
Bit 14
Bit 15
Bit 1
Module Operation
716
SPNU563A – March 2018
Copyright © 2018, Texas Instruments Incorporated
Direct Memory Access Controller (DMA) Module
20.2.13 Channel Chaining
Channel chaining is used to trigger a single or multiple channels with out an external DMA request. This is
possible by chaining one control packet to other. Chain[5:0] field of the Channel Control Register
(
) is used to program the chaining control packet. Chained control packets follow
arbitration rules within the pending register. For example if CH1, CH2, CH4, CH5 are triggered together
and CH3 is chained with CH1. The order of channels serviced in spite of chaining will be CH1 -> CH2 ->
CH3 -> CH4 -> CH5.
In order to setup up channel chain feature, the Channel Control Register (
) needs to be
enabled for all chained channels before triggering first DMA request.
illustrates how internally chained request is generated after completing the required transfers
and stored in pending register. In this example CH1 is Chained to CH0. When CH0 is triggered CH1 is
captured as pending in the Channel Pending Register (
) even when it is not triggered.
Figure 20-16. Example of Channel Chaining
20.2.14 Request Polarity
DMA supports both active high and active low hardware requests. This is configured through the registers
DMAREQPS1 and DMAREQPS0.
The selection of request polarity should be done at the start of the program. In order to change the
request polarity from active high to active low for a channel following sequence should be followed:
1. Disable channel for which polarity is to be changed using the HWCHENA bit.
2. Disable the peripheral in order that it may set the request line to inactive high state (since by default
requests are active high).
3. Apply software reset to the DMA using the GCTRL register.
4. Program the request polarity for the channel.
5. Re-enable the DMA channel.
6. Re-enable the peripheral that triggers the DMA event.