电子说
SD卡的引脚定义:
引脚 编号 |
SD模式 | SPI模式 | ||||
名称 | 类型 | 描述 | 名称 | 类型 | 描述 | |
1 | CD/DAT3 | IO或PP |
卡检测/ 数据线3 |
#CS | I | 片选 |
2 | CMD | PP |
命令/ 回应 |
DI | I | 数据输入 |
3 | VSS1 | S | 电源地 | VSS | S | 电源地 |
4 | VDD | S | 电源 | VDD | S | 电源 |
5 | CLK | I | 时钟 | SCLK | I | 时钟 |
6 | VSS2 | S | 电源地 | VSS2 | S | 电源地 |
7 | DAT0 | IO或PP | 数据线0 | DO | O或PP | 数据输出 |
8 | DAT1 | IO或PP | 数据线1 | RSV | ||
9 | DAT2 | IO或PP | 数据线2 | RSV |
注:S:电源供给 I:输入 O:采用推拉驱动的输出
PP:采用推拉驱动的输入输出
SD卡支持两种总线方式:
SD方式与SPI方式。SD模式是SD卡标准的读写方式,但是在选用SD模式时,往往需要选择带有SD卡控制器接口的MCU,或者必须加入额外的SD卡控制单元以支持SD卡的读写。然而,很多51单片机没有集成SD卡控制器接口,若选用SD模式通讯就无形中增加了产品的硬件成本。在SD卡数据读写时间要求不是很严格的情况下,选用SPI模式可以说是一种最佳的解决方案。我用软件模拟出SPI总线时序读写SD卡。
其中SD方式采用6线制,使用CLK、CMD、DAT0~DAT3进行数据通信。
而SPI方式采用4线制,使用CS、CLK、DataIn、DataOut进行数据通信。SD方式时的数据传输速度与SPI方式要快,采用单片机对SD卡进行读写时一般都采用SPI模式。采用不同的初始化方式可以使SD卡工作于SD方式或SPI方式。这里只对其SPI方式进行介绍。
SD卡SPI模式下与单片机的连接图:
SD卡工作电压范围是2.0-3.6V
SD卡的IO的逻辑电平是3.3V,上图只适合单片机的IO逻辑电平是3.3V的。
如果我们用的是5V的MCU我们就要进行电平转换。(下面的方法是比较保险的做法,也有人用电阻分压)
解决逻辑器件接口的电平兼容问题,原则主要有两条:
一为输出电平器件输出高电平的最小电压值,应该大于接收电平器件识别为高电平的最低电压值;
二为输出电平器件输出低电平的最大电压值,应该小于接收电平器件识别为低电平的最高电压值。
考虑到SD卡在SPI协议的工作模式下,通讯都是单向的,于是在单片机向SD卡传输数据时采用晶体管加上拉电阻法的方案,而在SD卡向单片机传输数据时可以直接连接,因为它们之间的电平刚好满足上述的电平兼容原则,既经济又实用。
这样硬件连接就完成了,注意SD卡的工作电压
全部0条评论
快来发表一下你的评论吧 !