STM32 Cube系列之SDIO基础(一)

时间:2024-04-10 21:16:08

一、SDIO功能描述

1、SDIO包含两个部分

  • SDIO适配器模块:实现所有MMC/SD/SD I/O卡的相关功能,如时钟的产生、命令和数据的传送。
  • AHB总线接口:操作SDIO适配器模块中的寄存器,并产生中断和DMA请求信号。STM32 Cube系列之SDIO基础(一)

2、SDIO使用两个时钟信号

  • SDIO适配器时钟( SDIOCLK = HCLK )
  • AHB总线时钟( HCLK/2 )

3、SDIO卡时钟

  • SDIO_CK是卡的时钟:每个时钟周期在命令和数据线上传输1位命令或数据。对于多媒体卡 V3.31协议,时钟频率可以在0MHz20MHz间变化;对于多媒体卡V4.0/4.2协议,时钟频率可以在0MHz48MHz间变化;对于SDSD I/O卡,时钟频率可以在0MHz25MHz间变化。
  • SDIO_CK = SDIOCLK / ( 2 + CLKDIV )
  • 注意1:SDIOCLK  = HCLK ;
  • 注意2:SD卡初始化时SDIO_CK不能超过400KHz。

4、SD卡初始化流程

STM32 Cube系列之SDIO基础(一)

  • 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设置为默认设置。