cancel
Showing results for 
Search instead for 
Did you mean: 

SDIO DMA Tx Fifo Error

Posted on October 24, 2015 at 22:52

Hi Folks, am running The SD interface, along with FatFS on an F4 Discovery board plugged into a Discovery-BB which has a uSD card slot.  I am running DMA for Rx and TX data, 4 bits wide to the card.  It all runs great.  The only problem is that I DID provide error callbacks for the DMA Tx and Rx error ISR's.  The Rx is fine, but the Tx DMA stream generates a single error interrupt on every block (512 bytes) transfer to the card.  The error is Type 2 which I believe translates to a FIFO error. 

I am NOT seeing any data loss, the transfers complete with no problem at all.

Am using the latest CubeMX to generate the startup code.  Also, using the USB port for console I/O running printf() to see status etc.

Anyone else seeing anything like this?  My interim fix is just to ignore the errors and all works fine.  However the engineer in me doesn't like leaving something like this in a system without at least understanding what's going on and whether it is truly benign.
2 REPLIES 2
Posted on October 30, 2015 at 11:53

Hi bauch.aaron.001,

You have described a normal scenario, as SDIO requested next data before the DMA being able to fill its FIFO to perform the new burst. SDIO FIFO (32words) is larger than DMA ones (4words). This is a warning of possible underrun on peripheral side, but if there is no error on peripheral side (no SDIO txunderrun) no data are lost.

As you said, you have only to ignore the error.

-shahrzad-

Posted on November 02, 2015 at 17:32

thank you for the explanation