SWRU626 December 2025 CC3501E , CC3551E
The DMA controller supports block transfer mode. The block size can be defined for each DMA job and it is individually configured per channel. The supported block sizes are 1-63 words, each word can be either 8/16/32 bits. The job size can be any number of bytes independent of the block size. For single transfer per trigger the block size need to be configured to 1. Therefore, the block size must be the same as the number of data items that the peripheral can accommodate when making a block request. For example, the UART and SPI, which use a mix of single or burst requests, could generate a burst request based on the FIFO trigger level.
The DMA controller responds to two types of requests from a peripheral: single request or block request. Each peripheral can support either or both types of requests. A single request means that the peripheral is ready to transfer one item, while a block request means that the peripheral is ready to transfer multiple items.
When a block request is detected, the DMA controller transfers the number of items that is the lesser of the block size or the number of items remaining in the transfer. Therefore, the block size must be the same as the number of data items that the peripheral can accommodate when making a block request. For example, the UART and SPI, which use a mix of single or block requests, could generate a block request based on the FIFO trigger level.
Each DMA request signal remains asserted until the relevant DMA clear signal is asserted. After the DMA clear signal is deasserted, a request signal can become active again, if conditions are setup correctly. The DMA clear signal must be connected to the DMA active signal from the DMA module. This signal is asserted when DMA is granted access and is active. The DMA active signal is deasserted when the DMA transfer completes. Connecting the DMA active signal from DMA to the DMA request clear input of the peripheral ensures that no requests are generated by the peripheral while the DMA is active.
The burst transfer and single transfer request signals are not mutually exclusive, and both can be asserted at the same time. For example, when there is more data than the watermark level in the receive FIFO, the burst transfer request and the single transfer request are asserted.
The FIFO trigger level at the source/destination memory must fit the block size of the transfer.
For example:
Each DMA trigger a block is transferred by the DMA until the job is completed. In case the remaining bytes in the last transfer are smaller than the block size the DMA will transfer a single word per single trigger (if enabled).
For example, DMA word size 8 bits:
Another example, DMA word size 16 bits: