OpenEdv-开源电子网

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

关于SD卡的初始化,CMD1和CMD55+CMD41

[复制链接]

2

主题

9

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2012-11-29
在线时间
3 小时
发表于 2013-3-27 11:14:18 | 显示全部楼层 |阅读模式
最近在整SD卡,按照原子的程序,先发CMD0,再发CMD8,然后发CMD55+CMD41,总是返回0X05,不能返回0,可是发CMD8后,再发CMD1,经过3-4次,就返回0了,可是CMD1是MMC协议里的啊,我用的是Micro SD,求解决啊
SD.jpg
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-3-27 11:18:32 | 显示全部楼层
回复【楼主位】19504643:
---------------------------------
说明你的卡就是MMC卡。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2012-11-29
在线时间
3 小时
 楼主| 发表于 2013-3-27 11:22:44 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
可是发送CMD8这句if(SD_SendCmd(CMD8,0x1AA,0x87)==1)//SD V2.0
可以得到正确的回复啊,就不会进入是否为MMC卡的判断了else//SD V1.x/ MMC V3
也就是说,不能初始化
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-3-27 11:37:29 | 显示全部楼层
那你的是奇葩卡了,呵呵。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2012-11-29
在线时间
3 小时
 楼主| 发表于 2013-3-27 11:39:43 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
不是的吧,试了几个2G的卡,都是这样,而且阿莫上也有这样的问题
回复 支持 反对

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2012-11-29
在线时间
3 小时
 楼主| 发表于 2013-3-27 12:57:26 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
有没有解决方法啊,原子哥
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-3-27 13:43:42 | 显示全部楼层
我也遇到TF卡,识别率比较低。
大卡则一般都可以识别。
换SDIO则没发现不能识别的卡。
不知道是不是卡接口做了裁剪,反正MMC卡,我在SPI模式是没成功过。手上有2种mmc卡,SPI都不支持,但是SDIO可以很好的支持。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

14

主题

66

帖子

0

精华

初级会员

Rank: 2

积分
159
金钱
159
注册时间
2012-9-27
在线时间
4 小时
发表于 2013-3-27 13:51:56 | 显示全部楼层
可以尝试一下
回复 支持 反对

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2012-11-29
在线时间
3 小时
 楼主| 发表于 2013-3-27 13:55:35 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
SD_NSS_H;
for(i=0;i<10;i++)
SPI2_SendByte(0XFF);//·???×???74??????
SD_NSS_L;
delay_us(10);
while((response!=0X01))
{
response=SD_SendCmd(CMD0,0,0x95);//????IDLE×???
}
SD_NSS_H;SPI2_SendByte(0XFF);SD_NSS_L;
if(response==0X01)
{
response=SD_SendCmd(CMD8,0x1AA,0x87);
if(response==1)//SD V2.0
{
for(i=0;i<4;i++)buf=SPI2_SendByte(0XFF); //Get trailing return value of R7 resp
if(buf[2]==0X01&&buf[3]==0XAA)//?¨??·??§??2.7~3.6V
{
retry=0XFFFF;
do
{
// response=SD_SendCmd(1,0,0);
r1=SD_SendCmd(CMD55,0,0X01); //·???CMD55
response=SD_SendCmd(CMD41,0x40000000,0X01);//·???CMD41
LCDShow_Hex(0,0,r1,Red,Blue);
LCDShow_Hex(0,16,response,Red,Blue);
}while(response&&(retry--));
if(retry&&SD_SendCmd(CMD58,0,0X01)==0)//??±?SD2.0?¨°?±?????
按照这个程序,我只能走到这里,等retry--走到0后,就直接跳出了SD_init();
下面的就走不过去了。。。 if(retry&&SD_SendCmd(CMD58,0,0X01)==0)//??±?SD2.0?¨°?±?????
{
for(i=0;i<4;i++)buf=SPI2_SendByte(0XFF);//????OCR??
if(buf[0]&0x40)SD_Type=SD_TYPE_V2HC;    //?ì?éCCS
else SD_Type=SD_TYPE_V2;   
}
}
}
else//SD V1.x/ MMC V3
{
SD_SendCmd(CMD55,0,0X01); //·???CMD55
response=SD_SendCmd(CMD41,0,0X01); //·???CMD41
if(response<=1)
{
SD_Type=SD_TYPE_V1;
retry=0XFFFE;
do //????????IDLE????
{
SD_SendCmd(CMD55,0,0X01); //·???CMD55
response=SD_SendCmd(CMD41,0,0X01);//·???CMD41
}while(response&&retry--);
}
else
{
SD_Type=SD_TYPE_MMC;//MMC V3
retry=0XFFFE;
do //????????IDLE????
{     
response=SD_SendCmd(CMD1,0,0X01);//·???CMD1
}while(response&&retry--);  
}
if(retry==0||SD_SendCmd(CMD16,512,0X01)!=0)SD_Type=SD_TYPE_ERR;//?í?ó???¨
}
}
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-3-27 21:02:31 | 显示全部楼层
回复【9楼】19504643:
---------------------------------
你这MMC卡可以么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2014-9-13
在线时间
11 小时
发表于 2014-10-24 19:24:31 | 显示全部楼层
回复【10楼】正点原子:
---------------------------------
我的明明是SDHC卡啊,2.0协议版本,CMD55+CMD41后一直返回0x05,怎么办?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-10-24 22:59:04 | 显示全部楼层
回复【11楼】听海语:
---------------------------------
我也没办法哦。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

12

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
184
金钱
184
注册时间
2015-3-23
在线时间
27 小时
发表于 2015-5-26 12:03:41 | 显示全部楼层
不知道楼主的问题,解决了么,我最近也在调spi的sd卡,也遇到了楼主同样的问题
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-22 00:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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