UG-549
ADuCM310 Hardware Reference Manual
Rev. C | Page 70 of 192
Bits
Name
Description
[25:24]
SRC_SIZE
Size of the source data.
00: byte.
01: half word.
10: word.
11: reserved.
[23:18]
Reserved
Undefined. Write as 0.
[17:14]
R_POWER
Set these bits to control how many DMA transfers can occur before the controller rearbitrates. Must be set to
0000 for all DMA transfers involving peripherals. Note that the operation of the DMA is indeterminate if a value
other than 0000 is programmed in this location for DMA transfers involving peripherals.
[13:4]
N_MINUS_1
The number of configured transfers minus 1 for that channel. The 10-bit value indicates the number of DMA
transfers (not the total number of bytes) minus one. The possible values are as follows:
0x000: 1 DMA transfer.
0x001: 2 DMA transfers.
0x002: 3 DMA transfers.
…
0x3FF: 1024 DMA transfers.
3
Reserved
Undefined. Write as 0.
[2:0]
CYCLE_CTRL
The transfer types of the DMA cycle.
000: stop (invalid).
001: basic.
010: autorequest.
011: ping-pong.
100: memory scatter-gather primary.
101: memory scatter-gather alternate.
110: peripheral scatter-gather primary.
111: peripheral scatter-gather alternate.
During the DMA transfer process, but before arbitration, CHNL_CFG is written back to system memory with the N_MINUS_1 field
changed to reflect the number of transfers yet to be completed.
When the whole DMA cycle is complete, the CYCLE_CTRL bits are made invalid to indicate the completion of the transfer.
DMA TRANSFER TYPES (CHNL_CFG[2:0])
The DMA controller supports five types of DMA transfers. The various types are selected by programming the appropriate values into the
CYCLE_CTRL bits (Bits[2:0]) in the CHNL_CFG location of the control data structure.
Invalid (CHNL_CFG[2:0] = 000)
In this mode, no DMA transfer is enabled for the channel. After the controller completes a DMA cycle, it sets the cycle type to invalid to
prevent it from repeating the same DMA cycle.
Basic (CHNL_ CFG[2:0] = 001)
In basic mode, the controller can be configured to use either the primary or alternate data structure. The peripheral must present a
request for every data transfer. After the channel is enabled, when the controller receives a request, it performs the following operations:
1.
The controller performs a transfer. If the number of transfers remaining is zero, the flow continues at Step 3.
2.
The controller arbitrates.
a.
If a higher priority channel is requesting service, the controller services that channel.
b.
If the peripheral or software signals a request to the controller, the controller continues at Step 1.
3.
At the end of the transfer, the controller generates the corresponding DMA channel interrupt in the NVIC.