AnsweredAssumed Answered

Problem with multiblock SDIO read/write on F1 & F4

Question asked by Andy Brown on Jan 3, 2013
Latest reply on Nov 21, 2014 by rocca.stephane
Hi everyone,

Whenever I use either of the multiblock read/write functions the peripheral gets stuck in the SD_CARD_SENDING or SD_CARD_RECEIVING state, respectively. Further attempts to access the peripheral in this state are impossible and result in timeouts.

I'm using DMA with SDIO interrupts
The SDIO_IT_DATAEND interrupt fires.
The DMA transfer completes.
The correct data is sent/received.
SDIO_FLAG_RXACT or SDIO_FLAG_TXACT is cleared by the peripheral.
The driver code is based on V1.0.2 of the F4 ST driver. 
It happens on both the F1 and F4.

This only happens for MULTI block commands. I can merrily call the single block commands all day long and the state returns to SD_CARD_TRANSFER after each call.

I'm at a bit of a loss. What's so special about the multiblock commands that could be causing this?

Outcomes