【原创】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 网站截图 :
第一次沙发。谢谢分享。 高手,谢谢分享。 牛人 分析到位 不错谢谢分享 谢谢分享,少改进些能不能做lcr呢 做成LCR最好了 谢谢分享! 江湖菜鸟 发表于 2014-11-19 08:03
做成LCR最好了
可以做LCF, 参考我以前的帖子, http://www.amobbs.com/thread-5529225-1-1.html 好专业 经典、专业,都是牛人 PIC电容表-标记下,谢谢楼主分享 强帖留名 RomanBlack 是个牛人,在很久以前就有关注他了, 他还有很多很好的设计理论, 很值得看的。。
楼主也很牛。。可能楼主可以email 他,告诉他你的改造, 或许他肯改源码, 或给你源码也说不定。。 向楼主学习。。
把CT增大,使整体频率下降不知道行不行。。正反馈那个5pF有什么用,不会影响么?
映像中比较器电压越高延时越慢,393用9V供电,能有改善么? 谢谢楼主分享! 很好的资料。 高手,发现问题,解决问题,还有解决问题的过程,很好的学习资料 谢谢,学习了!! 不错的改进。 分析透彻,讲解易懂 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供电,能有改善么?
可见以下仿真,情况改善不大。
楼主仿真用的是 LTSpice吗?
那个 393.sub, time_switch.lib是从哪里来的?
暂时发现LTSpice的不足:
标准库里的反相器输出只有1V,需要用到反相器的,我都是用两个脉冲电源,将相位错开,呵呵。
没有类似以前 EWB那种,可以在仿真时更改电阻值,或者打开/关闭某个开关、按钮。。
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 为你所须电压。看下图:
谢谢分享! 我仿真了一下,貌似只能测<1uF的电阻? marshallemon 发表于 2014-11-19 22:14
我仿真了一下,貌似只能测
原因不明。
我制作的量47uF电容没问题。读数是 47.065uF,居然有小数後三个位。 受教了!谢谢 alias 发表于 2014-11-19 22:36
原因不明。
我制作的量47uF电容没问题。读数是 47.065uF,居然有小数後三个位。 ...
谢谢楼主解答,问下楼主图中的振荡电路有什么专业术语称呼么,一直不知道他的名字{:sweat:} 不错,帮顶! R88 发表于 2014-11-20 09:28
谢谢楼主解答,问下楼主图中的振荡电路有什么专业术语称呼么,一直不知道他的名字...
输出电平特变,和 RC 常数有关,能量向电容输入及取出,算得上是弛张振荡器(Relaxation Oscillator)吧。 用555不行吗?我看前面震荡电路不就是555一样的吗? 楼主牛人,学习了 BAOJIWWWJJJWWW 发表于 2017-10-12 08:15
用555不行吗?我看前面震荡电路不就是555一样的吗?
555输出上升/下降沿是100nS,而LT1016只是10nS,相差十倍。这测试电路的工作频率(被测电容低於50pF时)大约是250KHz,所以输出上升/下降沿的时间对测试结果影响很大。
你说的有道理,我看了手册,确实延迟比较大。楼主能分一下他的计算原理吗,我之前做过类似的电路,检测电容也还可以,只是不理解他的计算过程。
页:
[1]