lijianzhao 发表于 2013-1-28 23:42:25

DIY一个毫欧计,分辨力达到1微欧

本帖最后由 lijianzhao 于 2013-1-29 21:27 编辑

一、电阻的测量通常有电桥法,恒流法和比例法

1、电桥法



当电桥平衡的时候(即A、B两点的电位差为0),Rx=R2*R3/R1

2、恒流法
R=U/I,如果I恒定,测量电阻上的压降U,就可以算出R。这个方法是大部分台式万用表使用的方法,例如下图是Agilent E1412A里面的恒流源电路,测量电压就行了



3、比例法

这是手持万用表最常见的方法。R0作为基准电阻,用R0上的压降作为ADC的Vref,测量Rx上的压降Vin,即可算出Rx





二、为什么我用比例法?

每种方法都很经典,都可以达到很高的精度。例如lilith提到高联的DCC 电桥,分辨率能有 9 位半以上;再如Agilent 34420A纳伏 / 微欧表用的是恒流法,1欧姆档的分辨力是0.1微欧
但是不是每一个方法都适合DIY!DIY最重要的原则就是简单!

电桥法需要3个精确的电阻,而且还有一个是可变的,这个DIY几乎无法实现。
当然电桥也可以变形为有源电桥(下图仅仅是示意,这个有源电桥可不能测量微小的电阻),通过测量Uo算出Rx。不过还是需要3个精确电阻


恒流法的复杂性不用我罗嗦,看看Agilent E1412A的图就知道了(知道为什么我挑Agilent E1412A的图,因为这个表的“最简单”)。
恒流法需要的精密元件更多:电压基准,一堆的精密电阻,比较好的模拟开关、FET、运放……
而且要测量微小的电阻,测试电流不可能小,要分辨到1uOhm,至少要100mA的测试电流。除非你有Agilent 34420A那么低的噪声,才有可能用10mA分辨到0.1uOhm

因此,这些方法都排除之后,剩下了最简单的比例法。比例法只有一个精确元件——基准电阻,其他的就靠ADC了。那好办,24bit的ADC也不贵,选个带24bit的MCU,最便宜的是C8051F350,还内置PGA,放大倍数最大到128~~

原理图就很简单了,就是基本原理的翻版。不过这里用了一个磁保持继电器作为基准电阻的切换(下一个版本会取消这个继电器,贵,不好买,关键是这是毫欧表,测量到K级干啥)


锂电池供电,顺便做了个充电器,从USB充电,还有4个按键,由于IO口不够,加上有一个还要做电源键,按键搞得复杂了点


提一下精度问题,比例法唯一的一个精密元件就是基准电阻,这个东东90%的精度是由它决定的(ADC/PGA的offset等误差理论上是可以校正的,PGA增益温漂大概是0.5ppm/度),而这个电阻还是有功率的(100mA^2*30欧姆=0.3W),基准电阻的自发热比较明显,我用2W的电阻都会觉得有一点温度。我现在用的是一个2W的金属膜电阻,冷态开机到热稳定,测量值会下降几十微欧(想想为什么是下降?)。因此电阻的温度系数是(短稳)精度的最大敌人。节后,考虑换成VHP-4或者 VPR221Z。

说了这么多,看看效果吧








下回再说,毫欧计有什么用,敬请期待……

lijianzhao 发表于 2013-1-29 00:20:50

沙发自己坐
挖坑{:lol:}

lijianzhao 发表于 2013-1-29 00:30:10

本帖最后由 lijianzhao 于 2013-1-29 00:34 编辑

上PCB图



这个板子很小,大概5*10cm,顺便拼了个STM8S的最小系统http://www.amobbs.com/thread-5513228-1-1.html,不过大家好像没有什么兴趣,其实有了它,洞洞板验证很方便{:lol:}

我还写了个Bootloader,这样STM8S103也能IAP了


ST-LINK直接编程也行

JQ_Lin 发表于 2013-1-29 01:17:08

等待欣赏

kyughanum 发表于 2013-1-29 03:18:22

我是来学习的!

alengend 发表于 2013-1-29 06:52:30

分辨率足够的前提下,精度主要取决于另外一只电阻吧?精密电阻会不会很贵?

jlhgold 发表于 2013-1-29 07:23:14

月底流量不足,等电脑上看,先收藏了!

kation122 发表于 2013-1-29 07:44:50

精彩,高手之作。

lijianzhao 发表于 2013-1-29 07:58:49

alengend 发表于 2013-1-29 06:52 static/image/common/back.gif
分辨率足够的前提下,精度主要取决于另外一只电阻吧?精密电阻会不会很贵? ...

"节后,考虑换成VHP-4或者 VPR221Z"
TCR=2ppm


TCR=0.05ppm~~(还有一个不带Z的VPR221,2ppm)


这两个就是很好的电阻,功率都有几W,用在这里比较合适。VHP-4的据说老化好一些,VPR221Z的温漂好一些

二手的价格大概都是60RMB,新的……算了

如果是DIY的话,还有一个土方法:由于金属膜电阻是正温漂,因此可以并联一个负温漂的碳膜电阻上去。我试过并联个200-510欧姆左右的碳膜电阻,有点效果


junjiedz 发表于 2013-1-29 08:05:24

学习一下!~

woshigeshuai 发表于 2013-1-29 08:07:11

利害,谢谢LZ分享,LZ大好人。

Eastnorth 发表于 2013-1-29 08:14:32

欣赏牛作。
lz出成品或套件吗,手上正缺一个微电阻测试仪。

hackerboygn 发表于 2013-1-29 08:28:20

期待下一版

dory_m 发表于 2013-1-29 08:35:48

学习,学习!!!

xinjihua 发表于 2013-1-29 10:52:48

学习,学习!!!

lijianzhao 发表于 2013-1-29 21:41:34

Eastnorth 发表于 2013-1-29 08:14 static/image/common/back.gif
欣赏牛作。
lz出成品或套件吗,手上正缺一个微电阻测试仪。

被个小厂的液晶屏害惨了,实物和datasheet的管脚不一样,DS多个NC脚,实物没有,后面的信号往前挪了一格,结果我的板子要割一根线和飞一根线。

因此这一版不太拿得出手。

出套件的话,由于C8051F不是很常见,大家愿意买个USB编程器(记得好像只要50RMB)吗?如果愿意,我可以考虑出套件,公开所有资料/源码

newbier 发表于 2013-1-29 21:51:34

做的还不错,如果作为毕业设计应该是合格了。作为实际应用,还差的远。

lijianzhao 发表于 2013-1-29 21:56:00

newbier 发表于 2013-1-29 21:51 static/image/common/back.gif
做的还不错,如果作为毕业设计应该是合格了。作为实际应用,还差的远。

敬请指教,还差了什么

我毕业好多年了{:sad:}

newbier 发表于 2013-1-29 22:03:02

lijianzhao 发表于 2013-1-29 21:56 static/image/common/back.gif
敬请指教,还差了什么

我毕业好多年了

测量范围太小,最少到100k,最好能到M,1毫欧姆测量精度最少0.1%,其他量程最好能到0.05%,测量端保护电路,加入rs232、usb等通讯接口,测试速度一秒最少20次。

flyunlimit 发表于 2013-1-29 22:15:27

请问楼主,这个应该是可以使用长测量线的吧?实际流过被测电阻的电流是多少?

maxims 发表于 2013-1-29 22:44:22

{:3_46:}好东西

lijianzhao 发表于 2013-1-29 22:52:22

本帖最后由 lijianzhao 于 2013-1-29 23:07 编辑

newbier 发表于 2013-1-29 22:03 static/image/common/back.gif
测量范围太小,最少到100k,最好能到M,1毫欧姆测量精度最少0.1%,其他量程最好能到0.05%,测量端保护电 ...

我做的是毫欧计,量程做到这么大干啥?你看看市场上卖的毫欧计量程是多少?分辨力是多少?精度是多少?

TH2513 常州同惠 200mΩ/2/20/200Ω/2KΩ最高分辨率 100μΩ0.3%读数+1个字 测量速度(次/秒) 2价格850
苏州科力华 YF508A 200mΩ/2 Ω/20 Ω/200 Ω/2K Ω/20K Ω   最高分辨率 100μΩ ±(0.3%+1d)   读取速率:2.5次/秒价格 1000
台湾Termars TM-508A 200mΩ/2 Ω/20 Ω/200 Ω/2K Ω/20K Ω   最高分辨率 100μΩ ±(0.3%+1d)   读取速率:2.5次/秒 价格1050
维希特VC480C+   20mΩ/200mΩ/2/20/200Ω/2KΩ最高分辨率 0.01 mΩ精度没找到,不过3 1/2位的, 3次/s,价格450

以上这几个千元档次的,分辨力只有 0.01 mΩ ~0.1mOhm,200欧以上的量程和普通万用表没有什么区别,要来何用?,速率2.5·3次

往上,就是台式的了,价格2千起,一般最高也就20K,分辨力到 0.001 mΩ
再往上,安捷伦34420A纳伏 / 微欧表,量程1欧~1M,分辨力到 0.0001 mΩ ,通信口有,速率也超过20次,但是,价格……

其实我的设计里,包括了通信接口——串口,原理图左下角引出来了
有两个基准电阻挡位:33欧姆 for 200mOhm/2Ohm/20Ohm,3.3KOhm for 20/200/2K,基于和万用表重复,而且磁保持继电器不好买,下一版打算去掉,之后只有200mOhm/2Ohm/20Ohm这3个挡位
至于精度问题,我也说了,基本靠基准电阻,就算是用现在的金属膜电阻(实测TCR大概65ppm),精度达到0.3%也是可以的,如果换更好的,到0.1%完全没有问题。如果用我前面提到的极品电阻,做到0.01%都轻松——这就是这个架构的魅力!

分辨力,我可以做到0.001mOhm,大概跳动3个数,比千元级别的好1-2个数量级

输入保护电路其实也是有的,MCU右边的一堆二极管就是,用100欧电阻大概可以保护到输入20V不损坏,改成1K的话,到100V应该没有问题,不过可能会引入些误差

速率的话,我也计划做2档:Fast:10次/秒,分辨力0.01mOhm;Slow:0.8次/s,分辨力0.001mOhm

看来我还是再写几个帖子解释一下我的原理图,别看就这么一点东西,其实里面东东很多,不是人人都能看明白的


lijianzhao 发表于 2013-1-29 22:59:47

flyunlimit 发表于 2013-1-29 22:15 static/image/common/back.gif
请问楼主,这个应该是可以使用长测量线的吧?实际流过被测电阻的电流是多少? ...

测试电流大概是100mA

理论上,用4线测量的话,长度关系不大。不过线长了,干扰就大。1微欧*100mA=0.1uV,很容易干扰的,就算滤波

我没有试过很长,只有50cm

marshallemon 发表于 2013-1-29 23:02:41

等待看最后的精度测试图

lijianzhao 发表于 2013-1-29 23:22:00

上一张器件面的图片,大家看看这个东东多简单{:lol:}

免调试,焊好就OK

把测试夹端接,校正零点,再接个已知阻值的电阻校正增益,搞定

lllaaa 发表于 2013-1-29 23:26:49

支持支持。

这几天在北京出差。刚看到你的帖子。前天实现了一下那天和你说的电荷转移法。编码比较简单。触摸的时候数据变换挺大的。回深圳做个板子再试一试{:lol:}

fy024 发表于 2013-1-29 23:26:56

lijianzhao 发表于 2013-1-29 21:41 static/image/common/back.gif
被个小厂的液晶屏害惨了,实物和datasheet的管脚不一样,DS多个NC脚,实物没有,后面的信号往前挪了一格 ...

期待出套件,出套件的话,我现在就先预定一套~~~~

lijianzhao 发表于 2013-1-29 23:37:35

lllaaa 发表于 2013-1-29 23:26 static/image/common/back.gif
支持支持。

这几天在北京出差。刚看到你的帖子。前天实现了一下那天和你说的电荷转移法。编码比较简单。触 ...

触摸能隔多少距离?如果中间隔了一层塑料或者玻璃,行吗?

lllaaa 发表于 2013-1-29 23:53:18

lijianzhao 发表于 2013-1-29 23:37 static/image/common/back.gif
触摸能隔多少距离?如果中间隔了一层塑料或者玻璃,行吗?

还不知道。我这个是出门前临时焊了个瓷片,没有大面积焊盘可以触摸。调试的时候就用手直接摸的引脚,隔层纸试了一下也行。回去做个板子实际测一下,看看能不能隔一层pcb

wx85105157 发表于 2013-1-30 02:30:48

这个芯片有多少位的输出有效位啊?

llppd 发表于 2013-1-30 08:09:36

支持出套件,支持楼主

lijianzhao 发表于 2013-1-30 08:09:38

SWQS 发表于 2013-1-29 23:53 static/image/common/back.gif
太原始。如果这样就可以达到这种精度的话厂家就不用出了。这样做的精度只是浮云。 ...

我在22楼列举的几个千元档次的毫欧计,其实和我这个原理都是比例法

要说原始,电桥法看起来更原始,但是,目前精度和分辨里做得最高的都是电桥

shinehjx 发表于 2013-1-30 08:22:51

很小巧啊,支持

zhanglong 发表于 2013-1-30 09:14:45

楼主研究挺透的,支持~

usk5yenj4id04dm 发表于 2013-1-30 09:23:10

不错...........

Sullivan 发表于 2013-1-30 09:35:14

那个说毫欧表应该上兆的是不是脑子坏掉了?还品头论足什么毕业设计水平,你先看懂别人在做什么再发表意见!

albert_w 发表于 2013-1-30 09:41:58

newbier 发表于 2013-1-29 22:03 static/image/common/back.gif
测量范围太小,最少到100k,最好能到M,1毫欧姆测量精度最少0.1%,其他量程最好能到0.05%,测量端保护电 ...

颇有产品经理的潜质...{:titter:}

zyyn123 发表于 2013-1-30 10:14:11

进来学习学习{:smile:}

Eastnorth 发表于 2013-1-30 10:23:21

再次支持一下楼主。
另,有没有用过采样来提高精度。

wx85105157 发表于 2013-1-30 10:30:15

lijianzhao 发表于 2013-1-29 22:52 static/image/common/back.gif
我做的是毫欧计,量程做到这么大干啥?你看看市场上卖的毫欧计量程是多少?分辨力是多少?精度是多少?

...

我表示除了四线法的几个电阻没懂以外其他地方都清楚了。昨晚查了资料大概知道100欧电阻的用法了。{:biggrin:}

lijianzhao 发表于 2013-1-30 11:20:31

wx85105157 发表于 2013-1-30 10:30
我表示除了四线法的几个电阻没懂以外其他地方都清楚了。昨晚查了资料大概知道100欧电阻的用法了。{:biggr ...

注意到我的vdda上有个3.9V的稳压二极管没?想想用来干啥?

lilith 发表于 2013-1-30 12:00:41

newbier 发表于 2013-1-29 22:03 static/image/common/back.gif
测量范围太小,最少到100k,最好能到M,1毫欧姆测量精度最少0.1%,其他量程最好能到0.05%,测量端保护电 ...

楼主直接用 ADC 的差分 REF/Vin 做比例测量,受限于 ADC 的输入阻抗太低,对于毫欧姆/欧姆级电阻来说影响不大,但对于数千欧姆电阻来说影响就很大了,兆欧级嘿嘿 {:funk:}





三位半万用表可以用比例法直接到兆欧,那是因为受阻看影响的分辨率超过表的分辨率;楼主用的是 24bit ADC,理论分辨率达到 1/16777216,想都不要想,虽然估计无噪声分辨率一个集成在单片机内的 ADC 恐怖很难达到 23bit 以上吧

lilith 发表于 2013-1-30 12:04:38

Eastnorth 发表于 2013-1-30 10:23 static/image/common/back.gif
再次支持一下楼主。
另,有没有用过采样来提高精度。

对于楼主的 24bit ADC 来说,继续过采样(提高分辨率)意义恐怕不大,因为一般商品 ADC 的无噪声分辨率,能做到 25bit 就很厉害了,而且此时速度已经非常低,你看前面还有人要求 >20r/s 呢,貌似 >24bit 的无噪声分辨率的话,非商品独立单片 ADC 也很难做到吧;而且在这种微小电阻测量上,楼主的 ADC 分辨考恐怕早就超过精度了。

lilith 发表于 2013-1-30 12:10:07

lijianzhao 发表于 2013-1-29 07:58 static/image/common/back.gif
"节后,考虑换成VHP-4或者 VPR221Z"
TCR=2ppm



Vishay 那些带 Z 的金属箔据说未必那么靠谱 {:sweat:} 水分很大。相对于塑封的 VPR,VHP 可能长期稳定性好一点,但温度系数大一点点。另外,在这个尺度上想用金属膜+碳膜补偿实现“零”温飘估计很难 {:funk:}


++++++++++++++++
出套件的话,由于C8051F不是很常见,


所以为何不用很常见的单片机比如 AVR,加上廉价 ADC 比如我用的 ADS1232 呢 {:lol:}



llssr 发表于 2013-1-30 12:27:36

lijianzhao 发表于 2013-1-29 21:41 static/image/common/back.gif
被个小厂的液晶屏害惨了,实物和datasheet的管脚不一样,DS多个NC脚,实物没有,后面的信号往前挪了一格 ...

做好了的话有必要预定一套

lijianzhao 发表于 2013-1-30 12:37:29

lilith 发表于 2013-1-30 12:10
Vishay 那些带 Z 的金属箔据说未必那么靠谱水分很大。相对于塑封的 VPR,VHP 可能长期稳定性 ...

带Z的有人实测过大概0.1Xppm。

ads1232我也有,性能比c8051的好多了,不过前提是正品!

用c8051的原因一是方案简单,二是够用

其实我用什么单片机都无所谓,如果用ads1232的话,我可能用stm8/stm32

lijianzhao 发表于 2013-1-30 12:51:25

lilith 发表于 2013-1-30 12:04
对于楼主的 24bit ADC 来说,继续过采样(提高分辨率)意义恐怕不大,因为一般商品 ADC 的无噪声分辨率, ...

大家对所谓的24bit adc有太多误解了,c8051f的指标其实相当的差,PGA=128时,enob只有17.44bit,noise-free的就只有17.44-2.72=14.72bit,是不是相当震惊!?
晚上有空的话,再详细说是怎么达到这样的分辩率的

clizhi 发表于 2013-1-30 13:07:03

学习学习

wx85105157 发表于 2013-1-30 13:08:56

lijianzhao 发表于 2013-1-30 12:51 static/image/common/back.gif
大家对所谓的24bit adc有太多误解了,c8051f的指标其实相当的差,PGA=128时,enob只有17.44bit,noise-fr ...

这个理解,我看的是CS1180S ,最高有效位是19bit,不过这个时候输出速率只有9.6Hz了。

chengtina 发表于 2013-1-30 13:19:41

这个DIY玩玩,还是可以的

kation122 发表于 2013-1-30 13:23:26

Sullivan 发表于 2013-1-30 09:35
那个说毫欧表应该上兆的是不是脑子坏掉了?还品头论足什么毕业设计水平,你先看懂别人在做什么再发表意见! ...

赞同,都说了是毫欧表,难道买个千分尺还想要一千米的量程,没人会拿油标卡尺去测量足球场的长宽的。

475627406 发表于 2013-1-30 13:28:03

0.01% 难呀
内部pga,没办法保证精度吧
ad的非线性

475627406 发表于 2013-1-30 13:32:20

0.01% 难呀
内部pga,这是个不可控因素吧
还有ad的非线性,ad输入阻抗

wx85105157 发表于 2013-1-30 13:43:16

lijianzhao 发表于 2013-1-30 11:20 static/image/common/back.gif
注意到我的vdda上有个3.9V的稳压二极管没?想想用来干啥?

我觉得应该是为了防止不小心接到有源负载上比如接到锂电池上或者更高的电压上,导致芯片损坏。
外接到电源上,VREF+通过R1和比较电阻接到比较高的电压上,通过嵌位二极管BAV99接到VA30,VA30与VD30是通过0欧电阻相连的,这样这两点的电位被抬升,稳压管将提高的电压钳制在3.9V,保护芯片。

请指正。

测电感或者变压器内阻的时候会不会出现反向电压?在继电器切换比较的电阻时候改变了电流,有一个瞬间的高压的脉冲?
移除夹具的时候电感放电会出现一个反向高压的脉冲,稳压管是用来吸收这个的吧?

Eastnorth 发表于 2013-1-30 13:53:45

lijianzhao 发表于 2013-1-30 12:51 static/image/common/back.gif
大家对所谓的24bit adc有太多误解了,c8051f的指标其实相当的差,PGA=128时,enob只有17.44bit,noise-fr ...

如果换成stm8/32 或mega16 + 24bit-ADC 会更有吸引力,毕竟8051F的用户还是少一些。编译环境以及下载器不那么普及。

lijianzhao 发表于 2013-1-30 14:01:42

lilith 发表于 2013-1-30 12:10
Vishay 那些带 Z 的金属箔据说未必那么靠谱水分很大。相对于塑封的 VPR,VHP 可能长期稳定性 ...

刚刚又仔看了看ADS1232的ds,发现不能用啊,common-mode input range太小,AGND+1.5到AVDD-1.5,它的pga在这里只能当摆设:(

lijianzhao 发表于 2013-1-30 14:38:06

wx85105157 发表于 2013-1-30 13:43
我觉得应该是为了防止不小心接到有源负载上比如接到锂电池上或者更高的电压上,导致芯片损坏。
外接到电 ...

基本正确。加稳压二极管的主要原因是LDO不能吸电流,要提供一个路径把灌入的电流泻放。bav99能过150ma,因此外部最大能加150ma*100欧+0.7V+3.9V=19.6V,因此我说20V左右。不过这时候,100欧电阻超功率了,只能抗一会儿,下个版本会把功率加大。

加大这个电阻,防护能力加强了,但引入误差。一般ADC的输入失调电流为零点几个nA,乖以这个100欧电阻就是几十nV,而1uOhm*100mA=100nV,误差还好吧。加到1K,就会有几个微欧的误差了

wx85105157 发表于 2013-1-30 14:42:46

lijianzhao 发表于 2013-1-30 14:38 static/image/common/back.gif
基本正确。加稳压二极管的主要原因是LDO不能吸电流,要提供一个路径把灌入的电流泻放。bav99能过150ma, ...

LDO反向并联二极管。。。还能给电池充电。。。


还有这个时候U1也承受着反向的电压啊。U1没加保护呢。

lijianzhao 发表于 2013-1-30 15:14:10

wx85105157 发表于 2013-1-30 14:42
LDO反向并联二极管。。。还能给电池充电。。。




U1问题不大,这是PMOS的LDO,内部本来就有一个寄生的二极管:)。而且只有3.9V,除非电池只有3.2V,这个二极管是不会导通的

lilith 发表于 2013-1-30 17:02:14

lijianzhao 发表于 2013-1-30 14:01 static/image/common/back.gif
刚刚又仔看了看ADS1232的ds,发现不能用啊,common-mode input range太小,AGND+1.5到AVDD-1.5,它的pga ...

那不是问题,首先如果你不使用内部 PGA,那么输入范围不受这个限制,我的应用中,并不用内部 PGA,而使用外部差分放大器和模拟开关“模拟”一个比例法测阻,不过电路复杂且需要单片机参与程控和比例计算,比例计算是浮点计算,消耗大量程序空间和单片机计算时间



但是你的应用情况比较特殊,被测电阻 Rx 上的电压很低、电电流很大,为了最大限度简化电路和程序,这样做就可以了,用 Rs 垫一下 {:lol:} 反正 Rx 上的待测电压低,无所谓



lijianzhao 发表于 2013-1-30 17:27:34

lilith 发表于 2013-1-30 17:02:14 static/image/common/back.gif


你的第一个图不就是压控恒流源吗,基本和aglient的一样。搞这么复杂,精度上不去。
第二个图的方法我也知道,其实我现在就用了,R12就是干这个的,有人发现了吗?
这个方法如果只做200毫欧量程是可能的,但是会有人说没有实用价值:(

wt-3333 发表于 2013-1-30 17:35:49

开拓了眼界谢谢楼主分享

lilith 发表于 2013-1-30 18:25:16

lijianzhao 发表于 2013-1-30 17:27 static/image/common/back.gif
你的第一个图不就是压控恒流源吗,基本和aglient的一样。搞这么复杂,精度上不去。
第二个图的方法我也知 ...

对的,其实具体说我的应用是“电压电流源表”,既然可以产生一个指定的电流,又内置一个表,那么当然也就能根据恒流测阻法换算出一个待测电阻 {:lol:}所以不是我把一个毫欧表做得和安捷伦一样复杂,而是它本来就是这个东西,毫欧表是客串的 {:funk:}不过,差分输入放大器后面的 6 只模拟开关,就是我的“模拟比例测阻”电路了,它就是用来解决电路中的比例电阻误差导致精度下降的问题的 {:shy:} 模拟开关依次在内部参考电压、内部参考电阻、外部待测电阻之间来回切换(其实还有一个调零步骤),通过单片机进行比例换算来纠正各种误差,类似于我的电压源本身的自校准过程:
http://www.amobbs.com/thread-5517797-1-1.html

http://www.amobbs.com/thread-5483204-1-1.html

lijianzhao 发表于 2013-1-30 19:48:50

lilith 发表于 2013-1-30 18:25 static/image/common/back.gif
对的,其实具体说我的应用是“电压电流源表”,既然可以产生一个指定的电流,又内置一个表,那么当然也就 ...

我那个去了,你的板子上这么多奢侈器件,这么多高档的仪表,可怜我只有个FLUKE 8842A,板上出个USB接口都省了(只留了3个针)。下个版本把UART-USB bridge加上~~

可能是我做惯产品了,老是考虑满足要求下成本尽量低,充分发挥元器件的功能/性能,这个习惯也带到DIY上了{:shy:}

孤独_求败 发表于 2013-1-30 20:06:57

mark...mark...

woodlynn 发表于 2013-1-30 20:23:58

学习一下。感谢 lz.现在在回家的路上用手机看.回去再细细的看。

lijianzhao 发表于 2013-1-30 20:29:40

lilith 发表于 2013-1-30 17:02 static/image/common/back.gif
那不是问题,首先如果你不使用内部 PGA,那么输入范围不受这个限制,我的应用中,并不用内部 PGA,而使用 ...

对了,提醒一句,你的输出部分没有一点保护措施,

建议模仿Agilent的电路加一下吧,不要这么高防护(1000V)的话,可以减少2-3节

dafeng123 发表于 2013-1-30 20:35:37

学习了,等楼主出套件。

jetli 发表于 2013-1-30 21:22:48

强贴。。就是图是在太小看不清{:sweat:}

lijianzhao 发表于 2013-1-30 21:46:20

本帖最后由 lijianzhao 于 2013-1-30 21:48 编辑

以前挖的坑不能编辑,这里继续吧

三、怎么得到1微欧分辨率的?

   很多人对24bit ADC的精度是有误解的,24bit只是说它能输出24bit,有多少bit是有效的?



    这个表格是C8051F350的Effective Number of Bits(ENOB)数据,可见在输出10次/秒,PGA=128时,enob只有17.44bit,但是这个还不是故事的全部,这只是说这些bit有效,但是数字在跳的,你不会想看到测试的结果老是在跳吧,如果要求99.99%的概率数字不跳,还要减去log2(6.6)=2.72bit (具体原理请看附件吧),那就不跳了,这个叫做Noise-Free Bits。那么noise-free的就只有17.44-2.72=14.72bit,是不是很恐怖,一个24bit的ADC怎么实际还没有15bit啊?!~



   表面上看,如果基于33欧的基准电阻,要得到1微欧分辨率,ADC的分辨率要到log2(33/1e-6)=24.98bit,这怎么搞啊?呵呵,PGA来帮忙了,放大了128倍,也就是说多了7bit,14.72+7=21.72<24.98,还是不够。再想想,这个是10次/秒的情况啊,我们不需要这么快,1秒有一个读数就行了(那位要20次/秒的不要喷我)。另外一个原理——过采样来帮忙了(详细的看附件吧,我专门找了个中文的)


24.98-21.72=3.26,那过采样4^3.26=92倍不就行了?不过,92/10=9.2秒一个读数,会被人骂死的。我们真的要最后一位完全不跳吗?34401的电阻档也跳啊,因此我用12倍,增加了log(12)/log(4)=1.79bit
因此还有3.26-1.79=1.47bit会跳,折合到10进制就是2^1.47=2.94个数在跳,我的实际测试在温度稳定后(唉,金属膜的TCR有点大),测试夹短接时果然只有3-4个数在跳~~{:victory:}


    有些ADC直接给出的是噪声参数(我更喜欢这个),其实和ENOB这两种方法是等效的。F350也给出了这个表格




   可见在输出10次/秒,PGA=128时,noise有0.11uV,我们要测到1uOhm,0.1uV/1uOhm=100mA,知道为什么我的测试电流是100mA了吧,同样还是有Noise-Free的6.6问题,计算同上

fickle 发表于 2013-1-31 00:01:21

恩,做的不错。

fickle 发表于 2013-1-31 00:20:37

本帖最后由 fickle 于 2013-1-31 00:35 编辑

“另外一个原理——过采样来帮忙了”,一直以为过采样并不能提高测量的精度。因此,很怀疑楼主解释的测量1微偶的能力。可是,实测1微欧也不现实。怎么办呢?

楼主测量2毫欧电阻使用的是100mA电流,对吧?那么使用10mA、甚至1mA电流测量2毫欧电阻,看看结果如何?

如果测量结果有1%精度,呵呵,you are my HERO!

paul_guo 发表于 2013-1-31 00:28:24

搞的不错..呵.

lijianzhao 发表于 2013-1-31 08:03:12

fickle 发表于 2013-1-31 00:20 static/image/common/back.gif
“另外一个原理——过采样来帮忙了”,一直以为过采样并不能提高测量的精度。因此,很怀疑楼主解释的测量1 ...

有没有把《an018 用过采样和求均值提高ADC分辨率》重头到尾全部看一遍,包括附录?看完了还不相信,找个板子去实践

就算我不用过采样,见前面计算,分辨1微欧差3.26bit,也就是说2^3.26=9.58个数跳,换句话说,10微欧是不跳的!!

因此,测试电流100mA的时候,ADC纯的分辨率是0.01毫欧,过采样到1微欧
同理可得,测试电流10mA的时候,是0.1毫欧,过采样到0.01毫欧
不过,如果测试电流到1mA,可能会有问题了:ADC的输入阻抗!

今晚有空的话,把测试电流改为10mA试试,我相信我的分析

guohw 发表于 2013-1-31 14:27:51

期待出套件,出套件的话,我现在就先预定一套~~~~

sync765 发表于 2013-1-31 14:44:08

真的是好文
学习了

sync765 发表于 2013-1-31 14:44:30

真的是好文
学习了

daicp 发表于 2013-1-31 15:07:16

老同学,先支持,再看{:lol:}

ngyg12 发表于 2013-1-31 15:16:25

感觉很牛啊...

daicp 发表于 2013-1-31 15:33:12

lijianzhao 发表于 2013-1-30 21:46 static/image/common/back.gif
以前挖的坑不能编辑,这里继续吧

三、怎么得到1微欧分辨率的?


这里很精彩{:victory:}

sweet1985 发表于 2013-1-31 16:19:34

记录一下一下

leifeng 发表于 2013-1-31 17:03:11

做模拟的都是牛人

STM32_Study 发表于 2013-1-31 17:23:07

lijianzhao 发表于 2013-1-30 20:29 static/image/common/back.gif
对了,提醒一句,你的输出部分没有一点保护措施,

建议模仿Agilent的电路加一下吧,不要这么高防护(100 ...

请问这个图的出处是安捷伦的哪个表?

能具体分析一下这个电路吗?非常感谢

lijianzhao 发表于 2013-1-31 19:05:16

本帖最后由 lijianzhao 于 2013-1-31 19:08 编辑

STM32_Study 发表于 2013-1-31 17:23 static/image/common/back.gif
请问这个图的出处是安捷伦的哪个表?

能具体分析一下这个电路吗?非常感谢 ...

Agilent E1412A的,其实这个图和34401的完全一样,不过这个上面标注了器件型号

当OHM_CURRENT误接到正高压时,CR202反向截止,正高压不会进入内部,这个很好理解。

精彩的是误接到负高压时,Q221接成的二极管把Q204的基极电位钳位在-0.7V,因此Q203的发射极钳位在2*0.7-0.7=0.7V,不会让负高压进入内部,压降都降在PNP管上了,因此这个PNP管要用高耐压的,34401实际用的是 2N6520,Vceo=-350V,但是34401的防护规格是1000V,因此用了4级。而且为了降低正常时候PNP的饱和压降,用了达林顿结构。

这个防护电流的漏电流主要有接成二极管的Q221决定,34401实际使用2N4117A,漏电流可低至 1pA,而欧姆档的最小测试电流是500nA,差了5-6个数量级,误差几乎可以忽略了。其实还是有影响的,500nA时34401的标称精度下降到0.015%了,其他挡位是0.002%

下面是只用一个管子的接入负高压时仿真图,相当清楚了吧。(器件型号是随便选的,示意而已不要当真)


lijianzhao 发表于 2013-1-31 21:41:25

本帖最后由 lijianzhao 于 2013-1-31 21:42 编辑

fickle 发表于 2013-1-31 00:20 static/image/common/back.gif
“另外一个原理——过采样来帮忙了”,一直以为过采样并不能提高测量的精度。因此,很怀疑楼主解释的测量1 ...

应fickle的要求,改了个基准电阻,327.52欧,这样测量电流就略小于10mA
程序仅仅改了Rref,因此还是显示到0.001毫欧,但是是没有意义的,因为倒数第二位(0.01毫欧)大约有4-5个数在跳
也请不要和以前的测试做比较,因为电阻的管脚就大约有4-5毫欧,测试的位置不可能一样

验明正身:


2毫欧,加个按键帽以示区别




测一个超过200毫欧的,这是500毫欧

fickle 发表于 2013-1-31 21:49:21

呵呵,刚上来,就看到你的回帖。

fickle 发表于 2013-1-31 22:02:06

lijianzhao 发表于 2013-1-31 21:41 static/image/common/back.gif
应fickle的要求,改了个基准电阻,327.52欧,这样测量电流就略小于10mA
程序仅仅改了Rref,因此还是显示 ...

恩,不错。

Eastnorth 发表于 2013-1-31 22:22:47

lijianzhao 发表于 2013-1-31 21:41 static/image/common/back.gif
应fickle的要求,改了个基准电阻,327.52欧,这样测量电流就略小于10mA
程序仅仅改了Rref,因此还是显示 ...

才10ma,已经很不错了。

fickle 发表于 2013-1-31 22:38:06

lijianzhao 发表于 2013-1-31 21:41 static/image/common/back.gif
应fickle的要求,改了个基准电阻,327.52欧,这样测量电流就略小于10mA
程序仅仅改了Rref,因此还是显示 ...

小电流(100mA)能够到达1微欧分辨力,重点是adc直接采样得到,第一感觉,吹牛,呵呵。

1、一般来讲,uV级别信号的测量需要辅助其他技术,比如斩波、同步检测等技术得以实现。现在看到adc直接得到,不可信。

2、所谓1uohm的分辨率,就是测量1uohm电阻得到0.5 - 1.4uohm之间的显示值。可是往往这么小的电阻很难获得,怎么办呢?

3、换个思路,如果测量2mohm电阻,达到0.1%以上的精度,那么以为有1uohm的分辨力。

4、呵呵,昨天第一眼看到测量2mohm电阻,得到1.997,那么(2-1.997)/2 = 0.15%。大于0.1%,即不可能得到1uohm的分辨率。

5、今天,降低了测量电流10倍,测量2mohm电阻,得到2.041,(2-2.041)/2 = 2.05%,相当于昨天的0.205%指标。同样也不可能得到1uohm的分辨力。

lijianzhao 发表于 2013-1-31 23:49:17

fickle 发表于 2013-1-31 22:38 static/image/common/back.gif
小电流(100mA)能够到达1微欧分辨力,重点是adc直接采样得到,第一感觉,吹牛,呵呵。

1、一般来讲,uV ...

呵呵,欢迎拍砖。纯技术探讨~~

1、一般来讲,uV级别信号的测量需要辅助其他技术,比如斩波、同步检测等技术得以实现。现在看到adc直接得到,不可信。


uV不用你说的这么夸张,5 1/2的台表就可以分辨到0.1uV,例如我的8842A,6 1/2的34401也行
Agilent 34420A就是直接测的,可信不?10mA分辨到0.1微欧。我的方法简单粗暴,10mA只能到10微欧



2、所谓1uohm的分辨率,就是测量1uohm电阻得到0.5 - 1.4uohm之间的显示值。可是往往这么小的电阻很难获得,怎么办呢?


确实没有办法得到这样的标准电阻,那来个土办法——粗铜线怎么样?

零点


全长

一半吧

再一半

再一半……我实在握不住了


以上读数都是最后一个数跳2-3个而已


3、换个思路,如果测量2mohm电阻,达到0.1%以上的精度,那么以为有1uohm的分辨力。


这个2mOhm电阻不是标准电阻,我从某个电源上拆的,精度5%,TCR=300ppm,标称值岂能当真?


4、呵呵,昨天第一眼看到测量2mohm电阻,得到1.997,那么(2-1.997)/2 = 0.15%。大于0.1%,即不可能得到1uohm的分辨率。


就算这个2mOhm电阻是标准电阻,精度和分辨率没有任何联系。精度差不等于分辨率低
http://www.amobbs.com/thread-5517839-1-1.html
lilith在24楼提到,“楼主要求的精度很高,100mA 怕是做不来,分辨率毕竟不等于精度,我有几台分辨率也不算低的表,精度一塌糊涂,基本上就是当笑话看的”
你看看他的表吧

34420A 1Ohm档的精度指标 ± (% 读数 +   % 量程) 0.0015+.0002,你认为可以到0.1微欧吗?0.002%量程,就是2微欧~~



5、今天,降低了测量电流10倍,测量2mohm电阻,得到2.041,(2-2.041)/2 = 2.05%,相当于昨天的0.205%指标。同样也不可能得到1uohm的分辨力。


同3和4

fickle 发表于 2013-2-1 00:46:04

lijianzhao 发表于 2013-1-31 23:49 static/image/common/back.gif
呵呵,欢迎拍砖。纯技术探讨~~

1、一般来讲,uV级别信号的测量需要辅助其他技术,比如斩波、同步检测 ...

“这个2mOhm电阻不是标准电阻,我从某个电源上拆的,精度5%,TCR=300ppm,标称值岂能当真?”

--- 呵呵,原来是5%的电阻。要知道这样,昨天就可以判断不可能有1u ohm分辨力。

--- 原以为这个电阻是0.1%电阻,因此才想看看1%精度如何。

azi1974 发表于 2013-2-1 00:59:00

支持出套件,咱预定!

fickle 发表于 2013-2-1 01:05:43

“34420A 1Ohm档的精度指标 ± (% 读数 +   % 量程) 0.0015+.0002,你认为可以到0.1微欧吗?0.002%量程,就是2微欧~~”

--- 很讨厌这么多零的东东。

--- 假如使用这个表的测量2m ohm,那么读数应该是1.998 - 2.002 m ohm 之间变化。

-- 而这个表的分辨力才2 u ohm,呵呵,你的表可比这个34420A指标高哟。

fickle 发表于 2013-2-1 01:07:54

“确实没有办法得到这样的标准电阻,那来个土办法——粗铜线怎么样?”

---- 这个#¥%%#

fickle 发表于 2013-2-1 01:09:57

“uV不用你说的这么夸张,5 1/2的台表就可以分辨到0.1uV,例如我的8842A,6 1/2的34401也行
Agilent 34420A就是直接测的,可信不?10mA分辨到0.1微欧。我的方法简单粗暴,10mA只能到10微欧”

--- 拆开那个表,里边都比你的这个复杂吧?你的意思你的表比这些表还好?

lijianzhao 发表于 2013-2-1 10:22:26

fickle 发表于 2013-2-1 00:46 static/image/common/back.gif
“这个2mOhm电阻不是标准电阻,我从某个电源上拆的,精度5%,TCR=300ppm,标称值岂能当真?”

--- 呵呵 ...

被测物的精度和仪表的分辨率有什么关系呢?
难道我拿个2欧5%的电阻给34401测,测出1.9970,能推理出34401的100欧档没有0.1毫欧的分辨率?

wallacer 发表于 2013-2-1 10:28:15

很好的资料啊,学习了!{:victory:}

lijianzhao 发表于 2013-2-1 10:37:59

fickle 发表于 2013-2-1 01:05 static/image/common/back.gif
“34420A 1Ohm档的精度指标 ± (% 读数 +   % 量程) 0.0015+.0002,你认为可以到0.1微欧吗?0.002%量程, ...

34420的分辨率是0.1微欧,因此它测2毫欧,可能的读数应该是2.0020~1.9979毫欧

你又把分辨力和精度混为一谈了

我从来没有说比34420强,它10mA分辨到0.1微欧,我100mA才分辨到1微欧,两者之间差了两个数量级

lijianzhao 发表于 2013-2-1 10:53:29

fickle 发表于 2013-2-1 01:07 static/image/common/back.gif
“确实没有办法得到这样的标准电阻,那来个土办法——粗铜线怎么样?”

---- 这个#¥%%#


大家都知道,毫欧级的电阻,如果不是4线的,精度不可能有1%。例如我测试用的100毫欧金属膜电阻,它的管腿就有4~5个毫欧,电阻的本体大概96毫欧。
有经验的人,第一眼就应该发现我这个2毫欧电阻根本不精密

这个粗铜线测试,应该能充分说明我的分辨力了吧。
元芳,你怎么看?

lilith 发表于 2013-2-1 15:38:31

本帖最后由 lilith 于 2013-2-1 15:45 编辑

fickle 发表于 2013-1-31 22:38 static/image/common/back.gif
小电流(100mA)能够到达1微欧分辨力,重点是adc直接采样得到,第一感觉,吹牛,呵呵。

1、一般来讲,uV ...

、一般来讲,uV级别信号的测量需要辅助其他技术,比如斩波、同步检测等技术得以实现。现在看到adc直接得到,不可信。

++++++++++++++++++


这里有一个速度精度(分辨率)积的问题,积分式、sigma-delta ADC 对噪声有比较好的抑制,对于 uV 级别直流电压信号来说,可以通过牺牲速度的方式将巨大的低频噪声平均掉而获得高分辨率,当然只是能分辨出来而已;但是,对于亚 uV(百 nV)级信号这样还是不够的,所以一般万用表都能分辨 uV 级直流电压信号,但对 nV 还是无能为力(eg. HP 3457A 在 100plc 积分速度下,本底噪声有接近 200nVpp),因此纳伏表通常通过斩波放大方式,将直流信号变为高频交流信号以避开低频噪声。楼主的设计如果最高分辨率为 1e2 nV,那么在牺牲速度的前提下,可以不使用斩波放大,以普通直流放大器(貌似是 ADC 内置的)和牺牲 ADC 速度的方式得到。


下图为一个常见的 24bit ADC,Ti ADS1232 的手册上的速度和噪声的关系参数,可见在 10r/s 的速度下,ADS1232 具有 420nVrms 的本底噪声,如果设计分辨率为 100nV,那么自己再用数字滤波器处理一下,把速度降低到 1/8 甚至 1/16 是可能的;如果要求更进一步,片内的 x64、x128 PGA 提供更低的本底噪声:G=128 的时候,10r/s 速度下为 17nVrms,这意味着对 20~30nV 的信号变化可以做出正确响应,不过片内 PGA 是不是斩波放大器就不好说了,很可能是 {:lol:} 但对楼主来说,他确实只是简单通过一个单片 ADC(甚至是集成了 ADC 的单片机)获得这样的分辨率了,因为片内 PGA 如何实现,24bit 分辨率如何实现,楼主不需要关心




页: [1] 2 3
查看完整版本: DIY一个毫欧计,分辨力达到1微欧