搜索
bottom↓
回复: 24
打印 上一主题 下一主题

fpga+stm32的信号采集方案设计的问题

[复制链接]

出0入0汤圆

跳转到指定楼层
1
发表于 2015-5-18 09:13:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Vampireyifeng 于 2015-5-19 19:54 编辑

有个问题想请教一下,想做一个fpga+stm32 的信号采集。信号采集速率在30Msps以上。但是信号不是一直都有的,而是靠外部触发电路来触发采集的。采集后先缓存在sdram里。然后stm32读走。但是现在有一个问题是,fpga将数据采集到sdram里。stm32通过fsmc总线读sdram里的数据。但这样写的时候就不能读,读的时候就不能写了。这样的话。采集到的波型就不是连续的。因为要以最快的速度来采集信号,所以不能采集一个点,处理一个点那样做。只能把一段时间内的信号以最快的速度采集到sdram里。难道要加双sdram做乒乓缓冲?但是这方面没有什么思路,不知道有没有人做过可以交流一下。

出0入0汤圆

2
发表于 2015-5-18 11:09:25 | 只看该作者
FPGA 内部或者外部开FIFO了

出0入0汤圆

3
 楼主| 发表于 2015-5-18 11:26:12 | 只看该作者
zqy517 发表于 2015-5-18 11:09
FPGA 内部或者外部开FIFO了

用sdram做 fifo,不知道 这样可不可以

出0入0汤圆

4
发表于 2015-5-18 11:44:29 | 只看该作者
Vampireyifeng 发表于 2015-5-18 11:26
用sdram做 fifo,不知道 这样可不可以

不可以的吧,SDRAM是同步的 FIFO是异步

出0入0汤圆

5
发表于 2015-5-18 11:47:19 | 只看该作者
双口ram适合你。用过IDT 70V25。

出0入16汤圆

6
发表于 2015-5-18 11:53:39 | 只看该作者
nios不也是处理器吗,把STM32的任务交给它咯

出0入22汤圆

7
发表于 2015-5-18 19:21:05 来自手机 | 只看该作者
有硬核就甭去折腾软核了,不好玩的。

出0入0汤圆

8
发表于 2015-5-18 22:10:24 来自手机 | 只看该作者
先将采集的数据放到fifo,再异步进sdram,stm使用等待模式同步读取。

出10入0汤圆

9
发表于 2015-5-18 22:28:06 来自手机 | 只看该作者
dual ram适合

出0入0汤圆

10
发表于 2015-5-18 22:32:43 来自手机 | 只看该作者
两个内存,乒乓操作。

出0入0汤圆

11
发表于 2015-5-18 22:40:22 | 只看该作者
根据写入读出总带宽需求评估

出0入0汤圆

12
 楼主| 发表于 2015-5-19 10:27:47 | 只看该作者
xqscucc 发表于 2015-5-18 22:10
先将采集的数据放到fifo,再异步进sdram,stm使用等待模式同步读取。

现在我就是打算这样做的。可否具体说一下

出0入0汤圆

13
 楼主| 发表于 2015-5-19 19:54:23 | 只看该作者
liuerbin 发表于 2015-5-18 11:47
双口ram适合你。用过IDT 70V25。

双口ram成本有点高

出0入0汤圆

14
 楼主| 发表于 2015-5-19 19:55:00 | 只看该作者
howmoney 发表于 2015-5-18 11:53
nios不也是处理器吗,把STM32的任务交给它咯

因为stm32那里用的比较多,维护什么的也好做一点。

出0入0汤圆

15
 楼主| 发表于 2015-5-19 19:56:10 | 只看该作者
xqscucc 发表于 2015-5-18 22:10
先将采集的数据放到fifo,再异步进sdram,stm使用等待模式同步读取。

ad采样速率高,数据量大,内部fifo可能缓冲不过来的。

出0入0汤圆

16
 楼主| 发表于 2015-5-19 19:57:24 | 只看该作者
chengsong 发表于 2015-5-18 22:32
两个内存,乒乓操作。

现在是打算用双sdram做乒乓缓冲,不过以前没有做过,比较吃力。

出0入0汤圆

17
 楼主| 发表于 2015-5-19 19:58:25 | 只看该作者
NJ8888 发表于 2015-5-18 22:40
根据写入读出总带宽需求评估

因为我AD采样的速率大概在32Msps以上。STM32的读写速度大概是十几M。所以打算用双SDRAM做缓冲。但是具体怎么做不是很清楚。吃力进行中

出0入0汤圆

18
发表于 2015-5-19 20:03:57 | 只看该作者
可以看看我的icore2;当然,用 SRAM 是最简单的。 用 SDRAM 稍微复杂点。最主要的是一次触发;你要存多少点的数据。

出0入0汤圆

19
发表于 2015-5-19 20:07:27 | 只看该作者
aureole 发表于 2015-5-19 20:03
可以看看我的icore2;当然,用 SRAM 是最简单的。 用 SDRAM 稍微复杂点。最主要的是一次触发;你要存多少点 ...

这个不成问题,fpga做FIFO,存满1页突发写一页

出0入0汤圆

20
 楼主| 发表于 2015-5-19 21:49:17 | 只看该作者
本帖最后由 Vampireyifeng 于 2015-5-19 22:09 编辑
aureole 发表于 2015-5-19 20:03
可以看看我的icore2;当然,用 SRAM 是最简单的。 用 SDRAM 稍微复杂点。最主要的是一次触发;你要存多少点 ...


多谢小马哥指导,从小马哥做的东西里真的学到了很多东西,真心感谢。 现在的思路是,因为我AD采样的速率大概在32Msps以上。STM32的读写速度大概是十几M。所以打算用双SDRAM做缓冲。这样触发一次写其中一个sdram。当stm32来读取时,信号数据写到另外一个sdram里。这样可以保证信号触发后的波形数据可以连续采集到。现在有的只是icore2的原理图。不知道icore2在fpga软件上可不可以放一些可以参考的东西。(icore2的默认出厂程序不知道可不可以让我借鉴一下)

出0入0汤圆

21
发表于 2015-5-26 09:03:37 | 只看该作者
STM32与FPGA之间采用FSMC总线通信吗?

出0入10汤圆

22
发表于 2016-2-21 00:08:19 | 只看该作者
请问你用的哪种AD芯片?怎么样?

出0入0汤圆

23
发表于 2016-2-21 01:16:48 | 只看该作者
你好,我在跟你做一样的事情,用STM32+FPGA做示波器,可以加我qq:693585111,咱们交流交流

出0入0汤圆

24
发表于 2016-2-22 07:48:01 来自手机 | 只看该作者
为啥fpga内部不用avalon总线?adc采样一个master,stm32读写一个master,avalon总线自动生成逻辑可以并发读写sdram。第一次读取的adc数据由adc的master放到sdram的地址0处,然后stm32的master开始读地址0处的数据,在这期间adc的master也可以对sdram进行操作把下一阶段的数据写到sdram的地址1处。sdram对于adc和stm32来说就是随时都可以访问的了由avalon总线生成的仲裁器来分时复用sdram。

出0入0汤圆

25
发表于 2016-3-29 15:38:43 | 只看该作者
用fpga做接口啊,在fpga上做缓冲就可以了。
还有就是利用好时序。
stm32读的速度慢,fpga这边可以快速准备好数据。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 22:10

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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