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

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版