DMA Operation
637
SLAU356I – March 2015 – Revised June 2019
Copyright © 2015–2019, Texas Instruments Incorporated
DMA
NOTE:
These are the only circumstances where the controller does not enter the arbitration
process after completing a transfer using the primary data structure.
After this cycle completes, the controller rearbitrates and if the controller receives a request from the
peripheral that has the highest priority then it performs another four DMA transfers using the primary data
structure. It then immediately starts a DMA cycle using the alternate data structure, without re-arbitrating
or
dma_active[C]
going LOW.
The controller continues to switch from primary to alternate to primary until either:
•
the host processor configures the alternate data structure for a basic cycle, or
•
it reads an invalid data structure.
NOTE:
After the controller completes the N primary transfers it invalidates the primary data
structure by setting the cycle_ctrl field to 000b.
The controller asserts
dma_done[C]
when the scatter-gather transaction completes using a basic cycle..
In scatter-gather mode, the controller uses the primary data structure to program the alternate data
structure.
lists the fields of the channel_cfg memory location for the primary data structure that
must be programmed with constant values and those that can be user defined.
NOTE:
Peripheral scatter gather mode is almost similar to the memory scatter gather mode with the
difference being that during the transfer using the alternate data structure, every time the
controller arbitrates, it expects a new trigger from the peripheral to continue with the
remaining transfers.
(1)
Because the R_power field is set to four, set
N
to be a multiple of four. The value given by
N
/4 is the number of times that the
alternate data structure must be configured.
Table 11-8. channel_cfg for a Primary Data Structure, in Peripheral Scatter-Gather Mode
Bit
Field
Value
Description
Constant-value fields:
[31:30}
dst_inc
10b
Configures the controller to use word increments for the address
[29:28]
dst_size
10b
Configures the controller to use word transfers
[27:26]
src_inc
10b
Configures the controller to use word increments for the address
[25:24]
src_size
10b
Configures the controller to use word transfers
[17:14]
R_power
0010b
Configures the controller to perform four DMA transfers
[2:0]
cycle_ctrl
110b
Configures the controller to perform a peripheral scatter-gather DMA cycle
User-defined values:
[23:21]
dst_prot_ctrl
-
Configures the state of
HPROT
when the controller writes the destination data
[20:18]
src_prot_ctrl
-
Configures the state of
HPROT
when the controller reads the source data
[13:4]
n_minus_1
N
(1)
Configures the controller to perform
N
DMA transfers, where
N
is a multiple of
four
[3]
next_useburst
-
When set to 1, the controller sets the chnl_useburst_set [C] bit to 1 after the
alternate transfer completes