OpenEdv-开源电子网

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

请教下原子哥SD卡 CMD55+ACMD41总是返回0x01的问题

[复制链接]

6

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2013-6-13
在线时间
3 小时
发表于 2014-1-1 23:23:10 | 显示全部楼层 |阅读模式
原子哥的代码是没问题的,但自己写的出现了问题
下面说下我出现的情况
就是按顺序启动SD卡
1、74个时钟周期
2、复位(CMD0)进入IDLE状态(返回0x01,正常)
3、卡类型识别CMD8命令(返回R7,检查了参数都正确)
4、出问题就在这点:CMD55+ACMD41组合中ACMD41返回值总是为0x01,死活都没返回0x00,但你的代码没问题

小弟愚钝,找不出是哪出的问题,原子哥,高抬贵手帮忙看下哪里有错吧

#define SD_CMD55 0x37
#define SD_CMD55_ARG 0x00
#define SD_CMD55_CRC 0x01
#define SD_CMD55_RESPONSE         0x01

#define SD_ACMD41     0x41
#define SD_ACMD41_ARG     0x40000000
#define SD_ACMD41_CRC     0x01

/*循环发送CMD55 + ACMD41,等待0x00*/
sdcardInfo sdcardInit(void)
{
uint16_t retryLoop;
uint8_t readByte;

retryLoop = 0xFFFF;
do{
/*CMD55*/
writeSdcardCMD( SD_CMD55, SD_CMD55_ARG, SD_CMD55_CRC);
/*ACMD41,回应R1*/
readByte = writeSdcardCMD( SD_ACMD41, SD_ACMD41_ARG, SD_ACMD41_CRC);
if( readByte == 0x00)
return SD_NORMAL;
}while(retryLoop--);
return SD_INIT_ERROR;
}



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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2014-1-2 00:28:30 | 显示全部楼层
你这个代码看上去没错啊。
估计问题出在这段代码之外的地方吧!
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

6

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2013-6-13
在线时间
3 小时
 楼主| 发表于 2014-1-2 09:32:17 | 显示全部楼层
回复【2楼】正点原子:

你这个代码看上去没错啊。
估计问题出在这段代码之外的地方吧!

---------------------------------
嗯,好的,我再检查一下吧,谢谢原子哥
回复 支持 反对

使用道具 举报

6

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2013-6-13
在线时间
3 小时
 楼主| 发表于 2014-1-3 22:28:46 | 显示全部楼层
哈哈,不好意思,昨天检查了一下,发现是参数写错了
#define SD_ACMD41 0x41应该是
#define SD_ACMD41 41
所以说写程序要仔细点,是小弟太大意了
回复 支持 反对

使用道具 举报

24

主题

63

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2013-12-12
在线时间
19 小时
发表于 2014-1-16 14:02:40 | 显示全部楼层
回复【4楼】w277277w:
---------------------------------
不会吧?原子的例程里都是这么写的:

#define CMD0    0       //?¨????
#define CMD1    1
#define CMD8    8       //?ü??8 ??SEND_IF_COND
#define CMD9    9       //?ü??9 ????CSD????
#define CMD10   10      //?ü??10????CID????
#define CMD12   12      //?ü??12??????????????
#define CMD16   16      //?ü??16???è??SectorSize ??·???0x00
#define CMD17   17      //?ü??17????sector
#define CMD18   18      //?ü??18????Multi sector
#define CMD23   23      //?ü??23???è???àsector?????°?¤??????N??block
#define CMD24   24      //?ü??24????sector
#define CMD25   25      //?ü??25????Multi sector
#define CMD41   41      //?ü??41????·???0x00
#define CMD55   55      //?ü??55????·???0x01
#define CMD58   58      //?ü??58????OCR????
#define CMD59   59      //?ü??59??????/????CRC????·???0x00
回复 支持 反对

使用道具 举报

24

主题

63

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2013-12-12
在线时间
19 小时
发表于 2014-1-16 15:51:55 | 显示全部楼层
回复【楼主位】w277277w:
---------------------------------
我也遇到同样的问题,发出CMD41,返回一直是FF,崩溃了,一直找不到原因;
但肯定不是#define SD_ACMD41 0x41   的原因。。。
               #define SD_ACMD41 41
回复 支持 反对

使用道具 举报

4

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
305
金钱
305
注册时间
2016-12-7
在线时间
13 小时
发表于 2016-12-10 21:28:13 | 显示全部楼层
我也碰到ff的问题了,怎么解决啊
回复 支持 反对

使用道具 举报

18

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2013-10-31
在线时间
6 小时
发表于 2017-3-1 11:40:42 | 显示全部楼层
tmalgn 发表于 2016-12-10 21:28
我也碰到ff的问题了,怎么解决啊

兄弟,那个返回0xff的问题你解决了吗,我现在也是遇到这个问题。求教啊!!
回复 支持 反对

使用道具 举报

18

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2013-10-31
在线时间
6 小时
发表于 2017-3-1 11:41:47 | 显示全部楼层
jmldx 发表于 2014-1-16 15:51
回复【楼主位】w277277w:
---------------------------------
我也遇到同样的问题,发出CMD41,返回一直是F ...

兄弟,你那个返回0XFF的问题是怎么解决的,我现在也遇到了,求教!
回复 支持 反对

使用道具 举报

10

主题

98

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
319
金钱
319
注册时间
2017-1-20
在线时间
51 小时
发表于 2017-7-25 14:36:38 | 显示全部楼层
请问楼主解决了么?ACMD41一直返回0x01;比较奇怪;
回复 支持 反对

使用道具 举报

6

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
168
金钱
168
注册时间
2012-11-8
在线时间
19 小时
发表于 2022-10-6 22:44:18 | 显示全部楼层
电压低了 会导致CMD41一直错误
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-26 01:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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