TF卡为金士顿8G卡 SDHC。 使用STM32F103VCT6,SPI3驱动方式。CMD0和CMD8可以正常响应,接着发送CMD55,ACMD41,返回值均为0x01,如果循环发送,第二次CMD55没有应答,程序判断为0xFF。一直卡在这个地方.... 代码如下: retry = 0; do { r1 = SD_SendCommand(CMD55, 0, 0); if(r1!=0x01) { //第二次发送CDM55时,返回,debug发现r1为0xFF. return r1; } r1 = SD_SendCommand(ACMD41, 0x40000000, 0); retry++; if(retry>200) return r1; }while((r1)!=0); 示波器看波形,第二次CMD55指令正常发出,CLK也正常。但没有应答数据。 有没有朋友遇到这种情况,请帮忙分析下,谢谢!!! |
评分
查看全部评分
感谢回复。
都查过了,换了张ADATA的卡,可以了。但原因还是不明。
感谢回复。
都查过了,换了张ADATA的卡,可以了。但原因还是不明。
我想不是每种SD卡都支持SPI模式,或者说有些SD卡控制器在SPI支持方面是有重大缺陷的,因为SD卡绝大部分情况下是使用SDIO接口的,很少有人使用SPI,嵌入式系统用的SD卡数量和消费电子用的SD卡数量不是一个数量级的呢,所以在SPI接口上的投入能省则省吧。
评分
查看全部评分
感觉不一定是不支持SPI,如果SPI的问题,复位和查询卡类型的指令,也不会响应吧?
可能是卡的指令由精简,对某些指令不支持?