...the world's most energy friendly microcontrollers
2014-07-02 - Gecko Family - d0001_Rev1.30
49
www.silabs.com
and on completion of task D the controller set the cycle_ctrl bits to b000, then the ping-pong DMA
transaction completes.
Note
You can also terminate the ping-pong DMA cycle in Figure 8.3 (p. 47) , if you configure
task E to be a basic DMA cycle by setting the cycle_ctrl field to 3’b001.
8.4.2.3.5 Memory scatter-gather
In memory scatter-gather mode the controller receives an initial request and then performs four DMA
transfers using the primary data structure. After this transfer completes, it starts a DMA cycle using the
alternate data structure. After this cycle completes, the controller performs another four DMA transfers
using the primary data structure. 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
• 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 b000.
The controller only asserts
dma_done[C]
when the scatter-gather transaction completes using an auto-
request cycle.
In scatter-gather mode, the controller uses the primary data structure to program the alternate data
structure. Table 8.4 (p. 49) lists the fields of the channel_cfg memory location for the primary data
structure, that you must program with constant values and those that can be user defined.
Table 8.4. channel_cfg for a primary data structure, in memory scatter-gather mode
Bit
Field
Value
Description
Constant-value fields:
[31:30}
dst_inc
b10
Configures the controller to use word increments for the address
[29:28]
dst_size
b10
Configures the controller to use word transfers
[27:26]
src_inc
b10
Configures the controller to use word increments for the address
[25:24]
src_size
b10
Configures the controller to use word transfers
[17:14]
R_power
b0010
Configures the controller to perform four DMA transfers
[3]
next_useburst
0
For a memory scatter-gather DMA cycle, this bit must be set to zero
[2:0]
cycle_ctrl
b100
Configures the controller to perform a memory 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
1
Because the R_power field is set to four, you must set N to be a multiple of four. The value given by N/4 is the number of times
that you must configure the alternate data structure.
See Section 8.4.3.3 (p. 56) for more information.
Figure 8.4 (p. 50) shows a memory scatter-gather example.
Summary of Contents for EFM32G
Page 505: ......