d__xin 发表于 2017-3-3 14:50:02

求助:AD7799双极模式,第17位经常误差1个字问题。

本帖最后由 d__xin 于 2017-3-4 09:15 编辑

如题,电源电压5V,基准2.5V,双极性输入,第17位经常会误差1个字。

低位误差倒是比较小,除了第17位的1个字误差,准确度倒是挺不错的。

第17位的误差实在是没规律,要是找到规律倒也能修正过来,现在是规律都找不到。

已经折腾3天了,求大神解救啊。


PS.刚才对比测试数据,发现那位误差很像阶梯状的误差。{:sweat:}



类似这样,测试条件有限,我测试的信号最小只能10MV步进而且信号误差有1-2MV,但信号是比较稳定的,

当信号比较小时错误数据表现出超前。当信号比较大时数据表现出滞后。{:sweat:}

理论上这种阶梯式的误差不是应该出现在最低位么?我这个怎么跑到高位去了{:mad:}

d__xin 发表于 2017-3-13 15:47:54

终于找到问题了

原来是读取数据后数据转换时,没有做强制类型转换就直接移位了,导致偶尔会数据出错{:dizzy:}

大意了。

现在数据只在最低4位跳动,有效数据有符号19位,无符号20位,很稳定哈。

flamma 发表于 2017-3-3 15:01:44

电源噪声,什么信号,AD7799的GAIN,Update Rate都不说怎么判断

d__xin 发表于 2017-3-3 15:05:10

flamma 发表于 2017-3-3 15:01
电源噪声,什么信号,AD7799的GAIN,Update Rate都不说怎么判断

增益是1,误差和Update Rate没有关系,各种速度全试过了,误差依然是这样。

而且改动增益,试过1、2、4倍增益,转换后数据误差也是在第17位。

sunshulin 发表于 2017-3-3 15:22:53

不会是你的驱动程序出问题了吧!

d__xin 发表于 2017-3-3 15:28:25

本帖最后由 d__xin 于 2017-3-3 15:29 编辑

sunshulin 发表于 2017-3-3 15:22
不会是你的驱动程序出问题了吧!

驱动有问题的可能性比较小,各种模式参数通道调节都对,就是转换出来的数据时不时的有问题。

而且人为去除那个误差数据也是对的,人为把误差去掉后,输入从0到正负2.4V,步长10mV测试准确性也还可以。

tongdayusu 发表于 2017-3-3 15:39:19

仅17位的不对? 这不科学啊。 还是 稳定的数据是16位,后面的是乱的?

hushaoxin 发表于 2017-3-3 15:52:54

这几天也在用这货,太准了,300uV都可以测量得很好

d__xin 发表于 2017-3-3 16:11:42

tongdayusu 发表于 2017-3-3 15:39
仅17位的不对? 这不科学啊。 还是 稳定的数据是16位,后面的是乱的?

是啊,好奇怪,最后面3-4位跳得有些严重,除了第17位其他位都还好,只是17位,有时是对的有时不对{:cry:}

d__xin 发表于 2017-3-3 16:14:37

hushaoxin 发表于 2017-3-3 15:52
这几天也在用这货,太准了,300uV都可以测量得很好

是啊,这货太准了,就是我这用得太纠结了,误差0x10000。还完全没规律去不掉{:cry:}

tongdayusu 发表于 2017-3-3 16:17:34

不是程序其他位置有操作 DIN 输入口的地方吧?

d__xin 发表于 2017-3-3 16:32:08

tongdayusu 发表于 2017-3-3 16:17
不是程序其他位置有操作 DIN 输入口的地方吧?

我查查程序,理论上这个可能性是挺大的。

not_at_all 发表于 2017-3-3 18:21:46

是有符号转换成无符号过程出问题吗?   

20061002838 发表于 2017-3-3 19:06:49

不会是7798 7799弄混了吧,检查一下ID寄存器

aduecho 发表于 2017-3-3 19:55:09

这个芯片有16位和24位的,不会是买到打磨的吧

ibmx311 发表于 2017-3-3 23:18:12

前端采用ADA4522缓冲,基准采用LM399再经过LT5400分压,接口插入光耦隔离,随便18位纹丝不动

d__xin 发表于 2017-3-4 08:42:21

not_at_all 发表于 2017-3-3 18:21
是有符号转换成无符号过程出问题吗?

不是符号位问题,数据读出来就不对了,符号处理验证过了没有问题。

d__xin 发表于 2017-3-4 08:47:31

20061002838 发表于 2017-3-3 19:06
不会是7798 7799弄混了吧,检查一下ID寄存器

ID读出来了,是9,和手册上是对应的。

d__xin 发表于 2017-3-4 08:48:24

aduecho 发表于 2017-3-3 19:55
这个芯片有16位和24位的,不会是买到打磨的吧

{:funk:} 有这种事。。。。。。。

d__xin 发表于 2017-3-4 08:57:01

本帖最后由 d__xin 于 2017-3-4 09:17 编辑

ibmx311 发表于 2017-3-3 23:18
前端采用ADA4522缓冲,基准采用LM399再经过LT5400分压,接口插入光耦隔离,随便18位纹丝不动
...

我没有用缓冲信号直接分压过来,基准用REF5025。如果不算那位错误的话,数据可以稳定到19位。现在就是数据读取出来后误差0x10000.

有时候比正常值大0x10000,有时候小0x10000.有时候是正确的。正确数据占一半左右,另一半的数据不是大就是小。而且这位错误完全没有发现里面有规律。{:mad:}


PS.
刚才对比测试数据,发现那位误差很像阶梯状的误差。

类似这样,测试条件有限,我测试的信号最小只能10MV步进而且信号误差有1-2MV,但信号是比较稳定的,

当信号比较小时错误数据表现出超前。当信号比较大时数据表现出滞后。

理论上这种阶梯式的误差不是应该出现在最低位么?我这个怎么跑到高位去了

河图洛书 发表于 2017-3-4 09:10:51

麻烦问下楼主电源电压5V,还有2.5v基准是用什么LDO芯片产生的啊,我用stm32ADC采集跳动很大

Semiconductor 发表于 2017-3-4 09:12:19

d__xin 发表于 2017-3-4 08:48
有这种事。。。。。。。

我以前调试的时候,通道3死活调不出来,后来打电话到北京求技术支持,人家先问我哪里买的片子。后面告诉我到贸泽买两片试试,从贸泽买回来直接焊上就正常了。

Semiconductor 发表于 2017-3-4 09:14:28

河图洛书 发表于 2017-3-4 09:10
麻烦问下楼主电源电压5V,还有2.5v基准是用什么LDO芯片产生的啊,我用stm32ADC采集跳动很大 ...

基准用ldo?白瞎了这adc!

d__xin 发表于 2017-3-4 09:21:27

Semiconductor 发表于 2017-3-4 09:12
我以前调试的时候,通道3死活调不出来,后来打电话到北京求技术支持,人家先问我哪里买的片子。后面告诉 ...

{:sweat:} 我赶快定几片来试试。

d__xin 发表于 2017-3-4 09:24:43

河图洛书 发表于 2017-3-4 09:10
麻烦问下楼主电源电压5V,还有2.5v基准是用什么LDO芯片产生的啊,我用stm32ADC采集跳动很大 ...

基准用LDO。。。。。。不带这么玩的啊

not_at_all 发表于 2017-3-4 17:50:48

d__xin 发表于 2017-3-4 08:42
不是符号位问题,数据读出来就不对了,符号处理验证过了没有问题。

第18~23位 的数据怎样?如果输入极性变化时会怎样一直保持为0?一直保持为1?或者是正极性为0,负极性为1?
输入极性变化时,第23位会不会随着输入极性变化而变化?

我这样问的目地是确定AD输出的数据是18位有符号数据还是24位有符号数据

wzavr 发表于 2017-3-4 18:38:07

关注一下。

d__xin 发表于 2017-3-6 09:22:03

not_at_all 发表于 2017-3-4 17:50
第18~23位 的数据怎样?如果输入极性变化时会怎样一直保持为0?一直保持为1?或者是正极性为0,负 ...

输入和REF短接时数据大部分为0x800001~0x800003,数据出错时为7EFFFE~7EFFFC

数据正常的情况下:输入>REF时最高符号位为1,输入<REF时最高符号位为0.

感觉上符号位是没有问题的,出错的可能还是在数值本身上。





mcucow 发表于 2017-3-6 09:29:14

是测试输出错了?还是输入的那个时刻的状态就是那样的?

d__xin 发表于 2017-3-6 09:33:23

mcucow 发表于 2017-3-6 09:29
是测试输出错了?还是输入的那个时刻的状态就是那样的?

这个也有可能,但是用示波器一直看着呢,没看到明显波动和干扰。

示波器是优利德的。。。。。。对这货也是极不信任啊。。。。但是手头上只有这货

huangqi412 发表于 2017-3-6 17:06:37

河图洛书 发表于 2017-3-4 09:10
麻烦问下楼主电源电压5V,还有2.5v基准是用什么LDO芯片产生的啊,我用stm32ADC采集跳动很大 ...

这也太省了……

xyz543 发表于 2017-3-10 11:20:45

这颗我们一般都只取前 16 位来使用。另外给楼主个建议,上电顺序错误这颗会在低于 7 摄氏度完全不动作!
最后我们是一直找到美国原厂设计这颗的 R/D 才问出来的。

xly 发表于 2017-3-10 11:26:38

16位AD基准最起码要用到10PPM的

d__xin 发表于 2017-3-10 11:35:10

xyz543 发表于 2017-3-10 11:20
这颗我们一般都只取前 16 位来使用。另外给楼主个建议,上电顺序错误这颗会在低于 7 摄氏度完全不动作!
最 ...

可能我没有表达清楚,是第17位会出错,也就是数据会误差0x10000,不是最低的几位误差。

上电顺序也会有影响??这个看来也要测试一下了。

xyz543 发表于 2017-3-10 12:20:57

本帖最后由 xyz543 于 2017-3-10 12:22 编辑

d__xin 发表于 2017-3-10 11:35
可能我没有表达清楚,是第17位会出错,也就是数据会误差0x10000,不是最低的几位误差。

上电顺序也会有 ...

这已是早五六年前的事了,产品都经过 Chamber 测试过,但没想到整批产线设备送到南韩三星验收时出了问题。
我们只好一直在 Chamber 中重复测试,发生问题时那 AD7799 完全不会动,只会停留在最后一次的取样数据,一直重复的下 Reset 命令也无法运作,只得等到温度回生到 7 度以上就完全正常了。
当时所有人都将焦点集中在我写的程序很是执疑,我也感到很无奈,只好自力救济找原因,后来发现这 AD 7799 在整机的 Reset 发生之前 150 ms 就当机了,这也排除了我背这黑锅,之后是那些搞硬件的去找 ADI 的 FAE 来解决,最后一直找到了原厂 R/D,他们说有发这个的 Exter Sheet 告知是有这问题,我们是翻遍了全世界也找不到照份文件,我们是估计若真有这份文件的话那谁还会用这颗啊?!
反正这 AD7799 整件事就是这样,硬件他们加大了一个相位供电的电容解决了这事,三星他们也验收通过了,没我的事就天下太平了,哈!~ {:lol:}

程科 发表于 2017-3-10 12:34:55

建议再问问ADI的工程师吧 https://ezchina.analog.com/content?query=AD7799&filterID=all~objecttype~thread%5Bquestions%5D

zhan_li 发表于 2017-3-11 19:25:20

最近也在玩这个东西。不过我比较悲催,程序还没调通。大神们奉献下撒

281313005 发表于 2017-3-13 16:06:11

正准备用这货呢,做个记号

lzyr 发表于 2017-3-13 16:20:21

能稳定到17位 做的很牛x了

zhang0352505 发表于 2017-3-16 15:21:40

哈哈,你想想也知道高位跳肯定不是ADC的问题,只可能是程序的问题,再说了17位,你不觉得很特殊吗?刚好是比16位高一位

d__xin 发表于 2017-3-16 15:30:44

zhang0352505 发表于 2017-3-16 15:21
哈哈,你想想也知道高位跳肯定不是ADC的问题,只可能是程序的问题,再说了17位,你不觉得很特殊吗?刚好是 ...

唉~~~太大意了。

关键是一半时候是对的,出错完全没规律{:sweat:}

zhang0352505 发表于 2017-3-16 15:37:48

d__xin 发表于 2017-3-16 15:30
唉~~~太大意了。

关键是一半时候是对的,出错完全没规律

恩。。其实我这也是马后炮,哈哈~~~

SXXDL 发表于 2022-5-26 19:41:19

xyz543 发表于 2017-3-10 11:20
这颗我们一般都只取前 16 位来使用。另外给楼主个建议,上电顺序错误这颗会在低于 7 摄氏度完全不动作!
最 ...
(引用自31楼)

你好,你说的上电顺序正确的应该是怎样的呢?相位电容是指哪个电容?加到多大了?谢谢!

xyz543 发表于 2022-5-27 01:00:48

SXXDL 发表于 2022-5-26 19:41
你好,你说的上电顺序正确的应该是怎样的呢?相位电容是指哪个电容?加到多大了?谢谢! ...
(引用自43楼)

原本这设备是第一批要送到南韩三星产线的设备,那设备内的这些颗 A/D 若我没记错的话它貌应应是双电源的。

而相位电容后来加到多大那是专搞开关电源同事去修改的工作,因我不是搞开关电源等硬件的工作也实在是很抱歉。

当年我们研究了一些时间实在不理解才辗转问到了美原厂原始设计的这位工程师才知道,也就是上电后首先负电源到达这颗 A/D 时要比正电源到达这颗 A/D 的时序要再慢上了一些即会发生,即是于 7 摄氏度以上使用貌似状况都很正常,但室温到了 7 或 7 摄氏度再重新给上电时这颗 A/D,它就永远就仅会传那个首次取样量测到的数值,永远也不会给出再次去取样到第二次或第二次以后的数值。
且于这低于 7 摄氏度发生问题时若再次下达 Reset 的命令也亦然不会转为正常。

啊!...我这样解说个人觉得应是够详细的了吧?!若还是不理解的话,我想我会即刻用我的头去撞墙,当然也请大伙别来拦住我也别抓着我,谢谢了。

eliterxzgxu 发表于 2022-5-27 08:27:21

学习了,mark一下

SXXDL 发表于 2022-5-27 23:32:53

xyz543 发表于 2022-5-27 01:00
原本这设备是第一批要送到南韩三星产线的设备,那设备内的这些颗 A/D 若我没记错的话它貌应应是双电源的 ...
(引用自44楼)

{:titter:}
这个料没看到是双电源,输入是差分的,看来我得拦着你了
页: [1]
查看完整版本: 求助:AD7799双极模式,第17位经常误差1个字问题。