Datasheet

When XDMAC_CC.INITD is set to 0, XDMAC_CUBC.UBLEN and XDMAC_CNDA.NDA field values are
unreliable when the descriptor is being updated. The following procedure applies to get the buf
fer descriptor
identifier and the residual bytes:
Read XDMAC_CNDAx.NDA(nda0)
Read XDMAC_CCx.INITD(initd0)
Read XDMAC_CCx.INITD(initd0)
Read XDMAC_CUBCx.UBLEN(ublen)
Read XDMAC_CCx.INITD(initd1)
Read XDMA_CNDAx.NDA(nda1)
If (nda0 == nda1 && initd0 == 1 && initd1 == 1).
Then the ublen is correct, the buffer id is nda.
Else retry
See the figure below
.
Figure 36-4. INITD Timing Diagram
buffer0 buffer1 buffer0 buffer1 buffer0
XDMAC_CUBCx.UBLEN
XDMAC_CCx.INITD
XDMAC_CUBCx.UBLEN
XDMAC_CNDAx.NDA
0 buffer1.ublen buffer0.ublen
buffer1.nda buffer0.nda
bu
ff
e
r1.
ub
l
en
1
.n
da
SAM E70/S70/V70/V71 Family
DMA Controller (XDMAC)
© 2019 Microchip T
echnology Inc.
Datasheet
DS60001527D-page 465