8-10
Burst-Block Transfers
In burst-block mode, transfers are block transfers with CPU activity
interleaved. The CPU executes 2 MCLK cycles after every four byte/word
transfers 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 Figure 85.
The DMAxSZ register is used to define the size of the block and the
DMADSTINCRx and DMASRCINCRx 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 completion of a burst-block transfer. In this case, the transfers must be
stopped by clearing the DMAEN bit, or by an NMI interrupt when ENNMI is set.
In repeated burst-block mode the CPU executes at 20% capacity continuously
until the repeated burst-block transfer is stopped.