背景: 最近在学习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说有一个忙碌状态位要检测, 想问下这个忙碌状态位是存在于什么地方, 具体做怎样的检测;
以上, 谢谢!
谢谢, 望解答 |