完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
用CPU来做估计比较费时,也正在研究这块,期望用PWM + SPI + DMA来自动实现对ADC的采样和读取,这篇文章经验证是可以实现的:
http://bbs.16rd.com/thread-56289-1-1.html |
|
|
|
STM32H7可以达到4M速度采样,直接用H7做就好了。
|
|
|
|
CPU+外置ADC的成本较高, 楼上建议采用H7也是一个不错的选择,直接内部DMA采集
|
|
|
|
对AD精度有要求不建议用内部ADC,内部ADC精度受总线影响,特别是FMC,以太网同时工作时
|
|
|
|
楼主,你SPI3挂APB1总线上(90M)二分频也是45M的时钟吧
|
|
|
|
本帖最后由 toofree 于 2018-4-17 14:38 编辑
用两路SPI采,一路提供时钟做主控制,另一路作为从接收。把SDATAA、SDATAB分别采两路。 话说429的SPI好嚣张,45 Mbits/s AD7357的SPI更高,最大80M。理论上来说,429可以用45M的SPI来与AD7357通信。 |
|
|
|
这个设计挑战性很大啊。180MHz 的处理器做 1MSPS 采样率,每个采样你只有 180 个机器周期的响应时间,基本上如果要维持采样率 CPU 就不能介入;就算换成 H7 每个采样 216 个指令周期也还是够呛。由于 AD 芯片对 CS 的要求,想不要 CPU 介入都有点难。我的建议是尝试一下看看能不能一次性配置好然后只靠定时器产生触发事件,或者就是用 FPGA 来采样。
|
|
|
|
wang222221 发表于 2019-1-16 11:25 能用FPGA采的话,就非常简单了。 我FPGA直接采过4路SPI接口的18位AD,1M的AD。FPGA状态机采样及SPI传输,转换的数据存到4个寄存器,传输完成给个标志位。STM32并行读取FPGA输出寄存器。 |
|
|
|
zhouxk 发表于 2019-1-16 11:35 我觉得这么做都恐怕会有点慢,还不如在 FPGA 里面做个 bus matrix,FPGA 一方面不断地维持 1MSPS 读采样,存到挂着的采样存储器里面,并且判断触发中断条件;另一方面允许处理器随时过来读数据。采样存储器用 FPGA 外挂 LPDDR3 或 GDDR5。 |
|
|
|
wang222221 发表于 2019-1-16 11:49 如果不是为了记录数据,我觉的可以在FPGA上做一些前级的处理 |
|
|
|
的确。我前面给的设计是参考了不少廉价示波器的设计思路,如果加入前级处理也无妨。或者如果不用 FPGA,可以考虑用专职流处理 DSP,譬如 ADSP-BF531 或 TMS320C6748 这种来做前级处理。专职流处理 DSP 里面的 DMA 远远要比 STM32 的高效灵活的多,可以大大减少 CPU 的干预。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1330 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1263 浏览 3 评论
2430 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1416 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1847 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-1 05:32 , Processed in 0.850893 second(s), Total 64, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号