请问使用STM32F4主控和外置AD芯片怎么采集1MHz的信号数据

2019-07-14 14:33发布

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
zhouxk
1楼-- · 2019-07-15 18:37
wang222221 发表于 2019-1-16 11:25
这个设计挑战性很大啊。180MHz 的处理器做 1MSPS 采样率,每个采样你只有 180 个机器周期的响应时间,基本上如果要维持采样率 CPU 就不能介入;就算换成 H7 每个采样 216 个指令周期也还是够呛。由于 AD 芯片对 CS 的要求,想不要 CPU 介入都有点难。我的建议是尝试一下看看能不能一次性配置好然后只靠定时器产生触发事件, ...

能用FPGA采的话,就非常简单了。
我FPGA直接采过4路SPI接口的18位AD,1M的AD。FPGA状态机采样及SPI传输,转换的数据存到4个寄存器,传输完成给个标志位。STM32并行读取FPGA输出寄存器。
wang222221
2楼-- · 2019-07-15 22:05
 精彩回答 2  元偷偷看……
youpukeji668
3楼-- · 2019-07-15 22:45
wang222221 发表于 2019-1-16 11:49
我觉得这么做都恐怕会有点慢,还不如在 FPGA 里面做个 bus matrix,FPGA 一方面不断地维持 1MSPS 读采样,存到挂着的采样存储器里面,并且判断触发中断条件;另一方面允许处理器随时过来读数据。采样存储器用 FPGA 外挂 LPDDR3 或 GDDR5。 ...

如果不是为了记录数据,我觉的可以在FPGA上做一些前级的处理
wang222221
4楼-- · 2019-07-15 23:03
youpukeji668 发表于 2019-1-16 11:55
如果不是为了记录数据,我觉的可以在FPGA上做一些前级的处理

的确。我前面给的设计是参考了不少廉价示波器的设计思路,如果加入前级处理也无妨。或者如果不用 FPGA,可以考虑用专职流处理 DSP,譬如 ADSP-BF531 或 TMS320C6748 这种来做前级处理。专职流处理 DSP 里面的 DMA 远远要比 STM32 的高效灵活的多,可以大大减少 CPU 的干预。

一周热门 更多>