打印
[STM32F1]

SDIO读取SD卡碰到的一个问题, 求解答

[复制链接]
636|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
starv|  楼主 | 2019-12-4 18:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
IO, SD卡, rc, ST, AN
背景: 最近在学习STM32内部的SDIO接口来读写SD卡, 卡用的是大容量16GB的HCSD卡, 主控为STM32F103RC;采用官方的SDIO读写例程为基础进行测试修改, 现在已经可以把卡识别并将卡带入到数据传输状态(Transfer Mode);
碰到的问题:
①在卡已经进入到Transfer State状态的情况下, 依照SD卡的技术说明, 想通过发送CMD7(携带卡的RCA地址) 让卡返回到StandBy状态; 但是发送CMD7卡却无响应, 用示波器查看CMD线上确实无响应; 但此时发送CMD13(携带同样的RCA地址为参数) 却能得到卡的R1响应, 响应的数据为CSR寄存器内容: 0x0000 0900;
想问下为何卡已在Transfer State 状态下发CMD7命令却无响应;

②在卡初始化过程中, 每次初始化过程得到卡的RCA地址都为43690 (Hex: 0xAAAA); 想问下此RCA地址对于一个SD卡来说是固定的吗? 即是否每次初始化过程中发送CMD3 都会得相同的RCA地址;?

③像CMD7等响应为R1b的命令,它的响应和R1响应有何不同呢, 网上搜索是R1b说有一个忙碌状态位要检测, 想问下这个忙碌状态位是存在于什么地方, 具体做怎样的检测;

以上, 谢谢!
谢谢, 望解答

使用特权

评论回复
沙发
starv|  楼主 | 2019-12-5 11:13 | 只看该作者
相关测试更新:
问题②的测试情况: 当使用CMD2, CMD3将卡从 卡识别模式 带入到 卡数据传输模式的 Standby State后, 此时卡上报的RCA为 43690( 0xAA AA); 如果此时再次发送CMD3命令的话, 则卡会上报新的RCA地址为 43691; 再次发则依次更新为43692, 43693.. 等;  在卡第一次进入到Standby State时, 发送CMD7并携带卡的RCA地址为参数的命令, 可以得到卡对此命令的响应, 表明卡已进入到Transfer State, 但是此时若再次发送CMD7命令, 按照卡的状态变换图, 卡应该要退出Transfer State状态, 回到StandBy State状态才对, 可是实际的测试情况为,此时再次发CMD7, 卡对此命令无响应; 不知为何, 望解答;

使用特权

评论回复
板凳
funangy| | 2020-5-20 17:41 | 只看该作者
请问楼主问题解决了吗,我也遇到了相同的问题,调试的时候在TRAN状态时发送CMD7无法使SD卡返回stby状态

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

41

帖子

1

粉丝