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的问题,复位和查询卡类型的指令,也不会响应吧?
可能是卡的指令由精简,对某些指令不支持?
一周热门 更多>