高分辨率电压测量系统 电路方案
曾经想过要DIY一个比较精确的电压测量系统,其精度比市面上的3位半万用表要高,可以测量到0.0001V,用来DIY一个高精度电源。 查了部分高位万用表使用的专用IC后,发现其中的ICL7135效果还不错,于是做了几块板来测试。 在选择了大量的积分电容做实验后,最终找到了一种可以达到所谓的9999的电容,经测试基本符合要求,但这个电容体积相当大,不方便做成表头的形式。偶然一个机会发现了一片高位的ADC,其性能超过ICL7135并不需要很多元件,于是向凌特公司申请了两片LTC2400回来测试。 LTC2400,24位ADC。5V供电,输入电压为-0.3V-5V,串型数据流,比并行ADC更节省走线,做了块实验板,效果好不错,完全超过ICL7135。 完成后录了个视频。原理图见附件内容 扩展1:原理图见附件 在运行中考虑到AD586的温飘有2PPM,在天热或天冷的时候电压会有偏差,所以后来打算打算使用更高精度的恒温基准来为电路提供基准电压,看了很久,发现性价比较高的只有LM399。 而LM399的输出电压为7V,高于LTC2400的5V。如果用精密电阻做分压,其效果还不如直接用AD586。因为AD586使用的是晶圆电阻,其比值稳定度要比一般的精密电阻还要好。 另外LTC2400的输入电压只有5V,想扩展到10V如果使用精密电阻的话,其稳定度也就无法得到了保证。 为了能使用到LM399的高稳定电压,最终做了一个想到了一个设计方案: 使用电阻将LM399的电压降到5V给LTC2400做基准使用。 另外使用另一对电阻将LM399的电压降到5V内,而将这对电阻分别用模拟开关进行切换LM399的电压和待测电压。由于电阻受温度的影响变化是一个较长的过程,而短时间(几秒)内电阻的变化非常小。这样,待测电压和LM399的电压就成了一个比值内的关系。首先将LM399的电压÷测量到的LM399分压=目前分压电阻的比值,这个比值在几秒内的时间是微忽其微的,再用这个比值×测到的输入电压分压,则获得了准确的输入电压。 更方便的就是,这样可以很好的将量程扩展到了10V。 在每一个测量周期,LTC2400分别测量0V 7V 被测电压。然后根据0V的误差(归0误差)和基准电压,得到当前系统中的误差和电阻的比值,再用这两个值算出输入的电压。LTC2400的测量速度约为6次/秒,这样,不需要1秒就可以完成一个比较周期。 扩展2:原理图见附件 在添加了LM399做为基准后,经过了一段时间的测试,发现测量的电压值要比原AD586要准确,而且增加了运放做LTC2400的缓冲,测量输入阻抗也提高了,后觉得四路模拟开关还空出一路,就打算再添点东西,把这路也使用上。于是就有了在这个基础上增加DAC部分的打算。 LTC2400是一个24位的ADC,要想满足它的性能,就必须使用18位以上的DAC。但18位的DAC太贵,所以打算用两个12位便宜的DAC联合输出24位。 由于DAC输出的电压为0-5V,所以决定用一个2.5倍电压放大电路升到12.5V左右。 其实升压电路也有一定的误差,并随温度的变化而变化。为了消除这个误差,决定用主DAC先产声一个电压,测量后用副DAC产生一个电压并降至1/4000做为误差的微调。 之后还考虑到单片机对模拟电路的干扰问题,所以决定使用光藕进行数模隔离。 基本电路图。 这个已经算是有点复杂了。 其流程如下: 设置10.00000V 指定主DAC输出4V 4V被放大到10V(电路中设计放大倍数约2.5倍) ADC测量基准电压 ADC测量接地电压 ADC测量DAC输出后放大的电压 将DAC输出后放大的电压与10.00000V做比较,得出一个电压差 命令副DAC输出相应的电压纠正电压差 ADC测量输入点电压。 。 。 。 如此循环,ADC都将测出输出电压与设定电压的差值并通过副DAC纠正,逐步逼近设定电压。 画完图后已经不打算再自己做电路板,便到工厂开样板。 经测试很成功。但测试时临近年末,部分商家已放假,所以只能在垃圾堆里翻出一个坏的显示屏临时调试使用。 使用电脑232接口控制单片机,使系统分别输出0-11V。并用6位半万用表测量。 精确到0.0001V算是没有问题,由于线性度的关系,暂时还无法精确到0.00001V
用户评论