SPRUJF2A March 2026 – March 2026 AM13E23019
The DMA can be used to achieve maximum transfer rates on the EPI through the NBRFIFO and the WFIFO. The DMA has one channel for write and one for read. For writes, the EPI DMA Transmit Count (EPIDMATXCNT) register is programmed with the total number of transfers by the DMA. An equivalent value is programmed into the DMA Channel Control Word (DMACHCTL) register of the DMA at offset 0x008. A DMA request is asserted by the EPI WRFIFO when the TXCNT value of the EPIDMATXCNT register is greater than zero and the WTAV bit field of the EPIWFIFOCNT register is less than the programmed threshold trigger, WRFIFO, of the EPIFIFOLVL register. The write channel continues to write data until the TXCNT value in the EPIDMATXCNT register is zero.
The nonblocking read channel copies values from the NBRFIFO when the NBRFIFO is at the level specified by the EPIFIFOLVL register. For nonblocking reads, the start address, the size per transaction, and the count of elements must be programmed in the DMA. Both nonblocking read register sets can be used, and the registers fill the NBRFIFO such that one runs to completion, then the next one starts (the registers do not interleave). Using the NBRFIFO provides the best possible transfer rate.
For blocking reads, the DMA software channel (or another unused channel) is used for memory-to-memory transfers (or memory to peripheral, where some other peripheral is used). In this situation, the DMA stalls until the read is complete and is not able to service another channel until the read is done. As a result, the arbitration size must normally be programmed to one access at a time. The DMA controller can also transfer from and to the NBRFIFO and the WFIFO using the DMA software channel in memory mode, however, the DMA is stalled once the NBRFIFO is empty or the WFIFO is full. When the DMA controller is stalled, the core continues operation. For more information on configuring the DMA, see Direct Memory Access (DMA).
The size of the FIFOs must be taken into consideration when configuring the DMA to transfer data to and from the EPI. The arbitration size must be 4 or less when writing to EPI address space and 8 or less when reading from EPI address space.