SAM3A4C Atmel Corporation, SAM3A4C Datasheet - Page 353

no-image

SAM3A4C

Manufacturer Part Number
SAM3A4C
Description
Manufacturer
Atmel Corporation
Datasheets
23.4.3.1
23.4.4
11057A–ATARM–17-Feb-12
11057A–ATARM–17-Feb-12
Chunk Transactions
Single Transactions
DMAC Transfer Types
Software Handshaking
When the slave peripheral requires the DMAC to perform a DMAC transaction, it communicates
this request by sending an interrupt to the CPU or interrupt controller.
The interrupt service routine then uses the software registers to initiate and control a DMAC
transaction. These software registers are used to implement the software handshaking
interface.
The SRC_H2SEL/DST_H2SEL bit in the DMAC_CFGx channel configuration register must be
set to zero to enable software handshaking.
When the peripheral is not the flow controller, then the last transaction register DMAC_LAST is
not used, and the values in these registers are ignored.
Writing a 1 to the DMAC_CREQ[2x] register starts a source chunk transaction request, where x
is the channel number. Writing a 1 to the DMAC_CREQ[2x+1] register starts a destination chunk
transfer request, where x is the channel number.
Upon completion of the chunk transaction, the hardware clears the DMAC_CREQ[2x] or
DMAC_CREQ[2x+1].
Writing a 1 to the DMAC_SREQ[2x] register starts a source single transaction request, where x
is the channel number. Writing a 1 to the DMAC_SREQ[2x+1] register starts a destination single
transfer request, where x is the channel number.
Upon completion of the chunk transaction, the hardware clears the DMAC_SREQ[x] or
DMAC_SREQ[2x+1].
The software can poll the relevant channel bit in the DMAC_CREQ[2x]/DMAC_CREQ[2x+1] and
DMAC_SREQ[x]/DMAC_SREQ[2x+1] registers. When both are 0, then either the requested
chunk or single transaction has completed.
A DMAC transfer may consist of single or multi-buffer transfers. On successive buffers of a
multi-buffer transfer, the DMAC_SADDRx/DMAC_DADDRx registers in the DMAC are repro-
grammed using either of the following methods:
On successive buffers of a multi-buffer transfer, the DMAC_CTRLAx and DMAC_CTRLBx regis-
ters in the DMAC are re-programmed using either of the following methods:
When buffer chaining using linked lists is the multi-buffer method of choice, and on successive
buffers, the DMAC_DSCRx register in the DMAC is re-programmed using the following method:
A buffer descriptor (LLI) consists of following registers, DMAC_SADDRx, DMAC_DADDRx,
DMAC_DSCRx, DMAC_CTRLAx, DMAC_CTRLBx.These registers, along with the
DMAC_CFGx register, are used by the DMAC to set up and describe the buffer transfer.
• Buffer chaining using linked lists
• Contiguous address between buffers
• Buffer chaining using linked lists
• Buffer chaining using linked lists
SAM3X/A
SAM3X/A
353
353

Related parts for SAM3A4C