HAL SD Overview ¶
Introducing SD ¶
- group SD_Introduction
-
The SD Hardware Abstraction Layer provides a high-level interface to the STM32 SDMMC peripheral for communicating with Secure Digital (SD) and microSD memory cards.
This HAL driver is built on top of the SDMMC core layer and simplifies peripheral initialization, device identification, configuration, and transition to the transfer state.
It supports the main data operations required by storage applications, including single-block and multi-block read/write transfers, erase control, transfer abort management, and access to device status and configuration information.
The driver supports polling, interrupt, DMA, and, when enabled, linked-list or double-buffer DMA transfer modes, allowing the application to balance CPU load, throughput, and responsiveness.
It also provides services to manage device insertion and removal events, configure transfer timing and, when available, FIFO threshold parameters.
This abstraction layer improves portability across STM32 devices embedding the SDMMC peripheral and eases the integration of SD storage into embedded applications.
Module and files ¶
The following diagram illustrates the SD module and its associated files.
Component diagram ¶
The following diagram illustrates the software components involved in the SD module. It shows the interactions between the user application, HAL drivers, low-level drivers, and the hardware components.
Configuration table ¶
The following table lists the configuration defines for the HAL SD module, specifying their locations, default values, and descriptions:
- group SD_Configuration_Table
-
¶
Configuration inside the SD driver ¶
Config defines
Description
Default value
Note
USE_ASSERT_DBG_PARAM
from the IDE
NONE
Allows to use the assert checks parameters.
USE_ASSERT_DBG_STATE
from the IDE
NONE
Allows to use the assert checks states.
USE_HAL_CHECK_PARAM
from hal_conf.h
0
Allows to use the run-time checks parameters.
USE_HAL_SD_AUTO_DETECTION_FREQUENCY
from hal_conf.h
0
Allows to Enable/Disable SD Custom Frequency.
USE_HAL_SD_REGISTER_CALLBACKS
from hal_conf.h
0
Allows to provide specific callback functions.
USE_HAL_SD_LINKEDLIST
from hal_conf.h
1
Allows to use the SD in linked-list mode.
USE_HAL_SD_GET_CID
from hal_conf.h
1
Allows to get card identification information.
USE_HAL_SD_GET_LAST_ERRORS
from hal_conf.h
1
Allows to get last errors codes.
USE_HAL_SD_USER_DATA
from hal_conf.h
0
Allows to Enable/Disable user data.
USE_HAL_SD_CLK_ENABLE_MODEL
from hal_conf.h
HAL_CLK_ENABLE_NO
Allows to enable the clock model for the SD.
USE_HAL_SD_GET_SPEC_VERSION
from hal_conf.h
1
Allows to get the SD Card version.