搜索
bottom↓
回复: 25

求助:如何解决AD7606被干扰后数值错乱

[复制链接]

出0入0汤圆

发表于 2017-8-20 13:46:46 | 显示全部楼层 |阅读模式
AD620放大信号--AD7606进行AD转换。无干扰时数值正常,被干扰后数值混乱。

输入信号是一个压力传感器(电阻桥)但是附近有大功率的感性负载导致叠加了尖峰。目前这个尖峰使用打火机的压电陶瓷模拟。

信号输入端,运放电源,AD7606电源都已经加上瞬态二极管保护。
在AD7606的SCK,MOSI引脚被数据混乱时波形如下,黄色=SCK,绿色=MOSI

疑似尖峰电压使SPI多了一个时钟信号,导致数据错位。
目前有两个方法解决这个问题,但不能根除。
1、在程序中每读一次数值后对AD7606和单片机SPI进行一次复位。
2、把板子的GND接地,但是这个产品是电池供电,实际中无法接地。

希望各位前辈指点下,谢谢。

本帖子中包含更多资源

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

x

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

阿莫论坛才是最爱国的,关心国家的经济、社会的发展、担心国家被别国牵连卷入战争、知道珍惜来之不易的和平发展,知道师夷之长,关注世界的先进文化与技术,也探讨中国文化的博大精深,也懂得警惕民粹主义的祸国殃民等等等等,无不是爱国忧民的表现。(坛友:tianxian)

出0入4汤圆

发表于 2017-8-20 15:33:17 | 显示全部楼层
用金属外壳 ,然后信号的GND接外壳和供电的GND

出0入0汤圆

 楼主| 发表于 2017-8-20 19:35:26 | 显示全部楼层
huarana 发表于 2017-8-20 15:33
用金属外壳 ,然后信号的GND接外壳和供电的GND

感谢您的建议,但还是不行,这是电压尖峰跑进板子了,并非电磁干扰。

出0入0汤圆

发表于 2017-8-20 20:15:13 | 显示全部楼层
你的 片选信号线 没有使用?

出0入0汤圆

 楼主| 发表于 2017-8-20 21:21:08 | 显示全部楼层
knight_avr 发表于 2017-8-20 20:15
你的 片选信号线 没有使用?

确实,关闭片选后是不会被干扰的,但是这个尖峰是不定期出现的,无法保证每次读取AD值都不会被干扰。

出0入4汤圆

发表于 2017-8-20 21:27:46 | 显示全部楼层
W872529868 发表于 2017-8-20 21:21
确实,关闭片选后是不会被干扰的,但是这个尖峰是不定期出现的,无法保证每次读取AD值都不会被干扰。 ...

干扰是在数字信号上吗?   是不是数字信号比较长?  可以给信号上增加几百pF -1000pF的电容  尤其是clk信号上。

出0入8汤圆

发表于 2017-8-20 21:30:31 | 显示全部楼层
W872529868 发表于 2017-8-20 21:21
确实,关闭片选后是不会被干扰的,但是这个尖峰是不定期出现的,无法保证每次读取AD值都不会被干扰。 ...

SPI时钟 多少?  加上RC

出0入4汤圆

发表于 2017-8-20 21:36:28 来自手机 | 显示全部楼层
本帖最后由 xiaoergao 于 2017-8-20 21:38 编辑

常规的adC被干扰的话只是一个ad周期被干扰的. 等到下一个周期采样,应该就是正确的值。然后通过软件把这种异常的直给过滤掉就好啦。

出0入0汤圆

 楼主| 发表于 2017-8-20 21:52:34 | 显示全部楼层
xiaoergao 发表于 2017-8-20 21:36
常规的adC被干扰的话只是一个ad周期被干扰的. 等到下一个周期采样,应该就是正确的值。然后通过软件把这种 ...

AD7606有个问题,转换完成必须把全部AD值读出,不然下次转换数值会不正常。现在SCLK多了一个脉冲,导致有一个位没有读出来,导致后面全部错了。

出70入145汤圆

发表于 2017-8-21 07:37:17 来自手机 | 显示全部楼层
你的spi速度是多少?总线上并电容是一个有效的方法,电容要足够大,并且adc和mcu两侧都要并。最大容量大到spi波形畸变到通讯失败后,各取1/4的容量并两头上去。工并1/2最大电容。电容并的不够大没什么效果的。之前做4kv群脉冲实验是靠并电容解决,因为当时因为火线低和和零线地分割,导致spi下面都没一块完整的地平面。不加电容不行。

出0入4汤圆

发表于 2017-8-21 07:44:29 来自手机 | 显示全部楼层
W872529868 发表于 2017-8-20 21:52
AD7606有个问题,转换完成必须把全部AD值读出,不然下次转换数值会不正常。现在SCLK多了一个脉冲,导致有 ...

那如果每次读数据的时候都多发一个clock,最后一位不要,可以么?
其实如果不是要求特别快的速度的话接应变桥传感器还不如直接用ad7190,cs5532.这样的芯片。ad620都可以省掉了。24bit的解析度,内部最大128的pga。哪怕用个cs1237这样一块多的芯片效果都不错。

出0入31汤圆

发表于 2017-8-21 08:05:18 来自手机 | 显示全部楼层
W872529868 发表于 2017-8-20 21:52
AD7606有个问题,转换完成必须把全部AD值读出,不然下次转换数值会不正常。现在SCLK多了一个脉冲,导致有 ...

确定7606有这种要求吗?记得以前并行总线读取的时候,每次转换完成后通道都会自动重置。

出0入0汤圆

发表于 2017-8-21 08:38:40 | 显示全部楼层
W872529868 发表于 2017-8-20 21:52
AD7606有个问题,转换完成必须把全部AD值读出,不然下次转换数值会不正常。现在SCLK多了一个脉冲,导致有 ...

没有这个要求,需要几个通道读几个通道,只是每次都要从1通道开始读

出0入8汤圆

发表于 2017-8-21 10:47:53 来自手机 | 显示全部楼层
AD7606是不是AD输入不接线的时候读出来会有1.8V左右的电压数值?接上线是正常的,悬空一直有较大数值...大家有没有这种情况啊?怎么解决的啊?

出0入8汤圆

发表于 2017-8-21 10:57:30 来自手机 | 显示全部楼层
网上查到是:1,AD7606的读取过程是首先要用mcu发一个convst信号给AD7606,然后AD7606转换完毕后,会发出一个busy信号通知单片机此时再启动spi去读取采样之后的值。值得注意的是在用串口读取的时候,MSB DB15是在CS的下降沿输出的,而DB14到DB0是在SCLK的上升沿输出的。这在datasheet的28页第二列页首那段有描述,如果您的SPI配置成SCLK的上升沿读取,DB15可能读取不到。 2,AD7606的模拟输入端VX处的电阻和电容组成ADC前端的抗混叠滤波器,其衰减频率f=1/2*pi*R*C。VxGND端的电阻需与VX端处的电阻相一致,主要用来消除偏置误差。通常电阻的大小应在10K欧姆上下。 3,当输入端悬空后,一般根据您输入端范围的不同,所得到的偏置是不同的(当Range选择为±5V时为1.78V左右,Range选择为±10V时大约为2.08V左右),这时由于输入是测量正负电压,里面存在一个直流偏置。 4,True bipolar是指对地具有双极性,即相对于地来说有正有负,这和差分信号还是有差别的。差分信号是指Vin+-Vin-有正有负,但每个输入端对地不一定是负的。 对于AD7606的true bipolar input指的是Vx对地有正有负,因此VINGND始终是接地的。 5,转换时序见图2、图3、图44(并行)、图46(串行)。输出数据采用补码形式,见图39。 6,AD7606的输入阻抗很高,如果传感器输出阻抗不大的话,不用额外再使用buffer,这样也可以节省系统的成本。同时,建议使用ADI的多路选择器,如ADG14xx,它具有非常低导通电阻。ADG12xx的电容非常小,都是针对工业应用进行设计的。外部参考源建议用ADR421。

出0入0汤圆

 楼主| 发表于 2017-8-21 11:15:44 | 显示全部楼层
ljx289 发表于 2017-8-21 10:47
AD7606是不是AD输入不接线的时候读出来会有1.8V左右的电压数值?接上线是正常的,悬空一直有较大数值...大 ...

输入悬空读出的值是不确定的,想固定,加下拉。

出0入0汤圆

 楼主| 发表于 2017-8-21 21:23:48 | 显示全部楼层
xiaoergao 发表于 2017-8-20 21:36
常规的adC被干扰的话只是一个ad周期被干扰的. 等到下一个周期采样,应该就是正确的值。然后通过软件把这种 ...

逻辑分析仪测出来的结果是整个数据移位了。

GD32,用STM32的程序。

本帖子中包含更多资源

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

x

出0入4汤圆

发表于 2017-8-21 21:44:24 | 显示全部楼层
W872529868 发表于 2017-8-21 21:23
逻辑分析仪测出来的结果是整个数据移位了。

GD32,用STM32的程序。

最上面那个是BUSY线么?怎么看起来像是ADconvert太快,数据读取太慢。

出0入0汤圆

 楼主| 发表于 2017-8-21 21:53:48 | 显示全部楼层
xiaoergao 发表于 2017-8-21 21:44
最上面那个是BUSY线么?怎么看起来像是ADconvert太快,数据读取太慢。

上面是CS,片选。
正常的波形。

本帖子中包含更多资源

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

x

出0入0汤圆

 楼主| 发表于 2017-8-21 22:15:35 | 显示全部楼层
最新进展,在数据错位时,开关SPI就能解决。
        SPI1->CR1&=~(1<<6);
        SPI1->CR1|=1<<6;//使能SPI

根据上面的异常波形,可以说明SPI时序或者SPI内部被干扰了,出现上面的异常时理应出现OVR(过载)错误,但是实际没有,且在异常是收发完成一次后BUSY(忙)标志位任然置1,正常时是0。

出0入0汤圆

发表于 2017-8-22 08:28:14 | 显示全部楼层
W872529868 发表于 2017-8-21 22:15
最新进展,在数据错位时,开关SPI就能解决。
        SPI1->CR1&=~(1

这个和AD70606没有关系吧?是SPI时钟错误,导致读取数据错位。

出0入0汤圆

 楼主| 发表于 2017-8-22 12:54:30 | 显示全部楼层
把GD单片机换成ST之后SPI就没问题了,但是AD7606存在被干扰时的时候数值全是0,示波器表笔接上MOSI 1:10就不会出现这个问题,但是1:1的时候就会出现。

出0入0汤圆

 楼主| 发表于 2017-8-23 20:58:14 | 显示全部楼层
感性负载(电机,继电器,电磁阀)启动的时候的尖峰干扰信号线,有什么方法消除?

出0入0汤圆

发表于 2017-8-28 16:03:05 | 显示全部楼层
如果你的问题还未解决,可在ADI论坛上参考下相关的问答
https://ezchina.analog.com/search.jspa?q=AD7606

出0入0汤圆

 楼主| 发表于 2017-9-7 22:47:00 | 显示全部楼层
再加了TVS保护之后用打火机的压电陶瓷打在运放输入+不会出现问题,但是打在运放输入-(GND),依旧会出现这个问题。

出0入0汤圆

发表于 2017-9-10 20:12:55 来自手机 | 显示全部楼层
在靠近干扰源的地方加扼流环试试
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-19 06:21

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

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