I'm trying to enable SD card using SDMMC1 on STM32H735G development kit.
However I couldn't get the card connect using sdcConnect() function as it always return failed.
I added this code to the demo project and enable SDMMC in mcuconf.h and enabled HAL_USE_SDC in halconf.h
But no matter how I try it will end up fail on sdcConnect().
My version is most recent on master, last commit on 2025-03-18 SHA:46235d3849250f546d16726b5d4cdb64ba84131f
Please guide me how to enable SDMMC successfully on ChibiOS platform
Thank you
Code: Select all
halInit();
chSysInit();
sdcStop(&SDCD1);
chThdSleepMilliseconds(50);
sdcInit();
chThdSleepMilliseconds(50);
sdcObjectInit(&SDCD1);
chThdSleepMilliseconds(50);
/* Reconfigures USART3 ports (PD8, PD9) */
palSetPadMode(GPIOD, 8, PAL_MODE_ALTERNATE(7));
palSetPadMode(GPIOD, 9, PAL_MODE_ALTERNATE(7));
SerialConfig ser_cfg = {
921600,
0,
USART_CR2_STOP1_BITS,
0,
};
/*
* Activates the serial driver
*/
sdStart(&SD3, &ser_cfg);
debug_print("Hello World!\r\n");
palSetPadMode(GPIOC, 8, PAL_MODE_ALTERNATE(12) | PAL_STM32_OSPEED_HIGHEST | PAL_STM32_PUPDR_PULLUP); // SDMMC1_D0
palSetPadMode(GPIOC, 9, PAL_MODE_ALTERNATE(12) | PAL_STM32_OSPEED_HIGHEST | PAL_STM32_PUPDR_PULLUP); // SDMMC1_D1
palSetPadMode(GPIOC, 10, PAL_MODE_ALTERNATE(12) | PAL_STM32_OSPEED_HIGHEST | PAL_STM32_PUPDR_PULLUP); // SDMMC1_D2
palSetPadMode(GPIOC, 11, PAL_MODE_ALTERNATE(12) | PAL_STM32_OSPEED_HIGHEST | PAL_STM32_PUPDR_PULLUP); // SDMMC1_D3
palSetPadMode(GPIOC, 12, PAL_MODE_ALTERNATE(12) | PAL_STM32_OSPEED_HIGHEST | PAL_STM32_PUPDR_PULLUP); // SDMMC1_CK
palSetPadMode(GPIOD, 2, PAL_MODE_ALTERNATE(12) | PAL_STM32_OSPEED_HIGHEST | PAL_STM32_PUPDR_PULLUP); // SDMMC1_CMD
static const SDCConfig sdccfg_1bit = {
.bus_width = SDC_MODE_1BIT,
.slowdown = 50};
// sdcStop(&SDCD1);
sdcStart(&SDCD1, &sdccfg_1bit);
chThdSleepMilliseconds(500);
if (sdcConnect(&SDCD1) == HAL_SUCCESS)
{
debug_print("SD card connected in 1-bit mode!\r\n");
}
else
{
debug_print("SD Connect failed!\r\n");
}