esp-idf/components/sdmmc
Ivan Grokhotkov 6ed7e93676
fix(sdmmc): fix invalid data when reading/writing PSRAM buffers
Previous commit has enabled buffers in PSRAM for ESP32-P4. But this
also caused a regression for ESP32-S3, where PSRAM is not DMA capable.
This commit re-introduces the check for esp_ptr_external_ram in case
SOC_SDMMC_PSRAM_DMA_CAPABLE is not set.
2024-06-05 13:12:03 +02:00
..
include feat(sdmmc_io): support sending CMD53 with fixed address 2024-05-21 18:09:23 +08:00
sd_pwr_ctrl change(sdmmc): update ldo acquire driver to new API 2024-03-25 21:19:12 +08:00
CMakeLists.txt change(sdmmc): update ldo acquire driver to new API 2024-03-25 21:19:12 +08:00
README.md feat(sd): added readme for dependency among SD host related components 2023-11-20 12:30:03 +08:00
sdmmc_cmd.c fix(sdmmc): fix invalid data when reading/writing PSRAM buffers 2024-06-05 13:12:03 +02:00
sdmmc_common.c feat(dma): refactor dma calloc function 2024-04-02 14:30:14 +08:00
sdmmc_common.h fix(sdmmc): extend the maximum number of retries of ACMD41 2024-02-28 09:33:24 +01:00
sdmmc_init.c feat(sd): added power control driver and implementation layer with ldo 2024-03-25 11:32:56 +08:00
sdmmc_io.c feat(sdmmc_io): support sending CMD53 with fixed address 2024-05-21 18:09:23 +08:00
sdmmc_mmc.c feat(dma): refactor dma calloc function 2024-04-02 14:30:14 +08:00
sdmmc_sd.c fix: Typo in sdmmc_init_sd_ssr log string 2024-05-28 21:21:34 +02:00

SDMMC Protocol Layer Driver

Architecture Graph

                        ┌─────────────────────────────────────────────┐
                        │                                             │
                        │  SD Protocol Layer Driver: components/sdmmc │
                        │                                             │
                        └──────────▲────────────────────▲─────────────┘
                                   │                    │
                                   │                    │
                        Implements │                    │ Implements
                                   │                    │
┌──────────────────────────────────┴─────┐         ┌────┴───────────────────────────────────┐
│                                        │         │                                        │
│Host Driver: components/esp_driver_sdmmc│         │Host Driver: components/esp_driver_sdspi│
│                                        │         │                                        │
└────────────────────────────────────────┘         └────────────────────────────────────────┘

Components

  • sdmmc: SD protocol layer driver, it provides SD protocol related definitions and interfaces. With corresponding implementation drivers, sdmmc APIs can help you:
    • send commands to slave devices
    • send and receive data
    • handle error conditions within the bus
  • esp_driver_sdmmc: SDMMC Host driver for ESP SDMMC hardware, it implements the sdmmc protocol interfaces.
  • esp_driver_sdspi: SDSPI Host driver for ESP GPSPI hardware, it implements the sdmmc protocol interfaces.

Dependency

  • esp_driver_sdmmc is in driver layer (G2), it relies on sdmmc
  • esp_driver_sdspi is in driver layer (G2), it relies on sdmmc
  • sdmmc does not and should not rely on esp_driver_sdmmc or esp_driver_sdspi. Though sdmmc is independent, it still stays in G2.