OpenEdv-开源电子网

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

读FPGA的FIFO,写SD卡

[复制链接]

11

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2013-4-3
在线时间
2 小时
发表于 2015-3-30 19:46:20 | 显示全部楼层 |阅读模式
5金钱
大家好,请教一个问题。
现在我用SMT32的FSMC   从   FPGA的FIFO中读取数据,STM32的读取动作是由FPGA的FIFO满信号触发(下降沿)。
现在遇到的问题就是,FPGA产生FIFO满中断的速度,和FSMC从FPGA读取数据的速度非常快,而数据写入SD卡的速度相对较低,我要怎么设置一个缓冲区,才能让每一包数据都写入SD卡中。有经验的朋友,麻烦介绍一下经验。
板子上的STM32没有外接SRAM,运行的是UCOS.
FPGA产生中断----->stm32在中断函数中通过FSMC读取数据------>stm32在中断函数中发送信号量----->SD卡任务接收信号量,写入数据。
在SD卡写入一包数据的过程中,FSMC可能又读回来好多包数据。

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-3-30 23:44:41 | 显示全部楼层
你的数据是一直不停的输出么?
如果是,那就没戏了。横竖都无法存储。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

11

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2013-4-3
在线时间
2 小时
 楼主| 发表于 2015-3-31 08:22:53 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥,数据不是一直输出,FPGA的FIFO满了后,产生中断给STM32,STM32读出指定长度的数据(读完后停止),读出来的过程中FIFO就不是满状态了,
STM32如果不读FIFO,FIFO又会产生溢出中断。 所以数据不是一直传输的。现在困难在于怎么在FIFO溢出中断产生前,把上一次中断的数据全部写入SD卡中。

现在FPGA的FIFO溢出中断门限为4KB,中断产生后,STM32在中断中每次读走256B,写入SD卡256B,这样操作16次后,清除中断标志。原子哥,你看这样行吗?
(因为一次读回4KB数据也没地方放,所以这样分次读取。)

原子哥,给点思路。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-3-31 23:56:40 | 显示全部楼层
回复【3楼】蚕陵:
---------------------------------
你可以一次读取4KB,然后写入SD卡,这样速度快一点。
一次写256b太慢了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

11

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2013-4-3
在线时间
2 小时
 楼主| 发表于 2015-4-8 11:03:08 | 显示全部楼层
这几天连续测试,还是没有解决SD卡的存储问题。
现在FPGA给STM32的中断周期是2ms,在2ms中STM32要完成从FPGA读回1K的数据,从网口发送,写入SD卡。
之前我把写SD卡作为一个任务,在中断接收数据后,给SD卡发送信号量,但是UCOS根本不去调度SD卡任务(因为中断产生太快,中断接收数据后,先调度任务优先级高的网口任务,等网口任务执行完后,STM32又收到FPGA中断,所以SD卡根本不能执行)。
鉴于前面的情况,我把写SD卡直接放在网口任务中执行,现在虽然能写入数据,但是对网口的数据会产生影响(丢数据)。
所以原子哥,SD卡的写操作在2ms内是不是执行不完啊?这样快的数据,对于写SD可以实现吗?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-24 01:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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