wangdanzhoudan 发表于 2014-10-23 00:25:36

4-20mA 0-5V ADS1118 测量出现跳动

如图所示,是我的测量采集电路,我用的AD芯片是ADS1118,没有加电压跟随器,但是我测量4-20mA的时候,我R1取20欧,R2取249欧的时候,能精确到0.01mA,当我把R1取大之后,0.01mA就有误差了,是不是我把电阻取大了,噪声也就相应的放大了的原因,很不解,当我把R1取20欧,把R2取到800欧姆,也是不能精确到0.01mA,这个更加不解,哪位大哥能给我一个好的解释,指出以下这个方案的缺点在哪里,非常不解,谢谢了!

cnxh 发表于 2014-10-23 04:57:00

我现在做的是用单片机计算偏差,如输入4ma时记录ad值,然后输入到最大记录ad值,计算实际值时,ad值-4ma时的值*偏差倍数,可以消除不同版的取样电阻的误差

semonpic 发表于 2014-10-23 07:28:21

注意ad的输入阻抗是否够大,你这个应该是信号的输出电阻和ad的输入电阻的问题

semonpic 发表于 2014-10-23 07:39:31

本帖最后由 semonpic 于 2014-10-23 08:24 编辑

发重复了

YaoHui 发表于 2014-10-23 07:51:14

很多单片机最后几位本来就是不可靠的。跳一点点也正常。

alias 发表于 2014-10-23 08:35:03

你使用R1=20欧时,20mA时R1上有0.4V,ADS1118 的满度是0.512V,这时的输入阻抗是100M欧。当R1增大,ADS1118 的满度是1.024V,这时的输入阻抗是3M欧,每一步进所代表的值也倍增,分辩度下降。

当R2=800欧,R1=20欧,电流源要驱动 0.02*820 = 16.4V,误差大了亦大有可能。

mo959 发表于 2014-10-23 09:15:43

{:lol:}      

wangdanzhoudan 发表于 2014-10-23 11:07:32

alias 发表于 2014-10-23 08:35
你使用R1=20欧时,20mA时R1上有0.4V,ADS1118 的满度是0.512V,这时的输入阻抗是100M欧。当R1增大,ADS1118 ...

你好,这位大哥,但是我每一次配置的时候都是配置成了4.096的满量程,也就是最小分辨率是0.125mv,输入的阻抗难道会随着输入信号的改变而改变吗?应该是设置了量程,输入阻抗就不变了吧。求大哥帮忙解释清楚一点

wangdanzhoudan 发表于 2014-10-23 11:08:08

mo959 发表于 2014-10-23 09:15


{:lol:} 大哥见笑了,帮小弟分析一下呗

wangdanzhoudan 发表于 2014-10-23 11:08:51

YaoHui 发表于 2014-10-23 07:51
很多单片机最后几位本来就是不可靠的。跳一点点也正常。

这个和单片机没啥关系吧

ZXF_CUG 发表于 2014-10-23 11:20:04

你的电流源信号电压是多大?电阻用800+20欧姆的时候,如果输入20mA电流,最少需要16.4V的电压,能提供吗?

wangdanzhoudan 发表于 2014-10-23 11:30:03

ZXF_CUG 发表于 2014-10-23 11:20
你的电流源信号电压是多大?电阻用800+20欧姆的时候,如果输入20mA电流,最少需要16.4V的电压,能提供吗? ...

我是用横河的校验仪输入的,可以的,应该是没问题!

wangdanzhoudan 发表于 2014-10-23 11:32:51

我个人觉得可能是传感器输出有阻抗,AD的输入阻抗不够造成的,准备在前端加一个跟随器,电压的话就加个的电压跟随器,电流4-20mA不知道怎么来加,大家能否提供一下前端的这两个电路图给小弟,谢谢了,我手上只有LM358运算放大器!

ZXF_CUG 发表于 2014-10-23 11:40:32

那可能是AD的非线性误差影响,在整个满量程范围内精度不一样~

alias 发表于 2014-10-23 11:43:00

FS +/- 4.096V由零伏至4.096V有15位元,每一步是 4096mV/32768 = 0.125mV 没错。但 0.01mA改变在20欧电阻上产生的电压改变只是0.01mA*20=0.2mV,和ADC每一步进相近。

请说说为何不选0.512V满度?

wangdanzhoudan 发表于 2014-10-23 11:48:20

alias 发表于 2014-10-23 11:43
FS +/- 4.096V由零伏至4.096V有15位元,每一步是 4096mV/32768 = 0.125mV 没错。但 0.01mA改变在20欧电阻 ...

{:lol:} 我也想过选这个量程,主要是刚开始我把20一取大就有误差,我就以为是把误差也拉大了,就不敢再把分辨率调低了。是出于这样的原因,但是我还是没理解大哥的意思

wangdanzhoudan 发表于 2014-10-23 11:52:07

alias 发表于 2014-10-23 11:43
FS +/- 4.096V由零伏至4.096V有15位元,每一步是 4096mV/32768 = 0.125mV 没错。但 0.01mA改变在20欧电阻 ...

有点没有理解大哥说的“和ADC每一步进相近”这句话的意思

alias 发表于 2014-10-23 11:57:26

4.096V 满度15位来量最高只有0.4V的讯号,是不是白白浪费了很多的位元?

alias 发表于 2014-10-23 12:04:31

本帖最后由 alias 于 2014-10-23 12:06 编辑

wangdanzhoudan 发表于 2014-10-23 11:52
有点没有理解大哥说的“和ADC每一步进相近”这句话的意思

ADC输出每增加一步是0.125mV,所以不能对输入的0.2mV改变作出准确的代表,即加一是太小,加二却太多。

wangdanzhoudan 发表于 2014-10-23 14:16:02

alias 发表于 2014-10-23 11:57
4.096V 满度15位来量最高只有0.4V的讯号,是不是白白浪费了很多的位元?

是的,浪费了很多位元!

wangdanzhoudan 发表于 2014-10-23 14:20:07

alias 发表于 2014-10-23 12:04
ADC输出每增加一步是0.125mV,所以不能对输入的0.2mV改变作出准确的代表,即加一是太小,加二却太多。 ...

嗯,大哥讲的很详细,小弟理解了!这个确实没注意到,谢谢大哥指点,我去改善一下配置,再测试一下效果如何!

wangdanzhoudan 发表于 2014-10-23 14:55:42

alias 发表于 2014-10-23 12:04
ADC输出每增加一步是0.125mV,所以不能对输入的0.2mV改变作出准确的代表,即加一是太小,加二却太多。 ...

根据大哥的意思,修改成了满量程为0.512mV,测量出来的效果好很多,很稳定,查看了一下AD所读到的位数,16位只有一个位在跳动,但是误差还是有点大,估计得要用校验算法来解决了,但是解决之前我想知道,为何越靠近满量程,也就是AD测量端的电压越大,误差也就越大

wangdanzhoudan 发表于 2014-10-23 14:56:32

wangdanzhoudan 发表于 2014-10-23 14:55
根据大哥的意思,修改成了满量程为0.512mV,测量出来的效果好很多,很稳定,查看了一下AD所读到的位数,16 ...

这是输入端为10mA的情况,稳定但是有误差,误差还不小!

华仔 发表于 2014-10-23 15:44:18

4-20ma 的设备因为手供电电压限制,是有最大输出负载的,一般输出负载为小于750欧姆。

alias 发表于 2014-10-23 17:15:33

wangdanzhoudan 发表于 2014-10-23 14:56
这是输入端为10mA的情况,稳定但是有误差,误差还不小!

有误差相信是由於R1的误差,ADS1118内部参考电压误差,PGA增益误差,或你外部电流源10mA的误差等等所引至, 所以电路需要标定,最主要是稳定。

wangdanzhoudan 发表于 2014-10-23 19:27:50

alias 发表于 2014-10-23 17:15
有误差相信是由於R1的误差,ADS1118内部参考电压误差,PGA增益误差,或你外部电流源10mA的误差等等所引至 ...

大哥,标定怎么理解,{:lol:} 我太菜了,这些专业术语不懂,大哥再指点一下小弟

wangdanzhoudan 发表于 2014-10-23 19:32:20

华仔 发表于 2014-10-23 15:44
4-20ma 的设备因为手供电电压限制,是有最大输出负载的,一般输出负载为小于750欧姆。 ...

我等下把249欧电阻改成0欧试试看误差怎么样,应该误差要好很多!

aureole 发表于 2014-10-23 19:44:57

我用18bitadc 做的 4~20mA测量模块;adc短期只跳一个字;精度可以做到 0.005; 分辨率0.001

iygniqiew 发表于 2014-10-23 20:15:38

怎么看不到图

john78 发表于 2014-10-23 20:29:26

aureole 发表于 2014-10-23 19:44
我用18bitadc 做的 4~20mA测量模块;adc短期只跳一个字;精度可以做到 0.005; 分辨率0.001 ...

哪个型号?伸手党候着

alias 发表于 2014-10-23 20:29:44

wangdanzhoudan 发表于 2014-10-23 19:27
大哥,标定怎么理解, 我太菜了,这些专业术语不懂,大哥再指点一下小弟 ...

标定就是用准确的4~20mA电流,得出多个ADC实测转换数据结果,然後计算出线性斜度及补偿方程式,用在单片机内对任何ADC结果来计算出未知电流。

aureole 发表于 2014-10-23 20:35:23

john78 发表于 2014-10-23 20:29
哪个型号?伸手党候着

跟 ADC 型号没关系。 我用的adc还没有你的好;没有你的贵。 ads111x 暑假我也用过,很容易做到稳定。只是需要模拟功底。原理图、pcb要花心思

wangdanzhoudan 发表于 2014-10-23 22:30:10

aureole 发表于 2014-10-23 19:44
我用18bitadc 做的 4~20mA测量模块;adc短期只跳一个字;精度可以做到 0.005; 分辨率0.001 ...

大哥,你的AD是哪个型号的?

wangdanzhoudan 发表于 2014-10-23 23:09:27

iygniqiew 发表于 2014-10-23 20:15
怎么看不到图

双击一下就可以看到了{:smile:}

wangdanzhoudan 发表于 2014-10-23 23:10:27

alias 发表于 2014-10-23 20:29
标定就是用准确的4~20mA电流,得出多个ADC实测转换数据结果,然後计算出线性斜度及补偿方程式,用在单片 ...

{:lol:} 也就是校准了,好吧,明天做一个算法,谢谢大哥了{:handshake:}

lfchen 发表于 2014-10-31 10:38:41

注意输入信号的共模电压范围。
页: [1]
查看完整版本: 4-20mA 0-5V ADS1118 测量出现跳动