ESP WROOM 32 and SDMMC
Posted: Mon Apr 18, 2022 1:37 pm
Hello,
I am working on interfacing an sd as mmc card with esp wroom 32 board. I am about to use https://www.mouser.bg/datasheet/2/308/1 ... 310483.pdf as it seems very convenient for my purpose.
Now I am breadboarding the sd card system and have a few questions.
My setup:
GPIO2 -> DATA0, 20K pullup
GPIO4 -> DATA1, 20K pullup
GPIO12 -> DATA2, 20K pullup
GPIO13 -> DATA3, 20K pullup
GPIO14 -> CLK, 20K pullup
GPIO15 -> CMD, 20K pullup
https://docs.espressif.com/projects/esp ... licts-dat2
1. It is recommended to use external pull-ups, but the internal ones should be enabled anyway is that right? If I disable internal pull-ups by commenting out "slot_config.flags |= SDMMC_SLOT_FLAG_INTERNAL_PULLUP;" it is not working. It seems like GPIO's: 2, 4, 12 are pulled-down although there are external pull-ups there.
2. It seems that GPIO2 needs lower pull-up value resistor, it is recommended 10K, but it is working with at least 5K, otherwise I am getting:
E (367) sdmmc_sd: sdmmc_init_sd_scr: send_scr (1) returned 0x109
E (367) vfs_fat_sdmmc: sdmmc_card_init failed (0x109).
E (367) sdmmc: Failed to initialize the card (ESP_ERR_INVALID_CRC). Make sure SD card lines have pull-up resistors in place.
So if I use CM1624, I have to add one more resistor in parallel to the internal 25K pull-up to get it to work?
I can not find any info on those, nor in the datasheet neither in forums.
Can anyone share some experience?
Thanks in advance!
I am working on interfacing an sd as mmc card with esp wroom 32 board. I am about to use https://www.mouser.bg/datasheet/2/308/1 ... 310483.pdf as it seems very convenient for my purpose.
Now I am breadboarding the sd card system and have a few questions.
My setup:
GPIO2 -> DATA0, 20K pullup
GPIO4 -> DATA1, 20K pullup
GPIO12 -> DATA2, 20K pullup
GPIO13 -> DATA3, 20K pullup
GPIO14 -> CLK, 20K pullup
GPIO15 -> CMD, 20K pullup
https://docs.espressif.com/projects/esp ... licts-dat2
1. It is recommended to use external pull-ups, but the internal ones should be enabled anyway is that right? If I disable internal pull-ups by commenting out "slot_config.flags |= SDMMC_SLOT_FLAG_INTERNAL_PULLUP;" it is not working. It seems like GPIO's: 2, 4, 12 are pulled-down although there are external pull-ups there.
2. It seems that GPIO2 needs lower pull-up value resistor, it is recommended 10K, but it is working with at least 5K, otherwise I am getting:
E (367) sdmmc_sd: sdmmc_init_sd_scr: send_scr (1) returned 0x109
E (367) vfs_fat_sdmmc: sdmmc_card_init failed (0x109).
E (367) sdmmc: Failed to initialize the card (ESP_ERR_INVALID_CRC). Make sure SD card lines have pull-up resistors in place.
So if I use CM1624, I have to add one more resistor in parallel to the internal 25K pull-up to get it to work?
I can not find any info on those, nor in the datasheet neither in forums.
Can anyone share some experience?
Thanks in advance!