35.8 XDMAC Software Requirements

  • Write operations to channel registers are not be performed in an active channel after the channel is enabled. If any channel parameters must be reprogrammed, this can only be done after disabling the XDMAC channel.
  • XDMAC_CSAx and XDMAC_CDAx channel registers are to be programmed with a byte, half-word or word aligned address depending on the Channel x Data Width field (DWIDTH) of the XDMAC Channel x Configuration Register.
  • 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 buffer 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 35-4. INITD Timing Diagram