OpenEdv-开源电子网

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

如何互不干扰的读取SD卡

[复制链接]

60

主题

153

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
369
金钱
369
注册时间
2013-12-23
在线时间
32 小时
发表于 2014-1-21 09:51:33 | 显示全部楼层 |阅读模式
我的工程中有这样几个模块需要到SD卡中读取数据,第一就是录音模块,第二就是放音模块,第三就是USB模块他们都采用SPI的方式对SD卡进行读写,现在的问题是每一个模块单独的读写SD卡都没有问题,但是如果出现两个模块同时读写的的情况就有一个模块会出问题,请教一下要如何才能实现多模块之间的同时读取
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

7

主题

170

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2013-8-9
在线时间
3 小时
发表于 2014-1-21 10:18:35 | 显示全部楼层
回复【楼主位】csf4824521:
---------------------------------
几个模块?几个控制芯片对SD卡进行操作?我不是很懂SD卡啊,但是,你是不是可以多加出来一个引脚用于检测其他模块是否在进行读写?
回复 支持 反对

使用道具 举报

3

主题

2178

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3323
金钱
3323
注册时间
2013-7-19
在线时间
195 小时
发表于 2014-1-21 10:20:06 | 显示全部楼层
不可能同时的,至少也是时分复用
回复 支持 反对

使用道具 举报

60

主题

153

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
369
金钱
369
注册时间
2013-12-23
在线时间
32 小时
 楼主| 发表于 2014-1-21 11:00:31 | 显示全部楼层
现在暂时是3个模块,录音、放音还有USB,我好像没有用控制芯片来读写SD卡,时分复用要怎么来实现呢?
回复 支持 反对

使用道具 举报

60

主题

153

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
369
金钱
369
注册时间
2013-12-23
在线时间
32 小时
 楼主| 发表于 2014-1-21 12:21:26 | 显示全部楼层
请教如何实现三种读写都可以同时进行的方法和思路
回复 支持 反对

使用道具 举报

3

主题

222

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
355
金钱
355
注册时间
2012-8-13
在线时间
32 小时
发表于 2014-1-21 12:57:33 | 显示全部楼层
1,必须要用文件系统,
2,文件系统要支持同时打开3个文件(也可以是同一个文件),这样就有三个文件指针,分别用于三个操作,这三个指针如果都指向同一文件,则只有一个可写,另两个只读.
3,SPI的速度一定要足够快,CPU的速度也要足够快.不然就真的累死了.
个人小店,弄了些大人玩具,希望各位老小玩童们喜欢。 http://autocute.taobao.com/
回复 支持 反对

使用道具 举报

头像被屏蔽

38

主题

382

帖子

0

精华

高级会员

Rank: 4

积分
596
金钱
596
注册时间
2012-12-5
在线时间
19 小时
发表于 2014-1-21 13:06:41 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

60

主题

153

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
369
金钱
369
注册时间
2013-12-23
在线时间
32 小时
 楼主| 发表于 2014-1-21 14:04:12 | 显示全部楼层
谢谢楼上的两位,但是因为还有SPI要做他用,所以只能使用一个SPI2来进行,读的速度每秒大约在300K以上,写就比较慢不到100k,文件系统我用的是FATFS,三个模块的读写都是独立的,所以也有单独的文件指针,芯片是STM32F103VET6。基本上不会出现读写同一文件的情况
回复 支持 反对

使用道具 举报

3

主题

222

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
355
金钱
355
注册时间
2012-8-13
在线时间
32 小时
发表于 2014-1-21 22:26:09 | 显示全部楼层
音频的采样率降低些,如8KHz采样,先调试好了,再慢慢提高,我猜是你的CPU不够快,因为处理文件操作要花很多时间,也就是说,当你单个任务写的时候只有100K的话,那三个任务一起来就要除以3,就变成30K了,这是最理想的,实际三个任务的时候估计20K都难保障!如果有用到DMA就更要小心了,估计你是没法子用DMA的.
个人小店,弄了些大人玩具,希望各位老小玩童们喜欢。 http://autocute.taobao.com/
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 22:19

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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