Visible to Intel only — GUID: sfo1410069695891
Ixiasoft
Visible to Intel only — GUID: sfo1410069695891
Ixiasoft
20.5.6.2.1. Example 1: Transmit FIFO Watermark Level = 64
Consider the example where the assumption is made: †
DMA burst length = FIFO_DEPTH - DMATDLR
Here the number of data items to be transferred in a DMA burst is equal to the empty space in the transmit FIFO buffer.
Consider the following:
- Transmit FIFO watermark level = DMATDLR = 64 †
- DMA burst length = FIFO_DEPTH - DMATDLR = 192 †
- SPI transmit FIFO_DEPTH = 256 †
- Block transaction size = 960 †
The number of burst transactions needed equals the block size divided by the number of data items per burst:
Block transaction size/DMA burst length = 960/192 = 5
The number of burst transactions in the DMA block transfer is 5. But the watermark level, DMATDLR, is quite low. Therefore, there is a high probability that the SPI serial transmit line needs to transmit data when there is no data left in the transmit FIFO buffer. This is a transmit underflow condition. This occurs because the DMA has not had time to service the DMA request before the FIFO buffer becomes empty.