OpenEdv-开源电子网

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

原子哥,你SD卡的容量是怎么计算来的???

[复制链接]

31

主题

269

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
450
金钱
450
注册时间
2012-5-18
在线时间
6 小时
发表于 2013-2-21 17:32:30 | 显示全部楼层 |阅读模式



CSD的128位最低位始终是1,设备容量是在第【73:62】这12位。然后就没看懂你是怎么处理的了,怎么算【73:62】这12位算出来也和你的不一样呀。
读出来csd[0..15]={0x40,0x0e,0x00,0x32,0x5b,0x59,0x00,0x00,0x1d,0x17,0x7f,x80,0x0a,0x40,0x00,0x8d}; 
            csize = csd[9] + ((u16)csd[8] << 8) + 1;   //这是第【73:62】位吗?
            Capacity = (u32)csize << 10;//得到扇区数
            LCD_ShowNum(164,150,sd_size>>11,5,16);//显示SD卡容量
原子哥帮我看看我是在哪里理解出错了。
谁来买我的火柴.....
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-2-21 18:53:36 | 显示全部楼层
这个我也是拿来主义,FATFS的作者提供这么个函数,移植过来,就可以了.
没深究.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

57

主题

195

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
446
金钱
446
注册时间
2013-2-20
在线时间
1 小时
发表于 2013-2-22 08:30:04 | 显示全部楼层
建议去看阿迪的SD卡视频,里面有讲SD卡的计算容量..........
创新超越梦想,拼搏创造奇迹....
回复 支持 反对

使用道具 举报

57

主题

195

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
446
金钱
446
注册时间
2013-2-20
在线时间
1 小时
发表于 2013-2-22 08:30:35 | 显示全部楼层
还有,原子兄,你是湖南的??
创新超越梦想,拼搏创造奇迹....
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-2-22 09:19:39 | 显示全部楼层
湖南的.
回复 支持 反对

使用道具 举报

31

主题

269

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
450
金钱
450
注册时间
2012-5-18
在线时间
6 小时
 楼主| 发表于 2013-2-22 10:21:42 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
湖南湘潭?
谁来买我的火柴.....
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-2-22 14:06:01 | 显示全部楼层
是的
回复 支持 反对

使用道具 举报

16

主题

69

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
212
金钱
212
注册时间
2013-3-17
在线时间
13 小时
发表于 2013-9-14 21:57:07 | 显示全部楼层
回复【楼主位】古月:
---------------------------------
你好,这个问题解决了吗?我现在十分困惑,能给小弟讲下吗?
回复 支持 反对

使用道具 举报

16

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
119
金钱
119
注册时间
2013-5-12
在线时间
0 小时
发表于 2013-9-15 15:08:35 | 显示全部楼层
我添加的注释,希望对你有帮助



回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-9-15 23:08:03 | 显示全部楼层
回复【9楼】50330102:
---------------------------------
谢谢分享
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

13

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
152
金钱
152
注册时间
2012-9-29
在线时间
16 小时
发表于 2013-11-27 17:35:35 | 显示全部楼层
回复【9楼】50330102:
---------------------------------
你好,请问SDHC的容量的计算公式是什么呀??谢谢~~
回复 支持 反对

使用道具 举报

31

主题

269

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
450
金钱
450
注册时间
2012-5-18
在线时间
6 小时
 楼主| 发表于 2013-11-27 20:21:26 | 显示全部楼层
回复【11楼】aacmeme:
---------------------------------
看看8楼,不知对你有无帮助。
谁来买我的火柴.....
回复 支持 反对

使用道具 举报

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2013-9-2
在线时间
4 小时
发表于 2015-1-30 09:29:37 | 显示全部楼层
由SD卡2.0协议我们知道 描述SD扇区个数公用 22bits,但最高字节的高两位reserved,低6位为0,故只用低16位,即:0000 0000 xxxx xxxx xxxx xxxx b

截取代码去下:
csize = csd[9] + ((u16)csd[8] << 8) + 1;//计算出实际有多少个扇区
Capacity = (u32)csize << 10;
在LCD显示的时候 LCD_ShowNum(164,170,sd_size>>11,5,16);

根据SD2.0协议 PDF文档中计算SD容量大小公式
memory capacity = (C_SIZE+1) * 512K byte

csize = csd[9] + ((u16)csd[8] << 8) + 1;//计算出实际有多少个扇区
Capacity = (u32)csize << 9;  //得到实际上有多少个KB字节
在LCD显示的时候 LCD_ShowNum(164,170,sd_size>>10,5,16);//得到多少MB个字节

其实,源代码和我更改后的代码功能是一样的,但是看我给出的代码 结合SD卡单靠手册就容易理解了!!!
捕获.JPG
捕获.JPG
回复 支持 反对

使用道具 举报

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2013-9-2
在线时间
4 小时
发表于 2015-1-30 09:41:12 | 显示全部楼层



我描述的不好,不好意思。
由SD卡2.0协议我们知道 描述SD扇区个数公用 22bits,共用3字节。但最高字节的高两位reserved,低6位为0(上图话红线已标注出来),故只用低16位,即:
0000 0000 xxxx xxxx xxxx xxxx b
回复 支持 反对

使用道具 举报

3

主题

13

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2013-8-4
在线时间
0 小时
发表于 2015-5-21 01:08:25 | 显示全部楼层
回复【10楼】正点原子:
---------------------------------
疑问,我想的跟12楼一样,Capacity = (u32)csize << 9;应该是左移9吧?问什么源码是10,求问原子哥
回复 支持 反对

使用道具 举报

3

主题

13

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2013-8-4
在线时间
0 小时
发表于 2015-5-21 15:10:02 | 显示全部楼层
回复【15楼】泽田纲:
---------------------------------
好吧,我看清楚了,<<10是扇区数,512字节/扇区,<<9是字节数
回复 支持 反对

使用道具 举报

2

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2014-2-18
在线时间
12 小时
发表于 2015-6-16 14:33:06 | 显示全部楼层
8G的micro卡,STM32F103,读取的容量不对,只有3776MB,为什么???
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-21 10:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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