cancel
Showing results for 
Search instead for 
Did you mean: 

SDIO DMA usage

mmetzger
Associate II
Posted on July 08, 2016 at 16:09

I'm trying to get the SDIO system working with DMA. The system works in the configuration without DMA.

Now I set the read and write operations in the ''sd_diskio.c'' to DMA, by adding _DMA to the starting commands BSP_SD_WriteBlocks_DMA and BSP_SD_ReadBlocks_DMA.

Now all the interrupts for SDIO and DMA fire several times but the my system stops at

HAL_SD_CheckReadOperation in line:

  /* Wait until the Rx transfer is no longer active */

  while((__HAL_SD_SDIO_GET_FLAG(hsd, SDIO_FLAG_RXACT)) && (timeout > 0U))

  {

    timeout--;  

  }

from hsd->SdTransferErr I got SD_RX_OVERRUN

any idea, what is wrong?

Best regards

Marco

#sdio-dma-error
2 REPLIES 2
slimen
Senior
Posted on July 11, 2016 at 11:00

Hi,

Would you mind giving more information about the STM32Cube_FW package and which version you are using ?

May be, you can refer to ST provided examples:

STM32Cube_FW_F4_V1.12.0\Drivers\BSP\STM32469I_EVAL\stm324x9i_eval_sd.c

STM32Cube_FW_F4_V1.12.0\Drivers\BSP\STM32469I_EVAL\stm324x9i_eval_sd.h

Regards

Radek RIPA
ST Employee
Posted on July 21, 2017 at 14:55

Please check this topic:

https://community.st.com/0D50X00009bMM7JSAW

Best regards

Radek