搜索
bottom↓
回复: 29

stm32f4+ad7691(AD7982) 高速采集 实测图 欢迎探讨留言

[复制链接]

出0入16汤圆

发表于 2019-3-22 09:11:15 | 显示全部楼层 |阅读模式
本帖最后由 射天狼 于 2019-3-22 09:22 编辑

首先说明一下,此电路是非实时性的,可以低速实时,打算以后改为高速实时方案
再有就是采集速度是达不到官方手册标称值的,手册里有“猫腻”细心的朋友可以找找哈
板子特点:
1.板载64Kbit EEPROM
2.板载CAN接口,可组网
3.预留OLED液晶接口
4.自带USB-232/USB VCP接口
5.所有供电都是高精度 低噪声处理
6.预留2组 28个IO接口 可拓展
7.外接测试了一个高速64Mbit的SRAM 用于大量数据暂存
8.前端高精度仪表运放
9.AD输入缓冲级 单端转差分
10.可灵活更改输入量程
11.引脚兼容一堆AD芯片从100k-1.33M速度的都有
12.••••••


工作流程:
以ad7691为例 想要速度更高也可以用ad7982 应该可以到500k左右没问题
125k采集速度的话差不多可以存16s的数据 搞个触发 对付脉冲型数据 也足够了 不够也可以再拓展一个外部SRAM  标准波形更容易处理就不多说了

目前已经测试过的稳定程序版本是
以125k或者150k左右的采集速度 连续采集0-200万个点数(用的SRAM可设置 自带的RAM差不多2万个左右 一般标准波形采集也够) 然后串口以921600(也可以更高)波特率慢慢上传数据 再做处理
AD短路噪声是80uVpp左右加上前端电路是200uVpp(没加滤波 这个可以根据实际降低)


打算拓展实验的功能:
1.用W5500或者FT232H 来做实时传输到PC
2.不需要实时性的场合或者速度不太高的场合 可以用USART和USB VCP接口
3.不知道TF卡SDIO速度实时性跟不跟得上 可以一试


话不多说 直接上图

测试程序


125k采1k


125k采2k


20万个点SRAM测试


SRAM 100万个点数测试 1hz波形  由于200万个电脑串口缓冲放不下 自己也懒得写 暂时不测了  应该是没问题的


板子丑照


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2019-3-22 09:17:33 | 显示全部楼层
你可试FPGA+SDRAM(或DDR)+W5500

出0入0汤圆

发表于 2019-3-22 09:18:39 | 显示全部楼层
都上F4了,何必局限于串口传数据呢,USB devices ,FTP,SD,TCP都是可以考虑的,都比串口效率高。

出500入109汤圆

发表于 2019-3-22 09:20:36 | 显示全部楼层
不做示波器功能吧,使用范围太局限,做成示波器吧,难度有太高,每次想到这类东西都很纠结

出0入16汤圆

 楼主| 发表于 2019-3-22 09:24:05 | 显示全部楼层
NJ8888 发表于 2019-3-22 09:17
你可试FPGA+SDRAM(或DDR)+W5500

这不还没学FPGA呢 当然速度实时性 跟他不是一个等级的 不过这个速度下  会不会有点浪费

出0入0汤圆

发表于 2019-3-22 09:25:32 | 显示全部楼层
引脚兼容一堆AD芯片从100k-1.33M速度的都有,可是价钱也跟速度一样涨的飞快!

出0入16汤圆

 楼主| 发表于 2019-3-22 09:28:48 | 显示全部楼层
xjmlfm1 发表于 2019-3-22 09:18
都上F4了,何必局限于串口传数据呢,USB devices ,FTP,SD,TCP都是可以考虑的,都比串口效率高。 ...

是有点鸡肋  这玩意速度太慢  主要有人正好需要这个(估计嫌其他协议不好操作)他是临时测试用的   然后我给快速设计做的一版  再来一版我就都改掉了 多谢指正

出0入16汤圆

 楼主| 发表于 2019-3-22 09:32:32 | 显示全部楼层
yyj_sd 发表于 2019-3-22 09:25
引脚兼容一堆AD芯片从100k-1.33M速度的都有,可是价钱也跟速度一样涨的飞快! ...

价钱还可以 官方报价从15美元-17美元  这个速度这个价钱 倒是也还可以接收哈

出0入0汤圆

发表于 2019-3-22 09:39:13 | 显示全部楼层

玩这个吧,低速高biit没意思。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入16汤圆

 楼主| 发表于 2019-3-22 10:02:04 | 显示全部楼层
momo_li 发表于 2019-3-22 09:20
不做示波器功能吧,使用范围太局限,做成示波器吧,难度有太高,每次想到这类东西都很纠结 ...

其实定位不一样了 没必要非得做成示波器 要做成那样 那还不如直接买个示波器 现在的示波器价格也不高 外接个u盘啥的
这种速度下应用场合也很多了 算是特定场合应用吧 比如脉冲测试 交流电采集 磁场采集 加速度 振东以··· 示波器那速度太高 到电脑上数据传输处理也都是问题 还有示波器存在一个问题 就是精度问题 很多场合满足不了

出0入0汤圆

发表于 2019-3-22 10:38:00 | 显示全部楼层
本帖最后由 yyj_sd 于 2019-3-22 10:58 编辑

楼主自己做的板子还是买的AD  demo板?

出0入42汤圆

发表于 2019-3-22 11:03:02 | 显示全部楼层
用来做数据分析比较合适,  适当的速率, 高的分辨率.  有TCP比较好实时性高开发也不受局限
高速不稀缺, 上示波器就是了.

出0入16汤圆

 楼主| 发表于 2019-3-22 11:26:50 | 显示全部楼层
yyj_sd 发表于 2019-3-22 10:38
楼主自己做的板子还是买的AD  demo板?

自己做的

出0入17汤圆

发表于 2019-3-22 11:26:57 来自手机 | 显示全部楼层
这类串行高速adc,最好是用fpga,楼主用f4达到了200k了?数据获取用中断了吗?

出0入16汤圆

 楼主| 发表于 2019-3-22 11:31:59 | 显示全部楼层
albert_w 发表于 2019-3-22 11:03
用来做数据分析比较合适,  适当的速率, 高的分辨率.  有TCP比较好实时性高开发也不受局限
高速不稀缺, 上示 ...

那人就是数据分析的 用matlab后期处理
适当的速率, 高的分辨率  正解

出0入16汤圆

 楼主| 发表于 2019-3-22 11:46:39 | 显示全部楼层
HZKJ 发表于 2019-3-22 11:26
这类串行高速adc,最好是用fpga,楼主用f4达到了200k了?数据获取用中断了吗? ...

stm32f4预计到个500k采样率 应该没什么问题而且还没用硬件SPI和DMA  只用的模拟SPI AD7691之所以没达到200k是因为某些情况下压根芯片就达不到 之前没仔细看不同电压对应的最高采样率有所区别  现在程序采集里还得等AD转换 时间都是2-3us左右
没用中断 就是循环连续不停的采集  用中断会更好一些 因为他有个等待时间 还是个范围 不是个确定时间 所以我基本以最大时间等待的

出0入0汤圆

发表于 2019-3-22 12:05:53 | 显示全部楼层
能发个前端模拟部分电路参考下吗,谢谢啊

出0入4汤圆

发表于 2019-3-22 12:19:58 | 显示全部楼层
几百K 不算很高了吧

出0入4汤圆

发表于 2019-3-22 12:32:54 | 显示全部楼层
最近也在考虑用这个芯片做电流采集,看中高分辨率一个档位搞定全量程。楼主为啥没用硬件的SPI做?跑1M的采样率不知道能不能跟上。

出0入16汤圆

 楼主| 发表于 2019-3-22 13:13:43 | 显示全部楼层
pdabug 发表于 2019-3-22 12:05
能发个前端模拟部分电路参考下吗,谢谢啊

前端部分是一个仪表运放(AD8221或INA128都可以)这样即可以差分 也可以对地单端 也可以对mV uV微弱信号进行处理 后面是一个ADA4940-1 单端转成差分给个Vcom输入改成单端模式 输出直接到AD的IN+和IN-

出0入16汤圆

 楼主| 发表于 2019-3-22 13:15:51 | 显示全部楼层
zhanyanqiang 发表于 2019-3-22 12:19
几百K 不算很高了吧

嗯 不算高 这个东西看场合吧  够用就行了

出0入0汤圆

发表于 2019-3-22 13:18:20 来自手机 | 显示全部楼层
momo_li 发表于 2019-3-22 09:20
不做示波器功能吧,使用范围太局限,做成示波器吧,难度有太高,每次想到这类东西都很纠结 ...

示波器位数不够

出0入16汤圆

 楼主| 发表于 2019-3-22 13:42:57 | 显示全部楼层
wajlh 发表于 2019-3-22 12:32
最近也在考虑用这个芯片做电流采集,看中高分辨率一个档位搞定全量程。楼主为啥没用硬件的SPI做?跑1M的采 ...

1M应该不行 有些场合  硬件SPI和模拟SPI都差不多好像  个人愚见啊 不知道对不对  有知道的可以指正下哈
举例来说 SPI2_ReadWriteByte是硬件SPI读写函数
但是你那个CS(NSS)无法进行时间控制啊 大部分SPI的芯片都支持 因为他只要CS为低就可以马上读取  所以也能用DMA
而AD多数都是需要等待转换完成  就像AD7691 NSS无法自主完成控制 这样你压根无法用DMA

上图  标准时序NSS

AD7691时序 他有一个tCNVH时间 而且CNV从0-1-0 才能转换 还是18位数据 DMA如何完成呢?



那你不用SPI的DMA的话 那函数里也是while等着发送 其实也就一样了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2019-3-22 21:27:53 | 显示全部楼层
一个TIMER两个通道+DMA搞定,根本不需要软件干预,一个通道PWM管CS,一个管触发SPI自动回读AD,N年前就这么跑了

出0入0汤圆

发表于 2019-3-22 21:58:12 | 显示全部楼层
给运放供电的负电源电路是怎么样的,用的什么芯片

出0入16汤圆

 楼主| 发表于 2019-3-23 21:30:57 来自手机 | 显示全部楼层
zkmcu 发表于 2019-3-22 21:58
给运放供电的负电源电路是怎么样的,用的什么芯片

看另一个帖子吧  看到你也问了  里面不少都可以

出90入0汤圆

发表于 2019-3-25 10:50:44 | 显示全部楼层
again 发表于 2019-3-22 21:27
一个TIMER两个通道+DMA搞定,根本不需要软件干预,一个通道PWM管CS,一个管触发SPI自动回读AD,N年前就这么 ...

PWM管CS?是管SPI读取的CS吗?还是说AD采样芯片的采样启动?

出0入0汤圆

发表于 2019-3-27 21:27:10 | 显示全部楼层
zhucezhuanyong 发表于 2019-3-25 10:50
PWM管CS?是管SPI读取的CS吗?还是说AD采样芯片的采样启动?

还没领悟到?PWM频率就是AD采样率,一个通道启动AD转换,另一个通道触发DMA往SPI写顺便DMA回读,两个PWM边沿时间差满足AD采样及转换时间

出90入0汤圆

发表于 2019-3-28 08:32:39 | 显示全部楼层
again 发表于 2019-3-27 21:27
还没领悟到?PWM频率就是AD采样率,一个通道启动AD转换,另一个通道触发DMA往SPI写顺便DMA回读,两个PWM ...

明白了,多谢指点

出0入0汤圆

发表于 2019-3-28 08:44:43 | 显示全部楼层
以前买的ADI官方出的AD7982PMOD评估板,这类MSOP10兼容系列高分辨率ADC真是非常小巧方便好用,性能也很不错,就是要上1MSP以上采样率的话SPI传输速率得非常高,就拿AD7982来说就得在290ns内传输完18个BITS,这样SPI的速率就得超过62MHZ了,而且还是18BIT的,之前STM32的SPI是16bit最大,速度也可怜,肯定是不行的,所以我都是直接用FPGA了。不过现在STM32H7系列不错,SPI接口可以支持32位内任意位,而且速度可以高达100MHZ,用一个TIMER生成2个PWM信号,一个PWM输出作为AD7982 CNV触发信号,另一个PWM不用输出只需要配合时序触发SPI DMA传输即可, 非常好用,而且H7的1MB内存也足够大,完全可以不需要FPGA了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-18 20:07

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

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