EMMC/SD学习小记

eMMC之分区管理、总线协议和工作模式
JDEDC EMMC 协议中文
SD卡协议中文2.0 3.0

EMMC4.4 非Boot模式读流程

  • 等待74个时钟
  • CMD0 复位emmc至idle状态
命令索引 类型 参数 应答 缩写 命令说明
CMD0 bc 00000000 - GO_IDLE_STATE 复位设备至idle状态
CMD0 bc f0f0f0f0 - GO_PRE_IDLE_STATE 复位设备至pre-idle状态
CMD0 - fffffffa - GO_INITIATION 启动替换的引导操作

这里写图片描述

  • 发送CMD1获取OCR
命令索引 类型 参数 应答 缩写 命令说明
CMD1 bc [31:0] OCR R3 SEND_OP_COND 请求idle状态设备发送在CMD线发送其OCR结构

这里写图片描述

  • CMD2获取CID
命令索引 类型 参数 应答 缩写 命令说明
CMD2 bc [31:0] 填充位 R2 ALL_SEND_CID 请求设备在CMD线发送其CID编号

这里写图片描述

  • CMD3分配RCA
命令索引 类型 参数 应答 缩写 命令说明
CMD3 ac [31:16] RCA [15:0] 填充位 R1 SET_RELATIVE_ADDR 分配相对地址到设备

这里写图片描述

  • CMD9获取CSD
命令索引 类型 参数 应答 缩写 命令说明
CMD9 ac [31:16] RCA [15:0] 填充位 R2 SEND_CSD SEND_CSD寻址的设备在CMD线上发送其设备专有数据(CSD)

这里写图片描述

  • CMD7 设置transfer状态
命令索引 类型 参数 应答 缩写 命令说明
CMD7 ac [31:16] RCA [15:0] 填充位 R2 SELECT/DESELECT_C ARD 在stand-by和transfer状态之间或program- ming和disconnect状态之间切换设备的命令。两种情况下,设备以其自己的相对地址被选定并以其他地址被取消选定;地址0取消所有设备的选定。

这里写图片描述

  • CMD13获取设备状态
命令索引 类型 参数 应答 缩写 命令说明
CMD13 ac [31:16] RCA [15:0] 填充位 R1 SEND_STATUS 寻址的设备发送其状态寄存器

这里写图片描述

  • 根据ECSD switch不同的位宽。(可选) CMD8, CMD13, CMD6
  • CMD18读数据
命令索引 类型 参数 应答 缩写 命令说明
CMD18 adtc [31:0] 数据地址1 R1 READ_MULTIPLE_ BLOCK 从设备向主机连续传输数据块,直至被停止命令中断,或所要求传输的块数。

这里写图片描述

这里写图片描述

SD1.0 初始化流程

这里写图片描述

  • 等待74个时钟
  • CMD0 复位SD卡至idle状态
    这里写图片描述
  • CMD8 发送SD 卡接口条件,包含了主机支持的电压信息,并询问卡是否支持。保留位应该设置为0。
命令索引 类型 参数 应答 缩写 命令说明
CMD8 bcr [31:12]保留位,[11:8]VHS,[7:0]检查模式 R7 SEND_IF_COND 发送SD 卡接口条件,包含了主机支持的电压信息,并询问卡是否支持。保留位应该设置为0。

这里写图片描述

  • ACMD41 发送卡的支持信息(HCS)。发送ACMD需要先发送CMD55。
命令索引 类型 参数 应答 缩写 命令说明
CMD55 ac [31:16]RCA [15:0]填充位 R1 APP_CMD 告诉卡,下个命令是特定应用命令,而不是标准命令。

这里写图片描述

命令索引 类型 参数 应答 缩写 命令说明
ACMD41 bcr [31]保留位 [30]HCS(OCR30) [29:24]保留位 [23:0]VddVdd 电压(OCR[23:0]) R3 SD_SEND_OP_COND 发送卡的支持信息(HCS),并要求卡通过命令线返回OCR 寄存器内容。当卡收到SEND_IF_COND 时,HCS 是有效的。保留位设为0。CCS 位对应OCR[30]

这里写图片描述

  • 接下来SD卡初始化就是CMD2和CMD3,大致是和MMC卡流程是一样的。后面有一些命令SD和MMC还是不同的,比如switch的命令就不同,SD卡使用的是ACMD6来定义数据的宽度等等,而MMC是使用CMD8来switch。
    这里写图片描述
命令索引 类型 参数 应答 缩写 命令说明
ACMD6 ac [31:2]填充位 [1:0]总线宽度 R1 SET_BUS_WIDTH 定义数据总线的宽度(‘00’=1bit,‘10’=4bit)。接受的数据总线定义在SCR 寄存器中。

这里写图片描述

猜你喜欢

转载自blog.csdn.net/u011280717/article/details/79948297