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