In burst-block mode, transfers are block transfers with CPU activity interleaved. The CPU executes two MCLK cycles after every four-byte/word transfer of the block, resulting in 20% CPU execution capacity. After the burst block, CPU execution resumes at 100% capacity and the DMAEN bit is cleared. DMAEN must be set again before another burst-block transfer can be triggered. After a burst-block transfer has been triggered, further trigger signals occurring during the burst-block transfer are ignored. The burst-block transfer state diagram is shown in Figures 11-5.
The DMAxSZ register is used to define the size of the block, and the DMADSTINCR and DMASRCINCR bits select if the destination address and the source address are incremented or decremented after each transfer of the block. If DMAxSZ = 0, no transfers occur.
The DMAxSA, DMAxDA, and DMAxSZ registers are copied into temporary registers. The temporary values of DMAxSA and DMAxDA are incremented or decremented after each transfer in the block. The DMAxSZ register is decremented after each transfer of the block and shows the number of transfers remaining in the block. When the DMAxSZ register decrements to zero, it is reloaded from its temporary register and the corresponding DMAIFG flag is set.
In repeated burst-block mode, the DMAEN bit remains set after completion of the burst-block transfer, and no further trigger signals are required to initiate another burst-block transfer. Another burst-block transfer begins immediately after the completion of a burst-block transfer. In this case, the transfers must be stopped by clearing the DMAEN bit, or by a (non)maskable interrupt (NMI) when ENNMI is set. In repeated burst block mode the CPU executes at 20% capacity continuously until the repeated burst-block transfer is stopped.