OpenEdv-开源电子网

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

STM32读SD卡速度实测……基于FATFS

[复制链接]

22

主题

74

帖子

3

精华

高级会员

Rank: 4

积分
646
金钱
646
注册时间
2012-9-9
在线时间
1 小时
发表于 2012-9-10 22:39:31 | 显示全部楼层 |阅读模式

闲来木事,测了一下STM32读取SD卡的速度,结果令人吃惊……才389KB/S,这也太慢了吧!赶紧优化。不知各位的能达到多少啊?


 

文件大小6492160字节,读取耗时16685和16680毫秒,计算下来也就390KB/S左右……杯具。
测试使用FATFS的API函数f_read();是不是这个原因?SD卡驱动已经优化了……

我很想知道到底最快能达到多少?各位拿出来晒晒吧!

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

64

主题

446

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1032
金钱
1032
注册时间
2017-7-26
在线时间
275 小时
发表于 2018-5-31 14:03:27 | 显示全部楼层
不至于吧,我以前试过直接读SD卡可以达到9M/s,通过FATFS至少也有4、5M/s。
回复 支持 1 反对 0

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165509
金钱
165509
注册时间
2010-12-1
在线时间
2116 小时
发表于 2012-9-10 23:29:09 | 显示全部楼层
回复【楼主位】柯南大侠:
---------------------------------
用SDIO,可以快很多.
读我没测试过,写我是测试过的,SPI最快,写速度是在190KB/s左右,还需要高速卡!
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2012-8-10
在线时间
0 小时
发表于 2012-9-28 09:37:41 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
我的测试读609k/s,
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2012-8-10
在线时间
0 小时
发表于 2012-9-28 09:38:47 | 显示全部楼层
大家都晒晒,感觉速度还是上不去,项目要求1M以上
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165509
金钱
165509
注册时间
2010-12-1
在线时间
2116 小时
发表于 2012-9-28 09:59:26 | 显示全部楼层
1M,肯定没戏...
换SDIO,试试吧.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
28
金钱
28
注册时间
2012-10-17
在线时间
0 小时
发表于 2012-10-17 09:36:24 | 显示全部楼层
楼主你好,请问你用的是SPI模式吗?优化以后能不能达到1mb/s?,如果改成SDIO模式能不能达到1mb/s?
回复 支持 反对

使用道具 举报

23

主题

81

帖子

0

精华

初级会员

Rank: 2

积分
193
金钱
193
注册时间
2012-10-11
在线时间
0 小时
发表于 2012-10-17 10:19:08 | 显示全部楼层
换成sdio,读的速度一般在600kb左右,有时会上M
回复 支持 反对

使用道具 举报

8

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2012-10-31
在线时间
0 小时
发表于 2012-10-31 17:04:19 | 显示全部楼层
LS是sdio 4bit模式吗
回复 支持 反对

使用道具 举报

2

主题

6

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2013-10-15
在线时间
6 小时
发表于 2013-10-15 15:28:42 | 显示全部楼层
加上FATFS用class 4的 读取:3.14
class 6的 读取:4.5MB/S
class 10的 读取:6.8MB/S

(4KB为一单元读取的)
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

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

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2014-4-17
在线时间
3 小时
发表于 2014-4-28 23:42:33 | 显示全部楼层
我用HS模式,读NANDFLASH,8M,写200K多一点,写慢主要是缓存不足写几个PAGE就要刷除一次
回复 支持 反对

使用道具 举报

233

主题

961

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1814
金钱
1814
注册时间
2011-10-9
在线时间
230 小时
发表于 2014-4-29 12:07:28 | 显示全部楼层
SPI 模式很慢的  换成SDIO会好很多
回复 支持 反对

使用道具 举报

3

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2014-10-11
在线时间
0 小时
发表于 2014-10-21 15:42:09 | 显示全部楼层
回复【12楼】simms01:
---------------------------------
你的速度是多少KB/s呢?
回复 支持 反对

使用道具 举报

13

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2015-1-26
在线时间
0 小时
发表于 2015-9-9 17:07:02 | 显示全部楼层
回复【9楼】lxl443:
---------------------------------
SDIO方式的,可以使用FATFS吗?
回复 支持 反对

使用道具 举报

2

主题

6

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2013-10-15
在线时间
6 小时
发表于 2015-9-15 00:00:39 | 显示全部楼层
回复【14楼】daliangcao:
---------------------------------
当然可以啊,必须可以
回复 支持 反对

使用道具 举报

20

主题

468

帖子

3

精华

金牌会员

Rank: 6Rank: 6

积分
1683
金钱
1683
注册时间
2014-2-25
在线时间
230 小时
发表于 2015-12-3 18:51:35 | 显示全部楼层
FATS用SDIO方式,速度已经上M了
回复 支持 反对

使用道具 举报

32

主题

223

帖子

0

精华

高级会员

Rank: 4

积分
695
金钱
695
注册时间
2015-9-23
在线时间
120 小时
发表于 2015-12-3 20:07:45 | 显示全部楼层
SDIO确实很快。。。。。。。。。。。。。。。。。。。。。。。
回复 支持 反对

使用道具 举报

48

主题

180

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2016-3-18
在线时间
88 小时
发表于 2016-3-24 21:32:25 | 显示全部楼层
请问你是怎么测的速度,我也想测一下
回复 支持 反对

使用道具 举报

48

主题

180

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2016-3-18
在线时间
88 小时
发表于 2016-3-24 21:34:20 | 显示全部楼层
simms01 发表于 2014-4-29 12:07
SPI 模式很慢的  换成SDIO会好很多

请问您是怎么测速的,能否告知一下,我也想测一下写入速度
回复 支持 反对

使用道具 举报

48

主题

180

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2016-3-18
在线时间
88 小时
发表于 2016-3-24 21:34:55 | 显示全部楼层
1201yuge 发表于 2015-12-3 18:51
FATS用SDIO方式,速度已经上M了

请问您是怎么测速的,能否告知一下,我也想测速,但一直不知道方法如何
回复 支持 反对

使用道具 举报

48

主题

180

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2016-3-18
在线时间
88 小时
发表于 2016-3-24 21:35:20 | 显示全部楼层
和谐年份 发表于 2015-12-3 20:07
SDIO确实很快。。。。。。。。。。。。。。。。。。。。。。。

请问能否告知一下测速的方法,我也想测速,但不知道如何测
回复 支持 反对

使用道具 举报

20

主题

468

帖子

3

精华

金牌会员

Rank: 6Rank: 6

积分
1683
金钱
1683
注册时间
2014-2-25
在线时间
230 小时
发表于 2016-4-4 11:15:39 | 显示全部楼层
mengheli 发表于 2016-3-24 21:34
请问您是怎么测速的,能否告知一下,我也想测速,但一直不知道方法如何

比较简单的测试方法就是,定义一个512个字节,或者1024字节的缓冲区,然后从SD卡里面读取数据出来,可以循环读多几次,也可以单次。在开始读之前先打开定时器,读完之后立刻关闭定时器,读取定时器计数器的值换算成具体时间就知道了。
回复 支持 反对

使用道具 举报

48

主题

180

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2016-3-18
在线时间
88 小时
发表于 2016-4-7 13:59:21 | 显示全部楼层
1201yuge 发表于 2016-4-4 11:15
比较简单的测试方法就是,定义一个512个字节,或者1024字节的缓冲区,然后从SD卡里面读取数据出来,可以 ...

好的,谢谢你
回复 支持 反对

使用道具 举报

buliangshui 该用户已被删除
发表于 2017-1-24 21:21:34 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2018-4-12
在线时间
2 小时
发表于 2018-5-30 15:27:27 | 显示全部楼层
九楼的朋友能否将您的测试程序发我邮箱一份吗?1845395137@qq.com谢谢!
回复 支持 反对

使用道具 举报

8

主题

29

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
236
金钱
236
注册时间
2015-1-22
在线时间
72 小时
发表于 2018-5-31 14:15:12 | 显示全部楼层
楼上,能否请教你一个问题,我用原子哥的例程,在使用 FATFS实验时,死在SD卡挂载处,单步仿真是,发现在SD_ReadBlock函数里,发现是因为接收错误起始位引起,哪里出现了问题?
回复 支持 反对

使用道具 举报

27

主题

44

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
307
金钱
307
注册时间
2016-12-31
在线时间
82 小时
发表于 2019-6-3 12:14:23 | 显示全部楼层
a3748622 发表于 2018-5-31 14:03
不至于吧,我以前试过直接读SD卡可以达到9M/s,通过FATFS至少也有4、5M/s。

您好,您用的stm32F4还是F1的芯片,速度这么快
回复 支持 反对

使用道具 举报

64

主题

446

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1032
金钱
1032
注册时间
2017-7-26
在线时间
275 小时
发表于 2019-6-3 13:52:13 | 显示全部楼层
huangjunxing 发表于 2019-6-3 12:14
您好,您用的stm32F4还是F1的芯片,速度这么快

F1,图片放在SD卡,然后读出来显示到屏幕上。480*272,通过Fatfs也有20帧。

底层有没有用好DMA 啊
回复 支持 反对

使用道具 举报

27

主题

44

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
307
金钱
307
注册时间
2016-12-31
在线时间
82 小时
发表于 2019-6-16 16:55:45 | 显示全部楼层
a3748622 发表于 2019-6-3 13:52
F1,图片放在SD卡,然后读出来显示到屏幕上。480*272,通过Fatfs也有20帧。

底层有没有用好DMA 啊

我用的是原子的例程测试的,用的是F407的板子,sdio+DMA的方法,是fatfs文件系统,卡是256M的,速度并不是很快
回复 支持 反对

使用道具 举报

8

主题

156

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1553
金钱
1553
注册时间
2016-11-21
在线时间
411 小时
发表于 2019-6-17 08:59:27 | 显示全部楼层
a3748622 发表于 2019-6-3 13:52
F1,图片放在SD卡,然后读出来显示到屏幕上。480*272,通过Fatfs也有20帧。

底层有没有用好DMA 啊

F1的spi最大也只有18Mbit/s也就是 2.25MB/s....
回复 支持 反对

使用道具 举报

64

主题

446

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1032
金钱
1032
注册时间
2017-7-26
在线时间
275 小时
发表于 2019-6-17 09:52:09 | 显示全部楼层
huangjunxing 发表于 2019-6-16 16:55
我用的是原子的例程测试的,用的是F407的板子,sdio+DMA的方法,是fatfs文件系统,卡是256M的,速度并不 ...

我用的是*火的底层
回复 支持 反对

使用道具 举报

64

主题

446

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1032
金钱
1032
注册时间
2017-7-26
在线时间
275 小时
发表于 2019-6-17 09:52:33 | 显示全部楼层
msq001 发表于 2019-6-17 08:59
F1的spi最大也只有18Mbit/s也就是 2.25MB/s....

我没说用SPI,用的是SDIO,理论速度10M字节的
回复 支持 反对

使用道具 举报

27

主题

44

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
307
金钱
307
注册时间
2016-12-31
在线时间
82 小时
发表于 2019-6-29 20:42:44 | 显示全部楼层
a3748622 发表于 2019-6-17 09:52
我用的是*火的底层

您好,请教一个问题,stm32使用fatfs读SD卡,我现在是把需要的数据从SD卡读出来,然后发送到IO口,发完再回来读SD卡,然后再发效率有点低,有什么办法,可以一边用fatfs读SD卡,一边发。比如我先读1024个数据,然后把数据发送到IO口,发送的同时读取第二个1024个数据
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2019-7-25
在线时间
6 小时
发表于 2019-7-25 11:48:17 | 显示全部楼层
1201yuge 发表于 2016-4-4 11:15
比较简单的测试方法就是,定义一个512个字节,或者1024字节的缓冲区,然后从SD卡里面读取数据出来,可以 ...

请问有没有相关的测试程序资料,能不能给我发一份,谢谢,这是我的邮箱310824994@qq.com
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2019-7-25
在线时间
6 小时
发表于 2019-7-25 11:49:50 | 显示全部楼层
17327054092 发表于 2018-5-30 15:27
**** 作者被禁止或删除 内容自动屏蔽 ****

哥们有没有相关的测试程序,能不能给我发一份,这是我的邮箱310824994@qq.com    谢谢
回复 支持 反对

使用道具 举报

2

主题

46

帖子

1

精华

高级会员

Rank: 4

积分
560
金钱
560
注册时间
2017-5-8
在线时间
136 小时
发表于 2019-7-25 14:17:47 | 显示全部楼层
F429 测试过读12MB/S   
回复 支持 反对

使用道具 举报

10

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2019-8-1
在线时间
27 小时
发表于 2019-8-19 19:20:05 | 显示全部楼层
怎么测sd卡的读速度
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2020-3-18
在线时间
5 小时
发表于 2020-3-28 16:13:08 | 显示全部楼层
STM32F412 的 SDIO+DMA+FATFS,1ms读10752字节
回复 支持 反对

使用道具 举报

37

主题

212

帖子

0

精华

高级会员

Rank: 4

积分
900
金钱
900
注册时间
2019-6-6
在线时间
100 小时
发表于 2020-8-26 17:47:55 | 显示全部楼层
我的读速度大概500KB/s,还是不带文件系统的。
回复 支持 反对

使用道具 举报

37

主题

212

帖子

0

精华

高级会员

Rank: 4

积分
900
金钱
900
注册时间
2019-6-6
在线时间
100 小时
发表于 2020-8-26 17:52:19 | 显示全部楼层
a3748622 发表于 2018-5-31 14:03
不至于吧,我以前试过直接读SD卡可以达到9M/s,通过FATFS至少也有4、5M/s。

4MB/s还是4Mb/s呢
不会就要俯身倾耳以请啊,博客地址:https://blog.csdn.net/qq_39521541?spm=1001.2101.3001.5343
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2020-3-28
在线时间
8 小时
发表于 2020-9-23 14:43:06 | 显示全部楼层
我用的eMMC卡,测试写速度在16M/s,不知道还能不能优化提速。我用的是H7芯片。
回复 支持 反对

使用道具 举报

12

主题

22

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2018-7-9
在线时间
24 小时
发表于 2022-8-4 10:51:46 | 显示全部楼层
fl7547454 发表于 2019-7-25 14:17
F429 测试过读12MB/S

我用的也是F429,时钟配置SDIO_CLOCK_BYPASS_ENABLE,DMA  ,读速度16MB/s
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-18 20:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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