S3C2440 读写4G SD卡
硬件:S3C2440, Sandisk 4G SD
软件:Keil
我在检测SD卡类型的时候总出错。代码如下:
for(i=0;i<50;i++)
{
//-- 检测是否为SDHC
CMD55(0); // Make ACMD
rSDICARG = 0xc0ff8000; //ACMD41(SD OCR:2.7V~3.6V,HCS=1)
rSDICCON = (0x1<<9)|(0x1<<8)|0x69;//sht_resp, wait_resp, start, ACMD41
//-- Check end of ACMD41
if( Chk_CMDend(41, 1) && (rSDIRSP0==0xc0ff8000) )
{
Uart_Printf("SDHC Card...\n");
rSDICSTA = 0xa00; // Clear cmd_end(with rsp)
return 1; // Success
}
//-- 检测是否为SD1.0
CMD55(0); // Make ACMD
rSDICARG = 0x80ff8000; //ACMD41(SD OCR:2.7V~3.6V,HCS=0)
rSDICCON = (0x1<<9) | (0x1<<8) | 0x69;//sht_resp, wait_resp, start, ACMD41
//-- Check end of ACMD41
if( Chk_CMDend(41, 1) && (rSDIRSP0==0x80ff8000) )
{
Uart_Printf("SD1.0 Card...\n",rSDIRSP0);
rSDICSTA = 0xa00; // Clear cmd_end(with rsp)
return 2; // Success
}
}
每次检测出来的结果都是SD1.0(4G的SD卡应该是SDHC)..而且按照SD1.0运行下去的话,后面的读写都不对。
请给懂的大牛帮忙。