2025-09-01 8:16 AM
Hi ST Community.
I am using an STM32H725IGK MCU on a custom board. My board has a uSD card slot connected to the SDIO pins, and I am using SDMMC1 peripheral. I am also using FatFS to use a filesystem on the uSD card.
I can operate the SD card properly most of the time. I can mount, format, create files and folders, and read and write to files. However, sometimes, some operations fail. Normally, it's either f_write or f_lseek. They fail at the low-level disk_read() operation. I do not understand why.
I will share my system configuration:
- Clock MUX:
- SDMMC Parameters:
The clock divide factor of 2 gives 32 MHz. I also tried setting the clock to 16 MHz and 8 MHz, but the problem persists.
- SDMMC GPIO settings:
I also adjusted the output speed of the pins to guarantee the signal integrity is good, but the issue remains.
- FatFS defines:
- FatFS Advanced Settings:
My system also utilizes FreeRTOS, and I use semaphores to ensure that only one task accesses the SD card at a time. I have the FS_REENTRANT disabled.
I tried SD cards from different brands and different sizes. It seems that 16 GB cards work better, but still fail. The 32 GB fails more often.
Is there a limitation on the number of bytes that I can use on f_write or f_lseek? Is there a problem with my configuration that I'm not seeing? Do I have to use multiples of the maximum sector size, 512, in my configuration?
Any help is deeply appreciated. I've been stuck with this issue for a while now.
2025-09-01 9:52 AM
Hi,
just 3 notes :
- for bigger cards ( > 16GB) exfat should be enabled, because these cards usually are in exfat format.
- dont format the cards, usually
- pin setting for all pins to the card : try medium or med./high speed , and pullup ON .