From f893750bb6b6b6adda4e02e1c7a42cb58c0fd1e4 Mon Sep 17 00:00:00 2001 From: Armando Date: Tue, 21 Nov 2023 12:11:45 +0800 Subject: [PATCH] doc(sdmmc): doc(sdmmc): updated sdmmc programming guide for esp32p4 --- docs/_static/diagrams/sd/sd_arch.diag | 13 +++++ docs/_static/diagrams/sd/sd_arch.png | Bin 0 -> 18635 bytes docs/docs_not_updated/esp32p4.txt | 2 - .../api-reference/peripherals/sdmmc_host.rst | 7 ++- docs/en/api-reference/storage/sdmmc.rst | 51 ++++++------------ 5 files changed, 35 insertions(+), 38 deletions(-) create mode 100644 docs/_static/diagrams/sd/sd_arch.diag create mode 100644 docs/_static/diagrams/sd/sd_arch.png diff --git a/docs/_static/diagrams/sd/sd_arch.diag b/docs/_static/diagrams/sd/sd_arch.diag new file mode 100644 index 0000000000..b6bd8f096e --- /dev/null +++ b/docs/_static/diagrams/sd/sd_arch.diag @@ -0,0 +1,13 @@ +blockdiag sd_arch { + default_fontsize = 16; + node_width = 300; + node_height = 100; + span_width = 150; + + A [label = "SD Protocol Layer Driver Component:\nsdmmc"] + B [label = "Host Driver Component:\nesp_driver_sdmmc"] + C [label = "Host Driver Component:\nesp_driver_sdspi"] + + A -> B [dir = back, label = "Implements", style = dashed, hstyle = generalization, fontsize=14] + A -> C [dir = back, label = "Implements", style = dashed, hstyle = generalization, fontsize=14] +} diff --git a/docs/_static/diagrams/sd/sd_arch.png b/docs/_static/diagrams/sd/sd_arch.png new file mode 100644 index 0000000000000000000000000000000000000000..e94c0ff36753b0d08dd3ac45512edb56a0ea9b0a GIT binary patch literal 18635 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 for more details. + - SDSPI host driver (:component_file:`esp_driver_sdspi/include/driver/sdspi_host.h`), see :doc:`SD SPI Host API <../peripherals/sdspi_host>` for more details. + +Protocol Layer vs Host Layer +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The SDMMC protocol layer described in this document handles the specifics of the SD protocol, such as the card initialization flow and variours data transfer command flows. The protocol layer works with the host via the :cpp:class:`sdmmc_host_t` structure. This structure contains pointers to various functions of the host. + +Host layer driver(s) implement the protocol layer driver by supporting these functions: - Sending commands to slave devices - Sending and receiving data - Handling error conditions within the bus -For functions used to initialize and configure: +.. blockdiag:: /../_static/diagrams/sd/sd_arch.diag + :scale: 100% + :caption: SD Host Side Component Architecture + :align: center -.. list:: - - :SOC_SDMMC_HOST_SUPPORTED: - SDMMC host, see :doc:`SDMMC Host API <../peripherals/sdmmc_host>` - - SD SPI host, see :doc:`SD SPI Host API <../peripherals/sdspi_host>` - - -.. only:: SOC_SDMMC_HOST_SUPPORTED - - The SDMMC protocol layer described in this document handles the specifics of the SD protocol, such as the card initialization and data transfer commands. - - The protocol layer works with the host via the :cpp:class:`sdmmc_host_t` structure. This structure contains pointers to various functions of the host. - -Pin Configurations ------------------- - -..only:: SOC_SDMMC_USE_IOMUX and not SOC_SDMMC_USE_GPIO_MATRIX - - SDMMC pins are dedicated, you don't have to configure the pins. - -..only:: SOC_SDMMC_USE_GPIO_MATRIX and not SOC_SDMMC_USE_IOMUX - - SDMMC pin signals are routed via GPIO Matrix, so you will need to configure the pins in :cpp:type:`sdmmc_slot_config_t`. - -..only:: esp32p4 - - SDMMC have two slots: - - .. list:: - - - Slot 0 pins are dedicated for UHS-I mode. This is not yet supported in the driver. - - Slot 1 pins are routed via GPIO Matrix, and it's for non UHS-I usage. You will need to configure the pins in :cpp:type:`sdmmc_slot_config_t` to use the slot 1. Application Example ------------------- @@ -58,7 +39,7 @@ An example which combines the SDMMC driver with the FATFS library is provided in Protocol Layer API ------------------ - The protocol layer is given the :cpp:class:`sdmmc_host_t` structure. This structure describes the SD/MMC host driver, lists its capabilities, and provides pointers to functions of the driver. The protocol layer stores card-specific information in the :cpp:class:`sdmmc_card_t` structure. When sending commands to the SD/MMC host driver, the protocol layer uses the :cpp:class:`sdmmc_command_t` structure to describe the command, arguments, expected return values, and data to transfer if there is any. + The protocol layer is given the :cpp:class:`sdmmc_host_t` structure. This structure describes the SD/MMC host driver, lists its capabilities, and provides pointers to functions for the implementation driver. The protocol layer stores card-specific information in the :cpp:class:`sdmmc_card_t` structure. When sending commands to the SD/MMC host driver, the protocol layer uses the :cpp:class:`sdmmc_command_t` structure to describe the command, arguments, expected return values, and data to transfer if there is any. Using API with SD Memory Cards