




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
注:本内容为复制博客/s/blog_4f09c0b50101636h.htmlSDHC之初始化 CMD命令详解(SPI 模式)(2012-07-14 11:00:19)转 载 标签:sdhcv2.0cmd初始化crc分类: 硬件SD卡驱动初始化看了好久,还是糊里糊涂,一直不知道这个 CMD8到底怎么回事,参数,返回怎么弄的。以下截图均来字 SD V2.00协议物理层SD卡版本:SD V1.X(即 SD标准卡)最大容量2GBSD V2.0 2.0版本的标准卡,最多2GBSD V2.0HC 2.0高容量卡,最多32GBCMD8是在 SD V2.0才出有的,以前 V1.1的 SD卡不支持,所以可以用来在初始化时识别 SD卡版本从这可以看出,复位 CMD0进入 IDLE后,SD 卡只响应 CMD8,ACMD41(当然是先发送 CMD55也支持) ,CMD58,CMD59,这也是我们在程序初始化常看到的 CMD,其它 CMD在 IDLE下无效。由此图可见,与 SDIO操作模式不同,SPI 模式,开始要先用低速初始化,初始化结束后用高速(最大见卡上标号,不能超过速度等级)u8 SD_Init(void)。 。 。SPIx_SetSpeed(SPI_SPEED_256);/设置到低速模式。 。 。SPIx_SetSpeed(SPI_SPEED_4); /设置 SPI为高速模式。 。 。CMD命令哪里需要 CRC校验,为甚有的地方校验就0X00就行了,下图可解释该图的大概翻译意思是:SPI 模式默认是关闭 CRC的。发送复位命令 CMD0时是出于 SDIO模式的,所以 CMD0需要校验码0X95进入 SPI模式后,CRC 是否忽略取决于是否发出了 CMD59在发送 ACMD41之前(不包括 CMD55)要校验CMD8必须要 CRC校验现在你该知道为什么在程序中初始化时,有的比如 CMD0 crc=0X95;有的就不需要校验比如CMD58的 CRC=0x0下图是初始化流程CMD8:以下3个图为 CMD8识别卡类型CMD8的响应为 R7图中 Echo Back表示你对应为发的是什么,我就返回什么,下面程序中解释.r1=SD_SendCommand(8, 0x1aa, 0x87);/0x1aa就是 CMD8参数,对照表可知:其中1就是VHS,aa 就是 Pattern/响应一个5个字节 包括5个部分这就是这就是参数中中 fa中 xx R1-Ver-Reserved-VCA-Patternif(r1=0x01)/CMD8返回第一字节是 R1,R1判断是否为 V2.0buff0 = SPIx_ReadWriteByte(0xFF); /should be 0x00对应 Ver=0buff1 = SPIx_ReadWriteByte(0xFF); /should be 0x00对应 Reserved=0buff2 = SPIx_ReadWriteByte(0xFF); /should be 0x01对应 VCA在正确响应时就是 Echo Back(就是 返回参数中的 VHS)buff3 = SPIx_ReadWriteByte(0xFF); /should be 0xAA对应 Pattern返回参数中的 Pattern。 。 。CMD55+ACMD41:CMD55:表示下一条是应用指令即 ACMDACMD41:发送卡容量支持信息,并且激活初始化CMD55返回 R1=0x01;ACMD41初始化未完成时返回 R1=0x01;此处在正常返回且初始化没有完成时(R1的 bit0为 IDLE位处于)始终 R1=0x01,循环这么操作直到 ACMD41的响应R1=0x00,初始化完成。下面就可以开始读写 SD卡了,支持所有指令(记得初始化状态时只有哪几个有效)CMD58:在 bit31=1时(完成 power up) ,CCS 才有效,CCS=1,支持大容量 V2.0 SDHC,否则 V2.0标准 SD.r1 = SD_SendCommand_NoDeassert(CMD58, 0, 0);if(r1!=0x00)/发送 CMD58时已经脱离初始化,进入正常工作了,R1的 bit0已经不是 IDLE了,bit0=0SD_CS=1;/释放 SD片选信号return r1; /如果命令没有返回正确应答,直接退出,返回应答 /读 OCR指令发出后,紧接着是4字节的 OCR信息buff0 = SPIx_ReadWriteByte(0xFF);buff1 = SPIx_ReadWriteByte(0xFF); buff2 = SPIx_ReadWriteByte(0xFF);buff3 = SPIx_ReadWriteByte(0xFF); /OCR接收完成,片选置高SD_CS=1;SPIx_ReadWriteByte(0xFF); /检查接收到的 OCR中的 bit30位(CCS) ,确定其为 SD2.0还是 SDHC/如果 CCS=1:SDHC CCS=0:SD2.0if(buff0 /检查 CCS else SD_Type = SD_TYPE_V2; /-鉴别 SD2.0卡版本结束- 完整 SD卡初始化函数如下:测试对象 SDHC 4G 测试通过/初始化 SD卡/返回值:0,正常./其他,不正常.u8 SD_Initialize(void)u8 r1; / 存放 SD卡的返回值u16 retry; / 用来进行超时计数u8 buf4; u16 i;SD_SPI_Init(); /初始化 IOSD_SPI_SpeedLow(); /设置到低速
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 郑州亚欧交通职业学院《文化地理学》2023-2024学年第二学期期末试卷
- 浙江中医药大学滨江学院《应用文体翻译》2023-2024学年第二学期期末试卷
- 2025至2031年中国摆动导缆架行业投资前景及策略咨询研究报告
- 中南林业科技大学《阅读教学中的文本解读》2023-2024学年第二学期期末试卷
- 2025至2031年中国女装棉拉架低腰内裤行业投资前景及策略咨询研究报告
- 2025至2031年中国冷拉模具行业投资前景及策略咨询研究报告
- 06【初中】【带班育人方略】依托Z型发展模式育“三感”攀登者
- 2025至2030年中国钩型拉紧把手数据监测研究报告
- 照明配电改造施工方案
- 2025至2030年中国纸机托辊数据监测研究报告
- 1000m3液化石油气球罐设计课程设计
- GB/T 9061-2006金属切削机床通用技术条件
- GB/T 7554-1987电报用五单位数字保护码
- GB/T 32788.5-2016预浸料性能试验方法第5部分:树脂含量的测定
- GB/T 19447-2013热交换器用铜及铜合金无缝翅片管
- 医院患者压力性损伤情况登记表
- GA/T 959-2011机动车区间测速技术规范
- 圆锥曲线中非对称问题的处理课件
- 《中国少先队歌》歌词带拼音
- 垃圾分类科普课件
- 精益六西格玛绿带课件
评论
0/150
提交评论