03-硬件设计-SD卡电路设计

硬件设计-SD卡电路设计


SD卡是基于flash的存储卡。
SD卡和MMC卡的区别在于初始化过程不同。
SD卡的通信协议包括SD和SPI两类。(我们今天主要讲解SDIO通讯)
MicroSD的体积更小且可以转换SD卡使用,TF卡的电路和引脚和SD卡是一样的。

1.引脚说明

SD卡:
在这里插入图片描述
在这里插入图片描述
SD卡内部引脚
在这里插入图片描述
TF卡:
在这里插入图片描述
在这里插入图片描述
SD 卡使用 9-pin 接口通信,其中 3 根电源线、 1 根时钟线、 1 根命令线和 4 根数据线,具体说明如下:

  1. CLK: 时钟线,由 SDIO 主机产生,即由 STM32 控制器输出;
  2. CMD: 命令控制线, SDIO 主机通过该线发送命令控制 SD 卡,如果命令要求 SD 卡提供应答 (响应), SD 卡也是通过该线传输应答信息;
  3. D0-3: 数据线,传输读写数据; SD 卡可将 D0 拉低表示忙状态;
  4. VDD、 VSS1、 VSS2: 电源和地信号。

2.时序说明

SD 卡刚刚初始化的时候,其时钟频率(SDIO_CK)是不能超过 400Khz的,否则可能无法完成初始化。在初始化以后,就可以设置时钟频率到最大了。
SDIO 的所有命令和响应都是通过 SDIO_CMD 引脚传输的,任何命令的长度都是固定为 48 位,
在这里插入图片描述
一般情况下,选中的 SD 卡在接收到命令之后,都会回复一个应答(注意 CMD0 是无应答的),这个应答我们称之为响应,响应也是在 CMD 线上串行传输的。有两种相应类型,:短响应(48 位)和长响应(136 位),这两种响应类型都带 CRC 错误检测。
在这里插入图片描述
在这里插入图片描述
SD 存储卡总共有 5 类响应(R1、R2、R3、R6、R7)。
在这里插入图片描述
数据在 SDIO 控制器与 SD 卡之间的传输,是以数据块的形式传输的。
在这里插入图片描述
在这里插入图片描述
卡上电后发送CMD0命令,之后发送 CMD8命令,通过其带的参数我们可以设置 VHS 位,以告诉 SD卡,主机的供电情况。
在这里插入图片描述
在这里插入图片描述
发送 ACMD41(注意发送 ACMD41 之前要先发送 CMD55),来进一步确认卡的操作电压范围。
在这里插入图片描述
ACMD41 得到的响应(R3)包含 SD 卡 OCR 寄存器内容。
在这里插入图片描述
最后发送了 CMD2 和 CMD3 命令,用于获得卡 CID 寄存器数据和卡相对地址(RCA)。
在这里插入图片描述
CMD3,用于设置卡相对地址RCA。RCA 的存在允许一个 SDIO 接口挂多个 SD 卡,通过 RCA 来区分主机要操作的是哪个卡
SD 卡总共有 8 个寄存器,用于设定或表示 SD 卡信息
在这里插入图片描述
还需要将置 SDIO 的数据位宽为 4 位。
该函数先发送 CMD16,用于设置块大小,然后配置 SDIO 控制器读数据的长度,然后发送 CMD17(带地址参数 addr),从指定地址读取一块数据。

SD卡命令共分为12类,分别为class0到class11,
不同的SDd卡,主控根据其功能,支持不同的命令集 如下:
Class0 :(卡的识别、初始化等基本命令集)
CMD0:复位SD 卡.
CMD1:读OCR寄存器.
CMD9:读CSD寄存器.
CMD10:读CID寄存器.
CMD12:停止读多块时的数据传输
CMD13:读 Card_Status 寄存器
Class2 (读卡命令集):
CMD16:设置块的长度
CMD17:读单块.
CMD18:读多块,直至主机发送CMD12为止 .
Class4(写卡命令集) :
CMD24:写单块.
CMD25:写多块.
CMD27:写CSD寄存器 .
Class5 (擦除卡命令集):
CMD32:设置擦除块的起始地址.
CMD33:设置擦除块的终止地址.
CMD38: 擦除所选择的块.
Class6(写保护命令集):
CMD28:设置写保护块的地址.
CMD29:擦除写保护块的地址.
CMD30: Ask the card for the status of the write protection bits
class7:卡的锁定,解锁功能命令集
class8:申请特定命令集 。
class10 -11 :保留

数据线传输位置图。它先发低字节再发高字节,而每个字节则是先发高位再发低位,4线传输示意如图所示,4线同步发送,每根线发送一个字节的其中两个位,数据位在4线顺序排列发送,DAT3数据线发较高位,DAT0数据线发较低位
在这里插入图片描述
在这里插入图片描述

3.硬件设计要点

SD卡座没有DETECT监测引脚。
在这里插入图片描述
TF卡座有一个DETECT监测引脚。需要上拉。所有对外接口都需要ESD芯片的保护。
在这里插入图片描述
在接1.8V的IO接口时需要通过电平转换芯片
在这里插入图片描述
硬件电路设计注意点

  1. 考虑静电保护
  2. IO接口电平匹配
  3. VCC的接口电容靠近卡座放置
  4. 卡座尽量放置在板边,方便插拔,走线需要先经过ESD芯片在到主机,最好不要打孔。
  5. SD单端走线50R
  6. 所有的信号线尽量在同一层,有利于信号一致性,与高频信号隔开,空间允许时记得包地,要有完整的参考平面
  7. 3W原则
  8. 组内数据线尽量控制在400mil以内。总长控制在12inch以内。
  9. 信号线要与clk做等长处理。误差在100mil以内。
  10. 除CLK外所有引脚上拉到VCC
  11. DETECT引脚需要上拉
  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值