OpenEdv-开源电子网

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

SPI带文件系统读SD卡好慢,F103上的SPI2的速度与SDIO的速度差很多倍?? 看原子用的SDIO驱动SDIO切歌说明的都挺快呀

[复制链接]

1

主题

3

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2018-6-4
在线时间
5 小时
发表于 2018-6-11 13:15:26 | 显示全部楼层 |阅读模式
1金钱
本人用的是SPI2去读写SD卡, 移植了原子的FATFS文件系统,  
SPI2时钟设置为:    SPI2_SetSpeed(SPI_BaudRatePrescaler_2); // #define SPI_BaudRatePrescaler_2         ((uint16_t)0x0000)
速度慢的主要原因都是在                  while(1)//查询总的有效文件数
                {            
                res=f_readdir(&tdir,&tfileinfo);    (此处耽误很多时间)                   //读取目录下的一个文件
                if(res!=FR_OK||tfileinfo.fname[0]==0)break;        //错误了/到末尾了,退出                  
                     fn=(u8*)(*tfileinfo.lfname?tfileinfo.lfname:tfileinfo.fname);                         
                        res=f_typetell(fn);       
                        if((res&0XF0)==0X40)//取高四位,看看是不是音乐文件       
                        {
                                rval++;//有效文件数增加1
                        }            
                }
主要是 f_readdir(&tdir,&tfileinfo);    这个函数太慢了,我仿真测试,大概在0.1-0.2秒一次,因为原子的程序有两遍循环查询,我要是有30首歌,从开机到开始播放第一首歌曲,至少需要6秒钟的时间才够,不知道到底怎么么回事,SPI和SDIO的速度差别真的那么大吗??切歌大概要1-2秒才能更新出来播放时间,码率,才能播放下一曲。看的原子的测试,基本上是瞬间就播放了。VS1053用的是SPI1,SD卡用的是SPI2,   我觉得SD卡用SPI1的速度去读,但是感觉还是很慢。。现在不知道怎么回事了,,播放歌曲是正常的,就是读SD卡很慢。有没有什么提高速度的办法了?希望各路大神帮帮忙,现在找不到原因了。

最佳答案

查看完整内容[请看2#楼]

当然大啊。 103的SPI最快是18M,单数据线。 103的SDIO最快可以25M,四数据线。 所以,至少是4*25/18=5.5倍。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-6-11 13:15:27 | 显示全部楼层
liufang4146 发表于 2018-6-11 17:18
求助原子哥,,spi的速度和sdio的速度,差别有那么大吗??

当然大啊。
103的SPI最快是18M,单数据线。
103的SDIO最快可以25M,四数据线。
所以,至少是4*25/18=5.5倍。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2018-6-4
在线时间
5 小时
 楼主| 发表于 2018-6-11 17:18:26 来自手机 | 显示全部楼层
求助原子哥,,spi的速度和sdio的速度,差别有那么大吗??
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2018-6-4
在线时间
5 小时
 楼主| 发表于 2018-6-11 23:21:06 来自手机 | 显示全部楼层
???楼
回复

使用道具 举报

6

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
162
金钱
162
注册时间
2020-3-13
在线时间
32 小时
发表于 2020-4-3 12:04:01 | 显示全部楼层
正点原子 发表于 2018-6-11 13:15
当然大啊。
103的SPI最快是18M,单数据线。
103的SDIO最快可以25M,四数据线。

原子哥,mini板103的例子中,没有找到SDIO接口的,能不能帮忙贴下SDIO例子的链接,谢谢
回复

使用道具 举报

37

主题

212

帖子

0

精华

高级会员

Rank: 4

积分
900
金钱
900
注册时间
2019-6-6
在线时间
100 小时
发表于 2020-8-26 17:45:12 | 显示全部楼层
FPGA读SD卡,经过测试速度大概在4Mhz
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 16:50

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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