求教SD卡初始化的问题
我现在在做SD卡的读写,我用的是2G的卡,但还是用的以前的资料。不知道现在2G以上的SD卡的协议规范跟2G以下的一样么?我用的是SPI模式,在写入cmd55+acmd41命令时,cmd55得到的响应是1,acmd得到的响应是9,我查了是通讯CRC错误,但是SPI模式是不检查CRC的啊,怎么又冒出CRC错误呢?再次发送时,cmd55的响应就变成5,非法命令了。是不是2G以上的协议不一样啊?求哪位帮帮忙,或者有SD读写的工程的发我一个。 路过帮顶我也在做这个 2G以上的得是FAT32的了把,貌似是有些不同 SD卡初始化的资料能共享吗?刚开始学习!谢谢,QQ644392162 //发卡初始化指令CMD55+ACMD41do
{
//先发CMD55,应返回0x01
r1 = SD_SendCommand_NoDeassert(CMD55, 0, 0);
if(r1 != 0x01)
{
return r1;
}
// (已经解决,初步判断是(0xC0+41)地址错误,应该用(0x40+41))
// 错 误!!!!!
// 参 数:0x40000000 ,返 回 :0xE0
// 参 数:0 ,返 回 :0xE1
// 在SPI模式下,参数为空,无校验;
// SD模式下,带有参数和CRC校验
// ACMD41,正确响应:0x00
r1 = SD_SendCommand(ACMD41, 0x40000000, 0x0); //(0xC0+41) ACMD41
retry++;
if(retry>200)
{
return r1;//超时则返回r1状态
}
}while(r1!=0x00)
我遇到过初始化的问题,就是把地址搞错了,你检查一下你的呢?
页:
[1]