OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5336|回复: 3

战舰板子上SPI模式操作SD卡,关于CMD12的R1b响应

[复制链接]

9

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
87
金钱
87
注册时间
2013-8-3
在线时间
2 小时
发表于 2014-10-30 01:29:34 | 显示全部楼层 |阅读模式
5金钱
我看网上资料时发现这段话,对应板子上的程序有点不理解

一些命令的执行时间比NCR长,它们使用应答R1B(1个字节)。R1B同R1类似(有些命令只需要0或非0反馈,就用R1B,比如停止传输、擦除等命令),即为R1跟在忙标志后(在内部执行命令时DO保持低电平)主控制器应等待命令执行完毕直到DO转为高电平(接收到0xFF)。每一个命令都有对应的响应长度,故发送命令函数要经过特殊的处

板子上关于CMD12的响应就是R1b,从程序上看,就是说先读一个字节,然后循环读,检测字节首位,一直等到首位为0,就认为当次读取的为响应值,时限内读不到则认为错误。

也就是说,在SD卡内部执行指令时,DO上的值应该是0xFF,直到内部执行完毕,返回响应值

问题来了,第一,资料里那段话 “即为R1跟在忙标志后”,这是什么意思?忙标志不是R1的0位吗,意思是要返回两个R1吗,第二个才是真R1吗?
第二个问题,“主控制器应等待命令执行完毕直到DO转为高电平(接收到0xFF)”这句话又怎么理解呢,是不是说,如果返回R1B,就需要先等待到0XFF,然后再等待响应值,是这个意思吗?
第三,这句话是单独指R1b还是R1也是这样?就是R1b之前一定有至少一个0XFF,还是R1和R1B之前都至少有一个0xFF

看了好多资料都没有提及到R1b的问题,越看越乱,求原子哥和各位高手们指点一二,感激不尽


还有一个小问题,SPI模式下除了CMD0需要CRC,其他指令不是都无所谓吗,我看板子上的程序好多CRC都是0x01,这个换成0xff没有关系吧

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
87
金钱
87
注册时间
2013-8-3
在线时间
2 小时
 楼主| 发表于 2014-10-30 10:09:12 | 显示全部楼层
自己顶一下,各位高人快出现吧
回复

使用道具 举报

9

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
87
金钱
87
注册时间
2013-8-3
在线时间
2 小时
 楼主| 发表于 2014-10-30 14:59:01 | 显示全部楼层
今天有查了下资料,说R1b是个带忙标志的响应,在SD内部指令完成前,SPI读取都是0,表示此时在忙,当返回非0标志时,说明指令完成,可以接受下个指令。
想了下与R1的区别,R1在响应前,读取的都是0xFF,在命令字与响应期间可能存在空闲状态,所以是0xFF;SD发出响应代表指令完成情况
对于R1b来说,在指令完成前,读取的都是0x00,当读取到非0时,代表指令完成,如果时限内未读到非0代表指令失败,是这个意思吗
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-10-30 23:32:05 | 显示全部楼层
这个建议你看下e文原版的手册,中文翻译,可能很多有误的地方。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-29 21:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表