OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5099|回复: 3

SD卡读回的型号

[复制链接]

17

主题

470

帖子

1

精华

高级会员

Rank: 4

积分
718
金钱
718
注册时间
2013-11-23
在线时间
0 小时
发表于 2014-1-26 21:52:04 | 显示全部楼层 |阅读模式
我的SD卡是8G容量,初始化虽然通过了,读写也正常,为什么初始化读OCR寄存器判断的结果SD_Type是SD_TYPE_V2型,不是应该是SD_TYPE_V2HC型( 大容量卡 )吗?

下面是SD卡的初始化函数


//返回0:成功;1:失败
//只支持2.0协议的SD卡初始化
u8 SD_Init(void)
{
u8 r1=0,i=0;
u8 buf[4];
SD_Type=SD_TYPE_ERR;//初始化默认无卡型
SD_SPI_Init();
SD_Select();//片选
SD_SPI_SetLowSpeed();//低速模式进行初始化
for(i=0;i<10;i++)SPI_ReadWriteByte(0xff);//上电延时80个时钟(>74个CLK)
r1=SD_SendCmd(CMD0,0,0x95);//进入复位状态(SD切换为SPI_Mode)
if(r1==0)//命令发送成功
{
  if(SD_SendCmd(CMD8,0x1AA,0x87)==0)//判断SD2.0协议
  {
for(i=0;i<4;i++)buf=SPI_ReadWriteByte(0xff);
if((buf[2]==0x01)&&(buf[3]==0xAA))//电压满足2.7-3.6V
         {
  r1=SD_SendCmd(CMD55,0,0x01);
if(r1==0)
r1=SD_SendCmd(CMD41,0x40000000,0x01);
if(r1==0)
{
 r1=SD_SendCmd(CMD58,0,0x01);//读OCR寄存器判卡型
 if(r1==0)
 {
  for(i=0;i<4;i++)buf=SPI_ReadWriteByte(0xff);
  if(buf[0]&0x40)SD_Type=SD_TYPE_V2HC;//bit30为1则大容量卡
  else SD_Type=SD_TYPE_V2;//否则小容量卡
 }
   }
}
  }
}
SD_DisSelect();
SD_SPI_SetHighSpeed();
if(SD_Type)return 0;
return 1;
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

51

主题

1455

帖子

3

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2613
金钱
2613
注册时间
2011-1-25
在线时间
176 小时
发表于 2014-1-27 12:18:16 | 显示全部楼层
你放下东西确定是不是有8G容量。
一直努力就很好。
回复 支持 反对

使用道具 举报

17

主题

470

帖子

1

精华

高级会员

Rank: 4

积分
718
金钱
718
注册时间
2013-11-23
在线时间
0 小时
 楼主| 发表于 2014-1-27 16:32:22 | 显示全部楼层
回复【2楼】qq942266575:
--------------------------------
我确定。。还获取了CSD的信息,计算了容量7638MB。不过我的不是Mini SD,是手机里的Micro SD加了个标准SD的卡套,也可以初始化,是不是这个原因导致读回的类型不对。。
回复 支持 反对

使用道具 举报

17

主题

470

帖子

1

精华

高级会员

Rank: 4

积分
718
金钱
718
注册时间
2013-11-23
在线时间
0 小时
 楼主| 发表于 2014-1-27 16:34:20 | 显示全部楼层
回复【2楼】qq942266575:
---------------------------------
而且我今天用这个卡做FATFS移植出问题了,用的原子的例程也出错,死在检测FATFS上,SD检测倒没问题,读写数据也正常。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-9 19:10

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表