搜索
bottom↓
回复: 34

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

  [复制链接]

出0入0汤圆

发表于 2014-11-19 00:42:39 | 显示全部楼层 |阅读模式
【原创】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 网站截图 :

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2014-11-19 01:06:32 来自手机 | 显示全部楼层
第一次沙发。谢谢分享。

出0入0汤圆

发表于 2014-11-19 01:27:56 | 显示全部楼层
高手,谢谢分享。

出0入0汤圆

发表于 2014-11-19 06:34:15 来自手机 | 显示全部楼层
牛人 分析到位

出0入0汤圆

发表于 2014-11-19 07:50:35 | 显示全部楼层
不错  谢谢分享  

出0入0汤圆

发表于 2014-11-19 07:56:36 | 显示全部楼层
谢谢分享,少改进些能不能做lcr呢

出0入0汤圆

发表于 2014-11-19 08:03:58 | 显示全部楼层
做成LCR最好了

出0入0汤圆

发表于 2014-11-19 08:06:31 | 显示全部楼层
谢谢分享!

出0入0汤圆

发表于 2014-11-19 08:11:23 | 显示全部楼层

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

出0入0汤圆

发表于 2014-11-19 08:48:08 | 显示全部楼层
好专业               

出0入0汤圆

发表于 2014-11-19 09:02:06 | 显示全部楼层
经典、专业,都是牛人

出0入0汤圆

发表于 2014-11-19 09:05:10 | 显示全部楼层
PIC电容表-标记下,谢谢楼主分享

出0入0汤圆

发表于 2014-11-19 09:21:19 | 显示全部楼层
强帖留名

出0入0汤圆

发表于 2014-11-19 09:46:05 | 显示全部楼层
RomanBlack 是个牛人,在很久以前就有关注他了, 他还有很多很好的设计理论, 很值得看的。。

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

出0入399汤圆

发表于 2014-11-19 10:00:06 | 显示全部楼层
向楼主学习。。
把CT增大,使整体频率下降不知道行不行。。正反馈那个5pF有什么用,不会影响么?
映像中比较器电压越高延时越慢,393用9V供电,能有改善么?

出0入0汤圆

发表于 2014-11-19 10:03:01 | 显示全部楼层
谢谢楼主分享!

出0入0汤圆

发表于 2014-11-19 10:06:39 | 显示全部楼层
很好的资料。

出0入0汤圆

发表于 2014-11-19 10:14:11 | 显示全部楼层
高手,发现问题,解决问题,还有解决问题的过程,很好的学习资料

出0入0汤圆

发表于 2014-11-19 10:24:54 | 显示全部楼层
谢谢,学习了!!

出0入0汤圆

发表于 2014-11-19 10:26:58 | 显示全部楼层
不错的改进。

出0入0汤圆

发表于 2014-11-19 10:35:20 | 显示全部楼层
分析透彻,讲解易懂

出0入0汤圆

 楼主| 发表于 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供电,能有改善么?

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


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

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

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

出0入0汤圆

 楼主| 发表于 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 为你所须电压。看下图:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-11-19 21:21:14 | 显示全部楼层
谢谢分享!

出0入85汤圆

发表于 2014-11-19 22:14:20 | 显示全部楼层
我仿真了一下,貌似只能测<1uF的电阻?

出0入0汤圆

 楼主| 发表于 2014-11-19 22:36:18 | 显示全部楼层
marshallemon 发表于 2014-11-19 22:14
我仿真了一下,貌似只能测

原因不明。

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

出0入0汤圆

发表于 2014-11-19 23:08:21 | 显示全部楼层
受教了!谢谢

出0入399汤圆

发表于 2014-11-20 09:28:21 | 显示全部楼层
alias 发表于 2014-11-19 22:36
原因不明。

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

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

出0入0汤圆

发表于 2014-11-20 09:59:04 | 显示全部楼层
不错,帮顶!

出0入0汤圆

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

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

出0入0汤圆

发表于 2017-10-12 08:15:19 | 显示全部楼层
用555不行吗?我看前面震荡电路不就是555一样的吗?

出0入0汤圆

发表于 2017-10-12 08:27:31 | 显示全部楼层
楼主牛人,学习了

出0入0汤圆

 楼主| 发表于 2017-10-12 13:58:37 | 显示全部楼层
BAOJIWWWJJJWWW 发表于 2017-10-12 08:15
用555不行吗?我看前面震荡电路不就是555一样的吗?

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

出0入0汤圆

发表于 2017-10-12 19:30:22 | 显示全部楼层
你说的有道理,我看了手册,确实延迟比较大。楼主能分一下他的计算原理吗,我之前做过类似的电路,检测电容也还可以,只是不理解他的计算过程。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 06:47

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表