Stm32驱动sd卡知识总结(1)
1.Stm32支持SDIO
接口,可以用来接入一张不超过32G
的SD卡
2.CID寄存器长度为128bit
,用来标记SD卡的全球唯一身份识别号
3.支持单线和四线传输模式,数据和命令传输时,时钟线的上升沿有效
4.sd卡工作有两个频率,当卡识别阶段(初始化),时钟频率FOD 最高为400khz,当卡为正常工作阶段FPP时钟可达25Mhz,若配置寄存器为高速模式,速度可达50Mhz
5.命令的发送与接收从CMD线上传输,数据从D0-D3线上传输
SD卡中几个较为常用的寄存器如下
说明:SD卡的数据是以块的方式传输的,一般为512个字节,数据块需要crc来保证传输的正确性,CRC位由sd卡的硬件生成
命令交互
数据传输模式
写入数据后,sd卡控制器需要将数据写入内部nand块,所以会将D0拉低一段时间,表示sd卡忙状态。
数据块读操作与之类似,只是无需忙状态检测。
通信过程
使用 4
数据线传输时,每次传输 4bit
数据,每根数据线都必须有起始位、终止位以及CRC
位, CRC
位每根数据线都要分别检查,并把检查结果汇总然后在数据传输完后通过D0 线反馈给主机。
具体过程如下图所示:
另外,有一个比较特殊的命令,它使用了CMD线发命令,DATA 线接收数据
今天先到这,回家啦。。。。。。。