38.5.5.2 Single Block Transfer With Multiple Microblock
- Read the XDMAC_GS register to choose a free channel.
- Clear the pending Interrupt Status bit by reading the chosen XDMAC_CISx register.
- Write the XDMAC_CSAx register for channel x.
- Write the XDMAC_CDAx register for channel x.
- Program XDMAC_CUBCx.UBLEN with the number of data.
- Program XDMAC_CCx register (see “Single Block Transfer With Single Microblock”).
- Program XDMAC_CBCx.BLEN with the number of microblocks of data.
- Clear the following registers:
- XDMAC_CNDCx
- XDMAC_CDS_MSPx
- XDMAC_CSUSx XDMAC_CDUSx
This indicates that the linked list is disabled and striding is disabled.
- Enable the Block interrupt by writing a ‘1’ to XDMAC_CIEx.BIE, enable the Channel x Interrupt Enable bit by writing a ‘1’ to XDMAC_GIEx.IEx.
- Enable channel x by writing a ‘1’ to the XDMAC_GE.ENx. XDMAC_GS.STx is set by hardware.
- Once completed, the DMA channel sets XDMAC_CISx.BIS (End of Block Interrupt Status bit) and generates an interrupt. XDMAC_GS.STx is cleared by hardware. The software can either wait for an interrupt or poll the channel status bit.