SD卡的引脚定义:
管脚排列和总线读写方式" name="image_operate_52221302162801312" real_src="http://s12.sinaimg.cn/middle/5e374701ga04f0776e47b&690" src="http://s12.sinaimg.cn/middle/5e374701ga04f0776e47b&690" title="[转载]SD卡的管脚排列和总线读写方式" />
SD卡引脚功能详述:
注: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卡的工作电压