S3C2440 读写4G SD卡

leofly813 2013-05-20 12:54:16
硬件: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运行下去的话,后面的读写都不对。
请给懂的大牛帮忙。
...全文
105 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧