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

SPI操作SD卡,CMD0无响应

[复制链接]
QianFan 提问时间:2015-3-28 15:31 /
使用STM32的SPI模式0操作SD卡,但是发送CMD0没有响应,一直回应0XFF。有人遇到过这种情况吗?

操作过程:

1. 设置SPI时钟分频256.
2.CS引脚置1.
3.发送10个0xFF。

4.CS引脚拉低。
5.发送0X40,  0X00,0X00,0X00,0X00,  0X95
6.读取MISO引脚数值,发现一直是0XFF。
7.CS置1.


收藏 评论13 发布时间:2015-3-28 15:31

举报

13个回答
QianFan 回答时间:2015-3-28 17:06:31
本帖最后由 QianFan 于 2015-3-28 17:07 编辑

折腾了一天,终于明白是怎么回事了。之前玩arduino的时候,买了一个网口的扩展版,上面自带一个SD小卡的卡槽,看板子上写着兼容MEGE,一开始没怎么注意,后来发现这些没注意的细节浪费了整整一下午的时间。


以为是时序的问题,但是用逻辑分析仪分析确实没有什么问题,但是CMD0一直没有应答。无心插柳,访问Arduino官网,看到了mege的引脚之后才恍然大悟。请看图。图是我从淘宝上扒的,把图片上商家的广告擦去了,有点难看,大家就将就吧。


131211.png
这一张是正面图,Arduino一般来说13,12,11是SPI的引脚,我想当然的以为SD卡也是使用了这三个引脚。当插入Nucleo之后也是使用13,12,11三个引脚来操作。万恶的bug正是从这里出来的。其实SD SPI的接口并不是这三个,而是下图那奇葩的地方。


下面这一张是背面图。
505152.png
图中圈出的地方是SD卡的接口部分,也是mege2560 SPI的默认引脚。当然,这个引脚在Nucleo上面是没有的。所以不管时序对还是不对,肯定是没有结果的。




虽然Nucleo兼容了Arduino的硬件接口,但是希望大家之后再为Nucleo挑选Arduino扩展版的时候注意一下,不要像我这样劳民伤财。


好了,不说了,我先去哭会。。。




nocoyou 回答时间:2015-3-28 19:22:44
................
wambob 回答时间:2015-3-28 20:05:52
哭吧,泪干了 ,还得继续
拼命三郎 回答时间:2015-3-28 21:51:35
顶顶顶顶顶顶顶顶顶大大大.jpg
zfz0122 回答时间:2015-3-29 10:42:24
学习了啊 smile.gif
QianFan 回答时间:2015-3-29 10:42:28
wambob 发表于 2015-3-28 20:05
哭吧,泪干了 ,还得继续

人生总是这么精彩。。。
MouseCat 回答时间:2015-3-30 08:49:25
贱人就是矫情
xieyixieyi81093 回答时间:2015-3-30 09:00:07
男人哭吧哭吧,不是罪。
chaplin1999-262 回答时间:2015-3-30 09:59:47
有时候就是大意了!
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版