leejianzhao 发表于 2013-5-25 00:18:38

marshallemon 发表于 2013-5-24 10:31
看了LZ的设计感觉真得很强,一些设计与MX老大的手持6.5有异曲同工之妙,
另外为下LZ,
1,哪个噪声图是怎 ...

欢迎对我的设计提问题,也希望DIY成功的朋友分享一下DIY过程中的收获,我会尽力回答的,希望和广大坛友共同提高!

MX 6.5的设计非常经典,我也拜读过,基本上是用这类型Sigma-delta ADC做多用表的经典框架。我主要有下面几个区别:
1、ADC。LTC2440比我用的F350好很多,虽然2440的INL做六位半略有不足,但是胜在噪声非常低;而F350最多也就是五位半的料
2、MCU。STM32比F350的51强太多了,程序空间也大多了,因此从功能上我是远远不如的。例如,我就无法支持内存卡。不过,我原来做的是毫欧表,对ADC是有要求的,不是随便一个都可以象我现在的电路那么简单,例如常见的ADS1232、LTC2400、LTC2440都不行(有没有人知道为什么不行?),当然,增加电路也是可以实现的
3、输入衰减电路。我采用手持表的衰减方法。MX 6.5采用台表的固定100:1分压,因此10V档需要先衰减到1/100再放大10倍,导致10V档的噪声比1V档大多了,看lumex老大的测试https://bbs.38hot.net/forum.php?mod=redirect&goto=findpost&ptid=4594&pid=44343&fromuid=17757,LSB跳动比1V档大几倍。当然,我的衰减方案也有弱点:1)受模拟开关影响;2)10V和100V的输入阻抗不一样,100V不是标准的10M
4、放大。我利用F350内置的PGA,电路极其简单;MX 6.5使用运放+模拟开关实现了一个PGA
5、供电。MX 6.5由于要迁就LTC2440使用5V,而且欧姆档的恒流源需要高压,只能用开关电源把电压boost上去,这个也会引入一定的噪声。我的毫欧表不需要恒流源,也就不用高压,因此我尽量在3.3V的电压范围内实现了所有功能
6、我顺便加上了锂电池充电电路和USB-UART芯片,算是弥补一下没有存储功能吧(共地问题要小心)
7、我的省电,背光关闭的时候17mA,一节14500(5号)锂电池可以连续工作1.5~2天。当然我的功能简单

几个问题的答复

1,哪个噪声图是怎么得出来的,具体的测试步骤是啥,接入一固定电压,串口采集数据,采集多少个点或多长时间,导入excel?

通过Mini-USB连到电脑,打开超级终端(我比较喜欢用这个,当然也可以用串口助手之类的),COMx(具体多少看设备管理器),波特率115200,就可以看到测试数据输出了
https://bbs.38hot.net/data/attachment/forum/201305/18/172620w33slcoo7lyxz08c.png.thumb.jpg

再点捕获文字,这样就会把数据存在一个TXT文件


然后,打开excel(我用的是2010,其他版本的类似),把TXT里面的数据copy进去,例如放在A列,然后选中A列,点插入折线图,就能出类似的图,再略微调整一下显示即可

我的程序默认5分钟自动关机(当然可以取消自动关机),因此一般设置好就去干别的事情,等屏幕灭了关机了,再来处理数据

2,你的这些测试是在校准前做的测试,还是校准后,我记得F350的线性貌似不咋样啊。

当然是校正后测试的,因为现在我用的分压电阻是很普通的0805 1%,长稳是不行的,校正完马上测试就是这样的结果

F350的线性一般,最大15ppm,15ppm相对于2.5V基准来说,就是37.5uV,对于六位半就是37.5个LSB,对于五位半就是3.75个LSB,实际测试和Fluke 8842A最大偏差6LSB,考虑到有1LSB正负1的不确定性,噪声,校正误差,还有8842A也不一定就是完美线性,总体来说,F350的INL是基本满足手册指标的

3,关于OP接容性负载稳定那几个电阻电容的取值和理论的分析在哪本书上有讲这些的?

这个应该是经典电路了,甚至在国半版本的LMV321 datasheet的P14都有。


书的话,推荐两本,书太大传不上来,自己找吧
1)、《基于运算放大器和模拟集成电路的电路设计(第3版)》,P323有详细的计算,书里面还介绍了其他很多补偿方法
2)、小日本的《OP放大电路设计》,P62有说明。

4,关于进行10次累加均值滤波可以提高多少bit,这个理论的公式是什么?

这个我在毫欧表的帖子讲过,原理具体看附件,我专门找了个中文的
https://bbs.38hot.net/data/attachment/forum/pw/Fid_2/2_17757_0c8c01d84fb5e18.png

https://bbs.38hot.net/forum.php?mod=attachment&aid=MjA5NzE2fGRhMWUwYTI5fDEzNjk0MDg4MjN8MTc3NTd8NDA0ODQ%3D

5,问下LZ的4052的漏电流怎么测试?

其实就是测试输入阻抗,换算过去的。例如,稳压的电压(例如基准10V)分压出1V,和另外一个高位表(假设高位表的输入阻抗无穷大)一起测试这个1V,在是否接入我这个电压表看高位表的读数变化,根据分压电阻就可以计算出电压表的输入阻抗。这样测试下来,我的1V档是否接入,高位表是几乎一字不动,换算过去我的表输入阻抗就是G级了,这样漏电流就无所谓了

leejianzhao 发表于 2013-5-25 00:28:56

x131431511 发表于 2013-5-24 10:58
坐等 加强版功能完整版!

不用等了,这个电压表就是顺便做的,我不会把它变成多用表的

已经有朋友参照我的电路,改用其他ADC和MCU,扩展功能,你也可以这样。

坐而等不如起而行!

marshallemon 发表于 2013-5-25 09:26:32

leejianzhao 发表于 2013-5-25 00:18
欢迎对我的设计提问题,也希望DIY成功的朋友分享一下DIY过程中的收获,我会尽力回答的,希望和广大坛友共 ...

感谢LZ的热心回复,感谢LZ给我们带来一篇带有这么详细讲解的文章,为什么毫欧表可以使用F350,而其他的不行还请明示,另外问下关于OP的零点,极点,哪些OP适合做电压跟随,哪些不适合这些在哪本书上会有?

lllaaa 发表于 2013-5-25 09:45:06

适不适合跟随,我的理解是和噪声、单位增益稳定性、失调电压这些决定的吧。如果是交流可能还有压摆率、带宽有关吧。菜鸟等科普

lilith 发表于 2013-5-25 09:55:17

leejianzhao 发表于 2013-5-25 00:18
欢迎对我的设计提问题,也希望DIY成功的朋友分享一下DIY过程中的收获,我会尽力回答的,希望和广大坛友共 ...

我上次好像就说过,ADS1232 的话基本一致,2440 就不行,2400 更不行 {:139_295:}

x131431511 发表于 2013-5-25 20:03:16

这样啊,两个在一起多好啊!。。懒人多啊

shichen717 发表于 2013-5-25 20:14:41

marshallemon 发表于 2013-5-24 10:31
看了LZ的设计感觉真得很强,一些设计与MX老大的手持6.5有异曲同工之妙,
另外为下LZ,
1,哪个噪声图是怎 ...

噪声Vrms=en*(BW)^0.5,噪声Vpp=6.6*en*(BW)^0.5
其中,en为电压噪声系数,BW为测量带宽。
4次过采样后取平均值(最简单的数字滤波器)大致相当于BW/4,因此噪声Vrms(噪声Vpp)降低至1/2,相当于提高1bit有效分辨率ENOB(或无噪声分辨率 Noise free NOB),但并非1digit。

leejianzhao 发表于 2013-5-25 21:09:01

x131431511 发表于 2013-5-25 20:03
这样啊,两个在一起多好啊!。。懒人多啊

毫欧表和五位半电压表 二合一套件就是两个功能和在一起的,虽然切换功能还是有点麻烦

x131431511 发表于 2013-5-25 21:18:00

啥时吧代码整合一份就ko了,既然你的代码大部分相同为啥不做成像函数那样,相同段的都统一调用不是就算压缩了么

marshallemon 发表于 2013-5-25 22:10:42

LZ漏掉了我的回复了
感谢LZ的热心回复,感谢LZ给我们带来一篇带有这么详细讲解的文章,为什么毫欧表可以使用F350,而其他的不行还请明示,另外问下关于OP的零点,极点,哪些OP适合做电压跟随,哪些不适合这些在哪本书上会有?

leejianzhao 发表于 2013-5-25 23:25:05

marshallemon 发表于 2013-5-25 22:10
LZ漏掉了我的回复了
感谢LZ的热心回复,感谢LZ给我们带来一篇带有这么详细讲解的文章,为什么毫欧表可以使 ...

没有漏,今天我加班,晚上才有空,而且我写帖子一般都比较长,才写了一半……你就急了

今天不知道是不是天气不好,大家都在家DIY套件,我一直在QQ/旺旺上帮大家解决DIY过程中的问题,今天到目前为止已经成功了5个,还有1个在努力中……

leejianzhao 发表于 2013-5-26 01:21:10

本帖最后由 leejianzhao 于 2013-5-26 09:45 编辑

marshallemon 发表于 2013-5-25 09:26
感谢LZ的热心回复,感谢LZ给我们带来一篇带有这么详细讲解的文章,为什么毫欧表可以使用F350,而其他的不 ...
先回答“为什么毫欧表可以使用F350,而其他的不行”——这个好像不应该发在这个帖子:)
回顾一下比例法的原理


https://bbs.38hot.net/data/attachment/forum/pw/Fid_2/2_17757_28afef265089eda.png

https://bbs.38hot.net/data/attachment/forum/pw/Fid_2/2_17757_fdfc6097970fe1b.png

注意几点:
1、ADC的基准电压Ur0不是以地(COM)为参考的——这要求ADC的基准电压是差分的。这就把LTC2400排除了

2、测量微小电阻,一般用4线法测试,因此要求ADC的测量电压输入也是差分的。同样LTC2400也不行

3、由于要求分辨力到1微欧,需要把Rx上的电压放大,因此需要ADC内置PGA,这样就把没有PGA的LTC2440排除了
4、ADC的测量电压Urx的负端接近地电平,因此要求ADC的输入电压能到地。而ADS1232在PGA=64/128的时候,共模输入的范围是AGND+1.5V ~ AVDD-1.5V,对于3.3V供电,共模输入范围只有1.5~1.8V。lilith提出可以在Rx下面垫一个电阻,阻值和R0(基准电阻)一样,就能解决这个共模问题。不过,这样引入了一个问题:有效的基准电压变成只有一半了,等效于噪声大了一倍,即少了1 bit。最关键的是ADS1232要求Vref最小值是1.5V,如果下面垫的电阻和基准电阻一样大,那压降也是1.5V,因此Rx上只有0.3V(3.3V供电的时候),也就是说Rx最大只能测试到0.3/1.5*R0,如果基准电阻选择30欧,Rx最大就是6欧。这样量程大打折扣!


5、ADC的输入阻抗。由于ADC的Vref/Vin都会把测试电流分走一部分,分的越多误差越大。我的毫欧表专门写了一节分析输入阻抗的就是这个原因。LTC2440 DS的22页也专门写了其输入阻抗

    LTC2440在使用内部1.8M采样频率的时候,输入阻抗只有110K,DS也专门提到了如果信号源的阻抗是350欧,直接接到其输入上会引入0.44%的误差;如果信号源阻抗是2欧,引入12.6ppm的误差。LTC2440由于没有PGA,只能测比较大的电阻,但是其输入阻抗又要求只能测比较小的电阻,总之,就是两头不是人,呵呵。或者说只做一个1欧量程,分辨力10微欧,应该是可以的。有人可能会问,如果在Vref+/-和Vin+/-上都加上一个好运放,同时加个模拟开关做PGA,是不是也行呢?理论上是可以的,不过会引入不少误差,电路上也不简洁,还不如改成台表的方案,直接搭一个100mA的恒流源,差分测Rx上的压降。

最后,我们来看一下C8051F350。1、差分基准输入,合格;2、测量也是差分输入,合格;3、内置PGA,放大倍数1/2/4/8/16/64/128,及格;4、共模输入范围0~AVDD,及格,如果使用内置的PGA,在PGA=128的时候,要求高于地0.25V,因此我在Rx下面垫了一个2.7欧的R12,好像没有人发现这个小细节吧;5、输入阻抗,毫欧表的帖子里有详细的分析,这里再提一下,不用内部buffer的时候是7M,对于10欧姆级的电阻,误差小于2ppm,忽略之!

大家可以对照上面几条,看看还有哪些ADC满足。

再加上C8051F350内置个51单片机,芯片便宜容易采购,因此我最终选择了它!其实我是第一次用这个芯片,几个月前我才买了编程器和F350的开发板:)

这不是性能最好的,而是性价比最高、电路最简单的!





majin 发表于 2013-5-26 06:45:21

还没睡觉啊.......................

marshallemon 发表于 2013-5-26 14:18:42

leejianzhao 发表于 2013-5-26 01:21
先回答“为什么毫欧表可以使用F350,而其他的不行”——这个好像不应该发在这个帖子:)
回顾一下比例法 ...

谢谢老大百忙之中还能回复,说句实话从您的文章中很是能学到东西,能把手册中的一些参数应用到一个具体的设计中,从您的文章回复中可以感觉到LZ的深厚的理论基础+实战经验+乐于助人,论坛中应该多出更多您这样的人,能多出您这样的文章,这将是我们这种小白的福音

frival 发表于 2013-5-26 21:19:27

我也是昨天组装起来,经过李兄的耐心指点,能想到的的问都得到解答了,这里非常感谢,也真心佩服!
贴个图先


关于归零的,diy手册上面的图不太清晰,实际上是要这样接的,否则归零值会不稳定的;

leejianzhao 发表于 2013-5-27 00:04:35

marshallemon 发表于 2013-5-25 09:26
感谢LZ的热心回复,感谢LZ给我们带来一篇带有这么详细讲解的文章,为什么毫欧表可以使用F350,而其他的不 ...
运放的稳定性问题,不是简单的回复能说清楚了,建议几本书吧

1)、《基于运算放大器和模拟集成电路的电路设计(第3版)》
2)、小日本的《OP放大电路设计》
3)、《运算放大器权威指南(第3版)》,其实就是《Op Amps For Everyone》的中文版,英文的在TI网站可以找到



大眼晶 发表于 2013-5-27 10:59:38

本帖最后由 大眼晶 于 2013-5-27 11:05 编辑

改成电压表很简单,刷写也简单,本人对单片机不懂的,没有基准电压源,简单测下电压上张图片。原机的夹子夹元件不是好稳的容易脱落,自己原来也购了2个,夹贴面夹元件几好。

mercyau 发表于 2013-5-28 22:03:53

本帖最后由 mercyau 于 2013-5-28 23:42 编辑

leejianzhao 发表于 2013-5-27 00:04
运放的稳定性问题,不是简单的回复能说清楚了,建议几本书吧

1)、《基于运算放大器和模拟集成电路的 ...

看了前2本,收获良多,还要多看多实践。

我的电压表,简单用6位半同步了10V,100V
---这表很适合我做高斯计,----LZ已经帮我做了峰值保持,嘻嘻。感谢LZ。


另外一次测试后把电池取下洗澡,快睡觉再测,不会开机,感觉烧了,当时是凌晨1点多,迷糊了,不知原因,可能插反。
早上起床发现正极的一小段铜箔烧了。
今天跟LZ沟通了下,打算买器件包跟换,不过LZ建议接上铜箔再上电看看,
回家量了没短路,再手工接线上电,OK了。
插座不会焊,直接用线接到插座上


lilith 发表于 2013-5-28 22:42:09

leejianzhao 发表于 2013-5-21 22:21
就算9M断开也不会有任何问题,9M的限流足以抗很高的电压,我摸上去都不会有事

加一个继电器不能 ...

说个奇葩事,我昨天想把我去年底做那个“万用表”做一个相对全面的测试,以肯定和否定某些东西,结果测 100V 电压的时候一边测试一边编程(烧 ROM),没注意关掉测试源,结果因为 AVR 烧程序的时候端口电平乱跳让继电器和模拟开关不正确导通,烧掉了 10K 的输入限制流电阻果然不够看的

btw. 我用 1232 未经缓冲,比例法测的 200K 和 20K 量程电阻测试,居然比想象的好(5 位半分辨率)

leejianzhao 发表于 2013-5-28 23:38:30

mercyau 发表于 2013-5-28 22:03
看了前2本,收获良多,还要多看多实践。

我的电压表,简单用6位半同步了10V,100V


呵呵,峰值保持软件实现其实相当简单,当然,这仅仅是读数的峰值保持,不是物理上的峰值保持
程序就加了10来行,没花多少时间,反而是调整显示位置,花了点时间,最后把速度模式的显示从原来4个字符改为1个(FAST变成F),调整了几次才满意:)


leejianzhao 发表于 2013-5-29 00:07:28

lilith 发表于 2013-5-28 22:42
说个奇葩事,我昨天想把我去年底做那个“万用表”做一个相对全面的测试,以肯定和否定某些东西,结果测 1 ...

看到我的原理图上这个稳压二极管了吗?就是为了防止类似情况的,好像也没有人问



就算高压从3个10K 经过模拟开关IO口上的保护二极管,传到VA30,被Zener钳位到3.9V。假设输入高压是100V,(100+1.65-0.7-3.9)/30K=3.2mA,最后通过运放把这3.2mA送回COM端,什么东西都不会有问题!


不要小看这个稳压二极管,没有的话情况就不一样了,因为LDO一般来说是不能灌电流的(也有能灌的,例如DDR的VTT电源芯片),因此高压就通过3个10K电阻对VA30的滤波电容充电,慢慢的电压就会升高到足以烧毁芯片

lilith 发表于 2013-5-29 00:29:52

leejianzhao 发表于 2013-5-29 00:07
看到我的原理图上这个稳压二极管了吗?就是为了防止类似情况的,好像也没有人问




这不偷懒了嘛,我以前为 2400 设计的输入调理电路,是有这个稳压二极管的
https://bbs.38hot.net/thread-10118-1-1.html

后来,后来就偷懒省掉了


话说电源的电流倒灌问题,我的 Voltgen 中是这样解决的


不过实验 1232 的时候没考虑 话说我一直很想做一个这样的实验电源,不过帮我画 PCB 的 TR 说了一句“一个电源也复杂的令人发指”,所以一直没下文

wxwsj 发表于 2013-5-29 16:27:17

我是菜鸟,楼主为什么不用数码管做显示? 我们一般菜鸟需要一个精度不错4-5位的电压表,如果有人做成品估计需要的人不少,最好数码管显示比较清楚,价格不要太高,我等动手能力不行,成品电压表最好。能够使用锂电池是最大亮点。

zxg3115 发表于 2013-5-29 16:30:24

楼主有才气、、、、、、、、、、、、、、、、、赞一个!

leejianzhao 发表于 2013-5-30 00:51:20

本帖最后由 leejianzhao 于 2013-5-30 00:52 编辑

wxwsj 发表于 2013-5-29 16:27
我是菜鸟,楼主为什么不用数码管做显示? 我们一般菜鸟需要一个精度不错4-5位的电压表,如果有人做成品估计 ...
不用LED的原因:

1、功耗大。我是按手持设备设计的,电压表的工作电流:17mA(背光关闭),一节14500(5号)锂电池可以连续工作1.5~2天。LED可能吗?
2、LED显示字符能力太弱,人机界面不够友好。例如电池电量、各种状态信息无法显示。前几天还给一个朋友加了峰值保持的第二显示(电量显示左边是不是多了个读数),LED怎么搞?
https://bbs.38hot.net/data/attachment/forum/201305/28/220109n1uykbdxngkpfpfn.jpg.thumb.jpg

3、驱动LED需要很多IO口,C8051F350的IO不够。液晶我使用SPI驱动,只要3-4个脚
4、LED的体积太大,我的表位数多,10cm宽度放不下,大家都知道打样超过10*10价格就高很多


液晶的显示够清楚了,这里还有为兄弟赞这个液晶“实际效果很不错!”,https://bbs.38hot.net/forum.php?mod=redirect&goto=findpost&ptid=40484&pid=534226&fromuid=17757

matali 发表于 2013-5-31 02:31:06

毫欧表有保护功能不?怕测到有高压的线路

matali 发表于 2013-5-31 03:28:02

好马配好鞍,上个漂亮的外壳吧

leejianzhao 发表于 2013-5-31 07:50:38

matali 发表于 2013-5-31 02:31
毫欧表有保护功能不?怕测到有高压的线路

毫欧表当然有保护功能,每路的PTC、10欧、BAV99和稳压二极管就是用来保护的。最高的保护电压应该就是PTC的击穿电压,具体是多少我没有设备测试,0805的PTC的击穿电压一般来说有50-60V。

鹰熊 发表于 2013-5-31 20:16:12

我的完成了,哈哈!好好玩调零:




0.33欧电阻并联

一段焊锡丝

测一半焊锡丝

票夹镀镍钢丝

一半


chyi99 发表于 2013-6-1 12:22:56

学习支持
页: 1 2 [3] 4 5 6 7 8 9
查看完整版本: DIY一个五位半电压表——毫欧表的兄弟篇,毫欧表/五位半电压表二合一套件正式发布