Datasheet

490
SAM9G25 [DATASHEET]
11032D–ATARM–10-Mar-2014
Figure 31-5. Multi Buffer Transfer Using Linked List
31.4.4.2 Programming DMAC for Multiple Buffer Transfers
Notes: 1. USR means that the register field is manually programmed by the user.
2. CONT means that address are contiguous.
Table 31-3. Multiple Buffers Transfer Management Table
Transfer Type AUTO SRC_REP DST_REP SRC_DSCR DST_DSCR BTSIZE DSCR SADDR DADDR Other Fields
1) Single Buffer or Last
buffer of a multiple buffer
transfer
0 USR 0 USR USR USR
2) Multi Buffer transfer with
contiguous DADDR
0 0 0 1 LLI USR LLI CONT LLI
3) Multi Buffer transfer with
contiguous SADDR
0 0 1 0 LLI USR CONT LLI LLI
4) Multi Buffer transfer with
LLI support
0 0 0 LLI USR LLI LLI LLI
5) Multi Buffer transfer with
DADDR reloaded
0 1 0 1 LLI USR LLI REP LLI
6) Multi Buffer transfer with
SADDR reloaded
0 1 1 0 LLI USR REP LLI LLI
7) Multi Buffer transfer
with BTSIZE reloaded and
contiguous DADDR
1 0 0 1 REP USR LLI CONT LLI
8) Multi Buffer transfer with
BTSIZE reloaded and
contiguous SADDR
1 0 1 0 REP USR CONT LLI LLI
9) Automatic mode channel
is stalling
BTsize is reloaded
1 0 0 1 1 REP USR CONT CONT REP
10) Automatic mode
BTSIZE, SADDR and
DADDR reloaded
1 1 1 1 1 REP USR REP REP REP
11) Automatic mode
BTSIZE, SADDR reloaded
and DADDR contiguous
1 1 0 1 1 REP USR REP CONT REP
System Memory
SADDRx
= DSCRx(0) + 0x0
DADDRx
= DSCRx(0) + 0x4
CTRLAx
= DSCRx(0) + 0x8
CTRLBx
= DSCRx(0) + 0xC
DSCRx(1)
= DSCRx(0) + 0x10
SADDRx
= DSCRx(1) + 0x0
DADDRx
= DSCRx(1) + 0x4
CTRLBx
= DSCRx(1) + 0x8
CTRLBx
= DSCRx(1) + 0xC
DSCRx(2)
= DSCRx(1) + 0x10
DSCRx(0)
DSCRx(2)
(points to 0 if
LLI(1) is the last
transfer descriptor
DSCRx(1)
LLI(0)
LLI(1)