1 发送CMD3(让SD卡发布RCA)
2 收到响应R6, CRC正确,没超时。
3 获取CMD INDEX,出错。
2、3之间加延时 while(--i > 0); i 初值5000 CMD INDEX获取正确,这是为什么呢。
分析:已收到响应,CRC也对,可CMD INDEX 是响应的bit45:40位,怎么非得加个延时才能正确读取呢?
读取CMD INDEX 调用 的是SDIO_GetCommandResponse()。
发送其他命令如CMD55时 也用到了上面的2、3步骤,但中间没加延时,一样OK呀。
下面是 SD卡协议中R6 响应的格式及其描述,注意到一句话it will be ‘0000 11’(together with bit 5 in the status bits it means = CMD3)
但是不太理解这句话,大伙帮帮忙分析分析我遇到的问题。
|