一、SDIO功能描述
1、SDIO包含两个部分
- SDIO适配器模块:实现所有MMC/SD/SD I/O卡的相关功能,如时钟的产生、命令和数据的传送。
- AHB总线接口:操作SDIO适配器模块中的寄存器,并产生中断和DMA请求信号。
2、SDIO使用两个时钟信号
- SDIO适配器时钟( SDIOCLK = HCLK )
- AHB总线时钟( HCLK/2 )
3、SDIO卡时钟
-
SDIO_CK是卡的时钟:每个时钟周期在命令和数据线上传输1位命令或数据。对于多媒体卡 V3.31协议,时钟频率可以在0MHz至20MHz间变化;对于多媒体卡V4.0/4.2协议,时钟频率可以在0MHz至48MHz间变化;对于SD或SD I/O卡,时钟频率可以在0MHz至25MHz间变化。
-
SDIO_CK = SDIOCLK / ( 2 + CLKDIV )
-
注意1:SDIOCLK = HCLK ;
-
注意2:SD卡初始化时SDIO_CK不能超过400KHz。
4、SD卡初始化流程
- Power-on :卡上电;
- CMD0 :将卡重置为空闲状态;
- CMD8 :发送SD存储卡接口条件,包括主机供电电压信息并询问SD卡是否支持主机供电电压。同时该命令也可以用于区 分卡类型,只有 2.0 及以后的卡才支持 CMD8 命令,MMC 卡和 V1.x 的卡不支持该命令。
- ACMD41 :ACMD41是一个同步命令,识别并拒绝与主机所需的VDD范围不匹配的卡。
- CMD2 :获取卡标识。
- CMD3 :发布新的卡相对地址RCA。
- 注意1:详细初始化流程可查阅SD 2.0协议 4.2章节;
- 注意2:在发送ACMD41前应先在空闲状态下发送CMD55将RCA设置为默认设置。