Increment Step Size bit group in the Block Transfer Control register (
.STEPSEL=0, the step size for the source incrementation will be the size of one beat.
When source address incrementation is configured (BTCTRL.SRCINC=1),
is calculated as
follows:
.STEPSEL=1:
SRCADDR = SRCADDR
�����
+ ����� ⋅ �������� + 1 ⋅ 2
STEPSIZE
.STEPSEL=0:
SRCADDR = SRCADDR
�����
+ ����� ⋅ �������� + 1
•
SRCADDR
START
is the source address of the first beat transfer in the block transfer
•
BTCNT is the initial number of beats remaining in the block transfer
•
BEATSIZE is the configured number of bytes in a beat
•
STEPSIZE is the configured number of beats for each incrementation
The following figure shows an example where DMA channel 0 is configured to increment the source
address by one beat after each beat transfer (
.SRCINC=1), and DMA channel 1 is configured to
increment the source address by two beats (
.STEPSEL=1, and
.STEPSIZE=0x1). As the destination address for both channels are peripherals, destination
.DSTINC=0).
Figure 26-8. Source Address Increment
SRC Data Buffer
a
b
c
d
e
f
Incrementation for the destination address of a block transfer is enabled by setting the Destination
Address Incrementation Enable bit in the Block Transfer Control register (
.DSTINC=1). The step
size of the incrementation is configurable by clearing
.STEPSIZE to the desired step size. If
.STEPSEL=1, the step size for the destination
incrementation will be the size of one beat.
When the destination address incrementation is configured (
.DSTINC=1), SRCADDR must be
set and calculated as follows:
������� = �������
�����
+ ����� • �������� + 1 • 2
��������
where
.STEPSEL is zero
������� = �������
�����
+ ����� • �������� + 1
where
.STEPSEL is one
•
DSTADDR
START
is the destination address of the first beat transfer in the block transfer
•
BTCNT is the initial number of beats remaining in the block transfer
Atmel SAM L22G / L22J / L22N [DATASHEET]
Atmel-42402E-SAM L22G / L22J / L22N_Datasheet_Complete-07/2016
444