ESP32 SDMMC技术文档翻译

本文档介绍了ESP32的SDMMC主机外设,包括其对SD、MMC和SDIO卡的支持,以及SDMMC驱动的组成部分。重点讲述了SDMMC协议层的职责,如初始化SD卡和数据传输,并提供了示例应用程序。此外,还详细描述了sdmmc_host_t和sdmmc_card_t等关键结构体,以及如何使用它们进行卡初始化、读写操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SDMMC 主机外设
概述
SDMMC 外设支持SD卡、MMC卡和SDIO卡。SDMMC的软件是基于SDMMC驱动之上的,由下面几个部分组成。
SDMMC主机外设(driver/sdmmc_host.h)---驱动支持APIs接口发送命令到从机设备,发送和接受数据,处理条件错误。
SDMMC协议层(sdmmc_cmd.h)---该组件处理SD协议的细节,初始化SD卡和数据数据传输的命令。尽管当前只支持SD (SDSC/SDHC/SDXC) 卡,在将来会支持MCC/eMMC卡。

协议层与主机通过sdmmc_host_t结构建立联系。这个结构包含指向各种功能的主机。这个设计可以实现SD主机使用SPI接口。
应用程序示例
在examples/storage/sd_card这个实例中将SDMMC驱动和FATFS文件系统结合在了一起。这个实例实现了初始化SD卡使用POSIX 和 C库APIs接口来写读数据。看实例中的README.md文件获取更多的信息

协议层APIs接口
协议层获取到描述SDMMC主机驱动sdmmc_host_t结构体,列表它的功能,并且提供了指向驱动函数的指针,协议层特定SD卡信息存储在sdmmc_card_t结构中。当发送命令到SDMMC主机驱动程序,协议层使用sdmmc_command_t结构来描述命令,参数,将返回值,和数据传输,如果任何。

正常使用的协议层如下:

1、调用主机驱动程序函数来初始化主机(例如sdmmc_host_init、sdmmc_host_init_slot)。
2、调用sdmmc_card_init来初始化SD,传递主机驱动信息和sdmmc_card_t结构体信息(作为参数)
3、使用sdmmc_read_sectors sdmmc_write_sectors读写卡扇区,,传递卡信息结构的指针(卡)。
4、当不再使用SD卡时,调用主机驱动程序函数失能SDMMC主机外围和释放资源分配的驱动程序(例如sdmmc_host_deinit)。
5、大多数应用程序需要使用协议层只有一个任务;因此协议层不实现任何锁定sdmmc_card_t结构,或当访问SDMMC主机驱动程序。这种锁是实现更高的层,必要时(如文件系统驱动程序)。


结构体 sdmmc_host_t
SDMMC主机描述
这个结构体定义了SDMMC主机的属性和功能,可由上层使用。
公共成员


uint32_t flags
1、定义主机属性标志
int slot
2、接口槽数&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值