一SD卡硬件原理图
SD卡使用9-pin接口通信,其中3根电源线、1根时钟线、1根命令线和4根数据线,具体如下:
- CLK:时钟线,由SDIO主机产生,即由STM32控制器输出;
- CMD:命令控制线,SDIO主机通过该线发送命令控制SD卡,如果命令要求SD卡提供应答,SD卡也是通过该线传输应答信息;
- D0-3:数据线,传输读写数据;SD卡可将D0拉低表示忙状态;
- VDD、VSS1、VSS2:电源和地信号。
二 下表列出了SD卡部分命令信息,更多详细信息可以参考SD简易规格文件
说明,表中填充位和保留位都必须被设置为0。
三、SDIO初始化结构体用于配置SDIO基本工作环境,比如时钟分频、时
钟沿、数据宽度等等。
SDIO命令初始化结构体用于设置命令相关内容,比如命令号、命令参
数、响应类型等等。
SDIO数据初始化结构体用于配置数据发送和接收参数,比如传输超时、
数据长度、传输模式等等。 它被SDIO_DataConfig函数使用
四、数据传输模式
只有SD卡系统处于数据传输模式下才可以进行数据读写操作。数据传输模式下可以将主机SD时钟频率设置为FPP,默认最高为25MHz,频率切换可以通过CMD4命令来实现。
五、实验测试
例程参考了野火STM32F103的代码,做了一些修改,测试可以用。
加入了串口打印输出
SD卡找一个小于32G的Micro SD卡插入卡座
此内容由EEWORLD论坛网友常见泽1原创,如需转载或用于商业用途需征得作者同意并注明出处