打印

有谁知道C8051F410的SPI最大能接多少容量的sd卡?

[复制链接]
5529|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pegion1001|  楼主 | 2010-8-17 21:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
lyjian| | 2010-8-17 22:02 | 只看该作者
随你便

使用特权

评论回复
板凳
古道热肠| | 2010-8-17 23:12 | 只看该作者
容量与SPI总线无关,2G是个分水岭,2G以上是SD2.0协议,与2G以下的卡驱动不兼容。很多老设备(俺家的佳能A530相机就是一例)用不了2G以上的卡,也就是这个原因。

使用特权

评论回复
地板
pegion1001|  楼主 | 2010-8-18 10:56 | 只看该作者
今天试了一下,1G的sd卡,在发CMD0后发CMD1,返回正常;32G的sd卡在发CMD0后发CMD1,始终返回0x05。

另:在网上看有说要发CMD55+ACMD41的,可我找不到CMD55和ACMD41的具体命令代码是多少呀?好像没人说这个,sd的协议里也没找到呀。
CMD55 = 0x40 + 0x37 = 0x77?
ACMD41=?

使用特权

评论回复
5
pegion1001|  楼主 | 2010-8-18 16:53 | 只看该作者
嗯,没有人告诉我了么!!!!

使用特权

评论回复
6
pegion1001|  楼主 | 2010-8-20 21:14 | 只看该作者
谢谢古道的提醒!!

看了2.0的协议,在网上查了sdhc的初始化方法,到目前已经把csd读出来了,下一步该弄读写了。

使用特权

评论回复
7
pegion1001|  楼主 | 2010-8-24 11:38 | 只看该作者
弄了几天读了,可是发送cmd17读到的都是0呀,
cmd17[]= {0x51,0x00,0x00,0x00,0x00,0xFF},返回0了,
也能等到0xFE,可再接下来的就全部都是0了,没有读到0扇区的数据呀

使用特权

评论回复
8
jinyun1984| | 2011-6-13 17:24 | 只看该作者
楼主现在搞定了没有啊??我现在通过CMD17发完命令,等到0xfe之后,接下来也都是零,也是没有读到扇区的数据。如果楼主搞定了,能不能指导下。。多谢。。

使用特权

评论回复
9
huangqi412| | 2011-6-14 10:05 | 只看该作者
主要是协议。。。 跟SPI没啥关系。

使用特权

评论回复
10
xwj| | 2011-6-14 10:43 | 只看该作者
是的,容量之和协议、你的软件有关,和SPI无关的。

SD卡2G及以下是按字节寻址的,更大的是SD2.0协议,但还要读取OCR数据,判断是SD2.0还是SD2.0HC卡,只有SD2.0HC卡才是按扇区寻址的,所以卡的初始化时先要读取卡的类型,这点要特别注意。

使用特权

评论回复
11
xwj| | 2011-6-14 10:48 | 只看该作者
本帖最后由 xwj 于 2011-6-14 10:51 编辑

至于指令CMD55+ACMD41,目的是通过发这个来判断卡是SD卡还是MMC卡,
如果有应答,说明是SD卡,且初始化完成;没有回应,说明是MMC卡,需要额外进**相应初始化

CMD55和ACMD41的具体命令代码就是十进制41和55,同时CMD55+ACMD41指的是分别发送CMD55指令接着ACMD41,而不是发送他们的和,不要想岔了哦

#define ACMD41  41      //命令41,应返回0x00
#define CMD55   55      //命令55,应返回0x01

使用特权

评论回复
12
t.jm| | 2011-6-14 10:54 | 只看该作者
是的,容量之和协议、你的软件有关,和SPI无关的。

SD卡2G及以下是按字节寻址的,更大的是SD2.0协议,但还要读取OCR数据,判断是SD2.0还是SD2.0HC卡,只有SD2.0HC卡才是按扇区寻址的,所以卡的初始化时先要读取卡的 ...
xwj 发表于 2011-6-14 10:43

这个好像SD2.0卡也是按扇区寻址的吧?SD1.X才是字节寻址吧。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

67

主题

168

帖子

0

粉丝