目录:
SD的基本寄存器和基础信息描述:

SCR 寄存器:
<该寄存器保存的SD的特殊性信息(例如支持的总线位宽,SD卡的版本),MMC卡没有此寄存器,获取该寄存器的数据需要从数据线读的>


CSD寄存器:
<SD的相对地址(SD卡已经保存在芯片内部) ,嵌入在SD卡内部>


OCR 寄存器:
<该寄存器保存着SD的可供电范围,并且区别是否为HC卡(根据返回的ORC回应第30位是否置1).>


CIA 参数描述:
<CIA (Card I/O Area)>


CID参数描述:
<SD卡的唯一ID号 也叫CID码>


CIS参数描述:
<标识号和长度加后续内容表示一个节点>


Card_Status寄存器
状态寄存器


SD卡的插入检测一般都是对应的中断触发脚,作为检测当前SD卡有没有被插入卡槽。

SD卡中的CMD命令子集:

CMD_0
当前指令位,进入空闲状态,该指令无灰度
CMD_1
读OCR寄存器,获取OCR寄存器里面的必要信息
CMD_2
发送CMD2,验证SD卡是否接入,长反馈(CID),广播获取卡的CID信息
CMD_3
发送CMD3,读取SD卡是否接入RCA (地址),短反馈 ,  广播获取SD卡所分配的相对地址
CMD_4
可选项:  SDIO不支持DSR
CMD_6
选择服务: 在第1部分v1.10中添加了部分强制服务
CMD_7
发送CMD7,使能SD卡,如果参数值为0 , 即使取消所有选中SD卡
根据获取指定的RCA,选中SD卡,如果在选中一个卡的状态下,又选中其他的卡,那么之前的卡会自动取消选中,
如果发送地址0,则表示取消选中全部卡
CMD_8
(CMD8): 发送CMD8指令过去,CRC校验值与发送的值相同,说明当前SD卡支持SD2.0协议。
CMD_9
发送CMD9,读取CSD寄存器获取卡的相关信息, 获取SD相关的存储信息,如块大小,容量等
CMD_10
发送CMD10 ,  读取CID信息
CMD_12
发送CMD12,强制停止所有传输. 停止多块传输操作
CMD_13
cmd13获取卡的状态,其实本质就是读 Card_Status 寄存器
CMD_16
设置SD卡的块大小,在CSD寄存器有对应的操作描述,
CMD17
设置SD卡按照单个区块进行操作, 使SD卡进入传输状态,读取单个块。这个命令需要附带对应的地址参数
也就是需要读取的那个地址,按照整块读取出来。
CMD18
设置SD卡按照多块进行操作 , 使SD卡进入传输状态,读取多个块,直到收到CMD12为止,当前操作
会一直按照地址顺序读下去,直到接收到停止命令。
CMD_24
使SD卡进入传输状态,写入单个块。
CMD_25
使SD卡进入传输状态,写入多个块
其实CMD24-25 和 CMD 17-18作为相对应的方向操作,一个进行读,一个进行写。都有对应的单块和多块分别。
CMD_27
写CSD寄存器/修改CSD寄存器里的数据,(不建议)
CMD_28
设置写保护块的地址
CMD_29
擦除写保护块的地址
CMD_32:
设置擦除块的起始地址,作为连续擦除机制使用
CMD_33
设置擦除块的终止地址,作为连续擦除机制使用
CMD_38
擦除所选择的块
CMD_55    ( 说明指令 )
特殊指令前命令,在发送ACMD类指令前,需要发送此命令

SD卡中的ACMD命令子集:
要注意一下ACMD和CMD之间的区别,ACMD是特殊命令,但是发送方法和SDICARG和SDICCON的
命令发送一样,但是每次发送ACMD命令之前,一定要发送一条CMD55说明命令,发送CMD55之后说明下一条命令属于特殊命令集ACMD。

ACMD_6
设置SD卡的总线位宽,这个需要读取SCR确定
ACMD_13
SD卡状态
ACMD_41
获取SD电压值,作为测试当前SD卡的支持的协议,所需的电压值是否正常。
ACMD_51
获取SD卡的SCR寄存器的值

下面SD卡状态为连续状态:

CMD55+ACMD51
SD卡发送CMD55+ACMD6配置为4bit数据传输模式(根据SCR读出来的值确定),MMC卡发送CMD6来设置位宽
CMD7 + CMD16
发送CMD7,使能SD卡,使其进入传输状态),接着发送CMD16设置块大小(根据前面读取的CSD信息确定)。
CMD17/CMD18
发送CMD17/CMD18,命令的参数需要根据初始化时所判断的卡类型填写,按字节或按块.
循环读取数据,
CMD32-CMD33
连续擦除对应连续地址块的内存

《会持续更新当前表–来源自网络整理》

SD-scard-对应CMD指令集讲解相关推荐

  1. S3C2440上MMC/SD卡驱动实例开发讲解(二)

    嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux中的每个步骤.一为总结经验,二希望能给想入门嵌入式Linux的朋友提供方便.如有错误之处,谢请指正. 共享资源,欢迎转载:http:/ ...

  2. 嵌入式linux sd卡读写,嵌入式Linux之我行——S3C2440上MMC/SD卡驱动实例开发讲解(二)...

    嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux中的每个步骤.一为总结经验,二希望能给想入门嵌入式Linux的朋友提供方便.如有错误之处,谢请指正. 一.开发环境 主  机:VMWa ...

  3. 超详细的CMD文件讲解

    以DSP28035为例 https://blog.csdn.net/qq_29545231/article/details/78175977

  4. SD初始化过程以及Cmd解析

    SD: 1条CMD线,所有的命令和回应都是通过这条线一位一位的传输.不同模式或不同版本下,命令有不同含义.(SD(SD[0],SD[3:0]),SPI)) 1条时钟线,时钟源是来自APH总线时钟 4条 ...

  5. 模拟SPI驱动SD卡

    使用新唐的SDIO例子修改为SDH1始终驱动不了SD卡,所以使用模拟的方式驱动SD卡 头文件: #ifndef __SD_H #define __SD_H#include "NuMicro. ...

  6. STM32+雷龙SD NAND(贴片SD卡)完成FATFS文件系统移植与测试

    一.前言 在STM32项目开发中,经常会用到存储芯片存储数据. 比如:关机时保存机器运行过程中的状态数据,上电再从存储芯片里读取数据恢复:在存储芯片里也会存放很多资源文件.比如,开机音乐,界面上的菜单 ...

  7. 基于STM32采用CS创世 SD NAND(贴片SD卡)完成FATFS文件系统移植与测试(中篇)

    3.2 SPI硬件时序方式 上面的3.1小节是采用SPI模拟时序驱动SD NAND,STM32本身集成有SPI硬件模块,可以直接利用STM32硬件SPI接口读写. 下面贴出底层的适配代码. 上面贴出的 ...

  8. S3C2440上MMC/SD卡驱动分析(二)

    下面的文章主要是转载的,先记录下自己的经验. MMC/SD驱动有两种模式:FIFO和DMA.在代码中两种方式都予以了实现,在make menuconfig时候,可以选择是使用fifo方式还是DMA方式 ...

  9. stm32 SD(SDSC)卡的学习SDIO 模式连接SD卡

    本次的SD卡连接使用的是SDIO模式与之前的SPI模式相对应,都是对stm32 使用SD卡的介绍也为了和后面的FATFS文件系统使用铺垫.就直接上源码,也有看不明白的抢先看上一节的stm32 SD(S ...

最新文章

  1. 软件项目管理0813:法律合规
  2. 剑指offer 最小的k个数
  3. 【HDU - 3172】Virtual Friends(带权并查集--权为集合元素个数)
  4. leetcode10:Regular Expression Matching
  5. 浅谈FTP服务的几个知识点
  6. 如何去除list中的重复元素
  7. 编程中的c语言32个英文代码,C语言图形编程代码(国外英文资料).doc
  8. 网络规划设计师水平考试备考资料(1.前言及目录)
  9. 数字功放芯片的工作原理以及应用领域
  10. [Linux用户空间编程-5]:用IPTable实现NAT功能
  11. 中药学(综合练习)题库【1】
  12. Jest测试框架入门之快照测试(附踩坑指南)
  13. ContentProvider 之 监听共享数据变化
  14. 用Python分析豆瓣,评分最低的演员原来是他
  15. java 拼图游戏_Java学员作品-拼图游戏
  16. 用Matlab搞了个小工具,以后给你女朋友的证件照换底色再也不用发愁了
  17. 数据库外键的作用,以及和主键的区别
  18. L3-007 天梯地图
  19. Typora 自定义快捷键
  20. 复变函数可视化以及代数基本定理

热门文章

  1. 推荐8款免费企业邮箱,让你的工作便捷起来
  2. 不平衡处理(数据层面)
  3. android 紫外线传感器,Arduino光线传感器-UV Sensor V1.0-ML8511紫外线传感器
  4. linux解压rar文件,linux下解压rar文件
  5. win10 小而美的软件推荐
  6. 一个30岁工控人的自白
  7. CSS 网格 Gird 布局
  8. LoRa、Sigfox和NB-IoT,在物联网时代,这三种无线传输技术,具有什么优势?
  9. android mixpanel可视化埋点框架解析
  10. c语言与程序设计曹计昌 答案,c语言与程序设计答案曹计昌