EMMC/SD学习小记

原创 2018年04月15日 12:51:53

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 寄存器中。

这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011280717/article/details/79948297

关于EMMC和SD卡-设备驱动(1)

eMMC和SD卡都是将闪存控制器和NAND Flash封装在一起,只是接口不同,eMMC一般是BGA封装,焊接在PCB上,SD卡单独封装,使用SDIO接口通讯。 第一次写这方面的文章,也不怎么会写...
  • yazhouren
  • yazhouren
  • 2015-06-25 23:41:06
  • 5661

mmc,emmc,sd

MMC是一种通信协议,支持两种模式SPI和MMC eMMC是一种支持MMC协议的芯片 MMC/e •MMC communication is based on  an advanced 10-sign...
  • yazhouren
  • yazhouren
  • 2015-06-26 01:02:02
  • 3196

SD/eMMC驱动详解

声明:此原创非彼原创,资料来源于网络,只是经过加工整理罢了。如果引用了你的资料并没有说明出处,敬请原谅!仅供学习参考。 1. 总论  1.1 概念 MMC - MultiMedia ...
  • junzhang1122
  • junzhang1122
  • 2015-12-04 15:39:07
  • 2769

android usb mass storage EMMC转化为SD卡(三)

先转载一位博友的话 一种办法是 把内部flash mount为sdcard,然后把外部sd卡 mout到 /mnt/sdcard/下面的某个子目录 比如 /mnt/sdcard/external...
  • cqupt_chen
  • cqupt_chen
  • 2013-03-25 17:21:48
  • 1894

emmc/sd host层解析

在linux驱动相关知识整理一文中,我们说到总线、驱动、设备的关系。 在emmc/sd驱动总线简析一文中讲了emmc的总线,在 emmc/sd 区块层解析 emmc/sd 核心层解析 这两篇文章中...
  • dengziliang001
  • dengziliang001
  • 2016-07-28 17:58:25
  • 1323

MMC、SD等存储卡的区别总结

目前市面上较常见的存储卡有SD、MMC、CF等,在这些卡的种类下又分了许多,下面来总结一下。 可参考wiki:https://en.wikipedia.org/wiki/Memory_card 1、M...
  • l289123557
  • l289123557
  • 2016-04-23 22:46:50
  • 6222

emmc/sd驱动总线简析

在前面有一篇文章linux驱动相关知识整理中我们提到,总线是关联驱动和设备的枢纽,那么在分析EMMC驱动的时候,我们先来分析总线。 而通过前一篇文章emmc驱动代码预览可以知道在core文件夹下有bu...
  • dengziliang001
  • dengziliang001
  • 2016-07-26 18:10:12
  • 1068

SD卡、TF卡、MMC卡以及eMMC芯片的介绍

一、SD卡     1、简介         SD卡为Secure Digital Memory Card, 即安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备。它在MMC的基础上发展而来,增加...
  • silent123go
  • silent123go
  • 2016-09-23 21:25:01
  • 4068

beaglebone black 制作SD卡系统 烧写 eMMC

我的beaglebone black之前安装了ubuntu 14.04系统,在使用过程发现ubuntu系统下串口设备ttyS1~ttyS5都不能用,打开串口会显示input/output error,...
  • sunming0327
  • sunming0327
  • 2016-11-09 12:27:46
  • 2695

emmc/sd驱动代码预览

在前一篇文章linux驱动相关知识整理中我们提到
  • dengziliang001
  • dengziliang001
  • 2016-07-26 10:27:26
  • 953
收藏助手
不良信息举报
您举报文章:EMMC/SD学习小记
举报原因:
原因补充:

(最多只允许输入30个字)