你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

TF卡 初始化不成功

[复制链接]
没事逛荡 提问时间:2017-2-18 12:27 /
TF卡为金士顿8G卡 SDHC。
使用STM32F103VCT6,SPI3驱动方式。CMD0和CMD8可以正常响应,接着发送CMD55,ACMD41,返回值均为0x01,如果循环发送,第二次CMD55没有应答,程序判断为0xFF。一直卡在这个地方....
代码如下:
retry = 0;
do
{
        r1 = SD_SendCommand(CMD55, 0, 0);
        if(r1!=0x01)
        {
                //第二次发送CDM55时,返回,debug发现r1为0xFF.
                return r1;
        }                                       
        r1 = SD_SendCommand(ACMD41, 0x40000000, 0);
        retry++;
        if(retry>200)
                return r1;  
}while((r1)!=0);


示波器看波形,第二次CMD55指令正常发出,CLK也正常。但没有应答数据。

有没有朋友遇到这种情况,请帮忙分析下,谢谢!!!
收藏 1 评论7 发布时间:2017-2-18 12:27

举报

7个回答
creep 回答时间:2017-2-18 20:40:21
按照SD/TF卡的初始化套路,如果代码没有问题,那就检查下初始化时钟是不是太高,硬件电路接法是不是有问题,是不是卡的问题有没有换个卡试试。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

epochal 回答时间:2017-2-19 08:59:30
换个卡试试!
没事逛荡 回答时间:2017-2-19 13:30:08
creep 发表于 2017-2-18 20:40
按照SD/TF卡的初始化套路,如果代码没有问题,那就检查下初始化时钟是不是太高,硬件电路接法是不是有问题 ...

感谢回复。
都查过了,换了张ADATA的卡,可以了。但原因还是不明。
没事逛荡 回答时间:2017-2-19 13:30:31

感谢回复。
都查过了,换了张ADATA的卡,可以了。但原因还是不明。
zoomdy 回答时间:2017-2-19 21:33:04
没事逛荡 发表于 2017-2-19 13:30
感谢回复。
都查过了,换了张ADATA的卡,可以了。但原因还是不明。

我想不是每种SD卡都支持SPI模式,或者说有些SD卡控制器在SPI支持方面是有重大缺陷的,因为SD卡绝大部分情况下是使用SDIO接口的,很少有人使用SPI,嵌入式系统用的SD卡数量和消费电子用的SD卡数量不是一个数量级的呢,所以在SPI接口上的投入能省则省吧。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

没事逛荡 回答时间:2017-2-20 08:59:24
zoomdy 发表于 2017-2-19 21:33
我想不是每种SD卡都支持SPI模式,或者说有些SD卡控制器在SPI支持方面是有重大缺陷的,因为SD卡绝大部分情 ...

感觉不一定是不支持SPI,如果SPI的问题,复位和查询卡类型的指令,也不会响应吧?
可能是卡的指令由精简,对某些指令不支持?
huangyanga 回答时间:2017-7-15 17:07:45
万分感谢大神

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版