alias 发表于 2014-11-19 00:42:39

【原创】PIC 高分辨度电容表改进

【原创】PIC 高分辨度电容表改进

说明:这PIC高分辨度电容表是 RomanBlack 的作品,很多商家都依他的电路设计出了套件,电路设计及软件原创是他。我原创的部份是找出电容表失调的原因及改善方法。

RomanBlack High res cap meter <http://www.romanblack.com/onesec/CapMeter.htm> 看不了的坛友请看本文末的截图。

先看以下原设计电路:


起因:有个别爱好者跟著原设计电路而制作出的电容表,都发现存在不线性,这尤其是在1pF至1000pF的读数,出现5%的误差,调好了低档误差又令至高档出现误差。当向原作者反映时,原作者只以『很多人制作了都说十分准来回覆』而不去跟进。我也制作了一个,亦出现同样问题,所以会有此帖出现。

分析:(见下图)这是一个非常简单可靠的比较器振荡电路,由比较器的输出令比较器的输入门限电压由 1/3Vcc ~ 2/3Vcc 变化,而使电容充/放电。如果电阻不变,充放电上下限电压不变,那充电时间就和电容大小成正比例。当比较器翻转速度低时这是对的。但比较器翻转速度高时,问题便来了。


我首先接了示波器,观看电容两端电压变化,发觉电容值在大与小时上下限电平是不一样的。电容值小时(比较器翻转速度=200KHz)电平上下限会较电容值大时高了些。为此我更作了仿真(见下图),发现问题所在:由於比较器翻转存在一定的延迟,令上下限电压超出了1/3Vcc和2/3Vcc,致充电时间和电容大小不成比例。


原本这不线性是可以人为的在软件内修正,但原作者并不愿意公开源码,所以只能用硬件手段改善。改善的方法是在前端使用一个超快的比较器 LT1016(见下图),改良後不线性失调现象消除。这是个设计得非常好的电路+软件,所测电容值和使用0.5%电桥是一样的,而分辨度更是小数後两位,测0.5pF也是扛扛的。



原作者的 Pic16F628A Firmware(HEX):

我对它的反汇编:
作者用的时间转换电容值常数,是手动存於源码中数处,我亦把它用一个常数(PConst_H,PConst_L)定义取代,有需要更改时只要改一处便好了。

原创者 RomanBlack 网站截图 :

jack_yu 发表于 2014-11-19 01:06:32

第一次沙发。谢谢分享。

wistarky 发表于 2014-11-19 01:27:56

高手,谢谢分享。

wsm80828 发表于 2014-11-19 06:34:15

牛人 分析到位

sunshulin 发表于 2014-11-19 07:50:35

不错谢谢分享

wangweigang0 发表于 2014-11-19 07:56:36

谢谢分享,少改进些能不能做lcr呢

江湖菜鸟 发表于 2014-11-19 08:03:58

做成LCR最好了

ZYBing 发表于 2014-11-19 08:06:31

谢谢分享!

skylly3 发表于 2014-11-19 08:11:23

江湖菜鸟 发表于 2014-11-19 08:03
做成LCR最好了

可以做LCF, 参考我以前的帖子, http://www.amobbs.com/thread-5529225-1-1.html

cjt5132 发表于 2014-11-19 08:48:08

好专业               

zwjiang8212 发表于 2014-11-19 09:02:06

经典、专业,都是牛人

LVmcu 发表于 2014-11-19 09:05:10

PIC电容表-标记下,谢谢楼主分享

TrulyZhu 发表于 2014-11-19 09:21:19

强帖留名

pic_flash 发表于 2014-11-19 09:46:05

RomanBlack 是个牛人,在很久以前就有关注他了, 他还有很多很好的设计理论, 很值得看的。。

楼主也很牛。。可能楼主可以email 他,告诉他你的改造, 或许他肯改源码, 或给你源码也说不定。。

R88 发表于 2014-11-19 10:00:06

向楼主学习。。
把CT增大,使整体频率下降不知道行不行。。正反馈那个5pF有什么用,不会影响么?
映像中比较器电压越高延时越慢,393用9V供电,能有改善么?

lisingch 发表于 2014-11-19 10:03:01

谢谢楼主分享!

wblqx 发表于 2014-11-19 10:06:39

很好的资料。

zljcat3721 发表于 2014-11-19 10:14:11

高手,发现问题,解决问题,还有解决问题的过程,很好的学习资料

fujianhua 发表于 2014-11-19 10:24:54

谢谢,学习了!!

daleda 发表于 2014-11-19 10:26:58

不错的改进。

wzavr 发表于 2014-11-19 10:35:20

分析透彻,讲解易懂

alias 发表于 2014-11-19 15:22:27

R88 发表于 2014-11-19 10:00
向楼主学习。。
把CT增大,使整体频率下降不知道行不行。。正反馈那个5pF有什么用,不会影响么?
映像中比 ...

>>把CT增大,使整体频率下降不知道行不行。

可以,例如把CT增大十倍,但由於软件是计算CT周期时间,最高电容可量则由原先的50uF下降十倍至5uF,解决方法是把PIC时钟由16MHz减低十倍至1.6MHz。最可行的方法是CT加大至4倍,比较器频率=200KHz/4=50KHz,及使用4MHz晶振。但50KHz时比较器延迟影响也未能完全消除。

>>正反馈那个5pF有什么用,不会影响么?

猜想是因反相器翻转也要时间,在74HC04输出未及改变时令跳变加速。

>>393用9V供电,能有改善么?

可见以下仿真,情况改善不大。


xiaohuzi 发表于 2014-11-19 17:43:17

楼主仿真用的是 LTSpice吗?
那个 393.sub, time_switch.lib是从哪里来的?

暂时发现LTSpice的不足:
标准库里的反相器输出只有1V,需要用到反相器的,我都是用两个脉冲电源,将相位错开,呵呵。
没有类似以前 EWB那种,可以在仿真时更改电阻值,或者打开/关闭某个开关、按钮。。

alias 发表于 2014-11-19 20:55:58

xiaohuzi 发表于 2014-11-19 17:43
楼主仿真用的是 LTSpice吗?
那个 393.sub, time_switch.lib是从哪里来的?



>>那个 393.sub, time_switch.lib是从哪里来的?

网上别人用的。你要用请下附件。

>>标准库里的反相器输出只有1V,

在 A1 上用鼠标右点,在弹出的 Component Attribute Editor 的 "Value" 行内输入 Vhigh=x,x 为你所须电压。看下图:


bobo89 发表于 2014-11-19 21:21:14

谢谢分享!

marshallemon 发表于 2014-11-19 22:14:20

我仿真了一下,貌似只能测<1uF的电阻?

alias 发表于 2014-11-19 22:36:18

marshallemon 发表于 2014-11-19 22:14
我仿真了一下,貌似只能测

原因不明。

我制作的量47uF电容没问题。读数是 47.065uF,居然有小数後三个位。

lingfei 发表于 2014-11-19 23:08:21

受教了!谢谢

R88 发表于 2014-11-20 09:28:21

alias 发表于 2014-11-19 22:36
原因不明。

我制作的量47uF电容没问题。读数是 47.065uF,居然有小数後三个位。 ...

谢谢楼主解答,问下楼主图中的振荡电路有什么专业术语称呼么,一直不知道他的名字{:sweat:}

tang0571 发表于 2014-11-20 09:59:04

不错,帮顶!

alias 发表于 2014-11-20 15:02:50

R88 发表于 2014-11-20 09:28
谢谢楼主解答,问下楼主图中的振荡电路有什么专业术语称呼么,一直不知道他的名字...

输出电平特变,和 RC 常数有关,能量向电容输入及取出,算得上是弛张振荡器(Relaxation Oscillator)吧。

BAOJIWWWJJJWWW 发表于 2017-10-12 08:15:19

用555不行吗?我看前面震荡电路不就是555一样的吗?

john_8 发表于 2017-10-12 08:27:31

楼主牛人,学习了

alias 发表于 2017-10-12 13:58:37

BAOJIWWWJJJWWW 发表于 2017-10-12 08:15
用555不行吗?我看前面震荡电路不就是555一样的吗?

555输出上升/下降沿是100nS,而LT1016只是10nS,相差十倍。这测试电路的工作频率(被测电容低於50pF时)大约是250KHz,所以输出上升/下降沿的时间对测试结果影响很大。

BAOJIWWWJJJWWW 发表于 2017-10-12 19:30:22

你说的有道理,我看了手册,确实延迟比较大。楼主能分一下他的计算原理吗,我之前做过类似的电路,检测电容也还可以,只是不理解他的计算过程。
页: [1]
查看完整版本: 【原创】PIC 高分辨度电容表改进