MMC/eMMC clarification - ESP32-C6

User avatar
seonroz
Posts: 57
Joined: Thu Oct 25, 2018 3:51 am
Location: Melbourne, Australia
Contact:

MMC/eMMC clarification - ESP32-C6

Postby seonroz » Fri Jul 26, 2024 11:08 pm

Hey Espressif Folks,

The ESP32-C6 doesn't have the MMC Host controller peripheral, but the latest IDF docs states that though currently only SD Card support is possible, eMMC is support will be added later.

But this is the exact same note for every chip including the S3 and original ESP32, which both have the MMC Host controller peripheral, and both work grea with eMMC, so support is there, and has been for ages.

So, are the docs just wrong for every chip?
Can eMMC work at a firmware level without the MMC host controller?
Will eMMC support be coming for the C6 like the docs state?

Can this be clarified here and the docs updated to reflect their correct current state for each chip in the ESP32 family please?

Thanks :)
Seon
Unexpected Maker
Attachments
esp32_c6.jpg
esp32_c6.jpg (148.89 KiB) Viewed 1946 times
esp32_s3.jpg
esp32_s3.jpg (178.52 KiB) Viewed 1946 times
Seon
unexpectedmaker.com

User avatar
seonroz
Posts: 57
Joined: Thu Oct 25, 2018 3:51 am
Location: Melbourne, Australia
Contact:

Re: MMC/eMMC clarification - ESP32-C6

Postby seonroz » Tue Aug 20, 2024 6:32 am

Is this really not going to get a response from anyone at Espressif?
The docs are outdated and/or wrong on pretty much all platforms regarding support for eMMC and I'd love some clarrification.
Thanks :)
Seon
Unexpected Maker
Seon
unexpectedmaker.com

ESP_igrr
Posts: 2072
Joined: Tue Dec 01, 2015 8:37 am

Re: MMC/eMMC clarification - ESP32-C6

Postby ESP_igrr » Thu Aug 22, 2024 2:12 pm

Hi Seon,

The note in sdmmc_card_init about eMMC not being supported is indeed outdated. Will remove it!


You are right that ESP32-C6 doesn't have SDMMC Host controller. You can call sdmmc_card_init on ESP32-C6, provided that you use SDSPI host. That is, you write:

Code: Select all

sdmmc_host_t host = SDSPI_HOST_DEFAULT();
...
err = sdmmc_card_init(&host, &card);
sdmmc_card_init is a higher level function which can work both with SDSPI and SDMMC hosts.

You can use even higher level functions such as esp_vfs_fat_sdspi_mount — they will call sdmmc_card_init and then initialize FAT partition on the card.

However, eMMC chips don't usually support SPI protocol, so in practice ESP32-C6 can only communicate with SD cards or SD-NAND chips.

User avatar
seonroz
Posts: 57
Joined: Thu Oct 25, 2018 3:51 am
Location: Melbourne, Australia
Contact:

Re: MMC/eMMC clarification - ESP32-C6

Postby seonroz » Sun Aug 25, 2024 10:19 pm

Thanks for the reply and update.

Yeah, I was expecting the C6 etc to not be able to use the eMMC - but the docs gave me a little hope that maybe Espressif had some under the hood magic planned :)

Hopefully the docs wil be updated soon for all of the platforms to make it clear what does and does support eMMC.

Cheers :)

Seon
Unexpected Maker
Seon
unexpectedmaker.com

Who is online

Users browsing this forum: karunt and 100 guests