Skip to main content
Hungyin
Associate
January 20, 2022
Question

[HAL BUG Report] STM32H743 SDMMC LL library only supports 2 transfer modes

[HAL BUG] STM32H743 SDMMC LL library only supports 2 transfer modes

I connected SDMMC2 to Marvell 88W8801 WiFi chip (an SDIO card).

In STM32H743 reference manual, SDMMC_DCTRL_DTMODE supports 4 data transfer modes:

[00] block data transfer

[01] SDIO multibyte data transfer

[10] eMMC stream data transfer

[11] block data transfer ending with STOP_TRANSMISSION command

However, stm32h7xx_ll_sdmmc.h only gives us 2 choices:

SDMMC_TRANSFER_MODE_BLOCK [00]

SDMMC_TRANSFER_MODE_STREAM [10]

88W8801 only supports SDIO multibyte data transfer mode in 1-bit width bus.

It does not support eMMC stream data transfer mode.

If sdmmc_data.TransferMode=SDMMC_DCTRL_DTMODE_0, IS_SDMMC_TRANSFER_MODE() macro in SDMMC_ConfigData will fail.

This topic has been closed for replies.

4 replies

ST Technical Moderator
January 20, 2022

Hello @Community member​ ,

Thanks for posting this issue.

I am checking this and I will come back to you with details about corrective actions we will take.

Thanks

Imen

In order to give better visibility on the answered topics, please click on 'Best answer' on the reply which solved your issue or answered your question. Thanks
ST Technical Moderator
January 21, 2022

Hi @Community member​ ,

I confirm that SDMMC LL driver support only 2 modes.

The driver implementation is done mainly for generic SD/MMC memories, so there is some modes that are not supported, and there is no short-term plan to support them.

Thank you once again for your contribution.

When your question is answered, please close this topic by choosing "Select as Best". This will help other users find that answer faster.

Thanks

Imen

In order to give better visibility on the answered topics, please click on 'Best answer' on the reply which solved your issue or answered your question. Thanks
Hungyin
HungyinAuthor
Associate
February 4, 2022

Just adding the 01 mode macro ​and modifying IS_SDMMC_TRANSFER_MODE() marco in the sdmmc header file is enough. We want to use SDMMC_ConfigData