FSI: RX FIFO Spurious Overrun
Details
A buffer overrun is asserted when the last location of the FIFO is written.
Workarounds
Two possible workarounds are available.
- Set up the communication between the transmitting and receiving modules in such a way that the maximum number of data words received, before the first data word is read, is 15 (not 16). Under this condition, buffer overrun behavior is reliable.
- If the application must fill all 16 data words in the receive buffer before the first data word is read (NWORD packet with 16 words), then the following sequence can be used:
- Ignore RX buffer overrun RX_EVT_STS.BUF_OVERRUN.
- On RX_EVT_STS.FRAME_DONE, read RX_BUF_PTR_STS.CURR_WORD_CNT and check that it is 16.
- Use DMA or software to move the data out of the RX buffer.
- Read RX_BUF_PTR_STS.CURR_WORD_CNT and check that it is 0.
- Clear the RX_EVT_STS.FRAME_DONE Flag by writing a 1 to RX_EVT_CLR.FRAME_DONE.