正如之前提到的,万用表设计上了4位半以上之后,就进入一个新世界了,就好像之前用肉眼观察世界,而现在用放大镜甚至显微镜来看世界,能看到微观世界下全新的视角。所以万用表设计不再是简单的设计了,进入了一个高精密的世界,原先貌似简单的问题,在显微镜下就变得不那么简单了,每一个细节都很有可能成为致命的伤,设计的思路也不同了。
举个直观的例子,就一个2.5V基准的ADC来说,8位ADC 1LSB约0.5%即5000PPM,1LSB=10mV,通常使读数稳定,那就必须达到0.5LSB,也就是5mV,电路设计的时候你关注的是5000PPM ,这个很轻松,很多人都能达到。 到了12BIT,就像STM32的ADC那样,12BIT 250PPM 1LSB=0.6mV这个时候就需要比较细致的设计才能达到这个性能; 再往上16BIT的情况下,你必须关注15PPM级别事情 1LSB=38uV,0.5LSB就是20uV不到了,这个时候世界就完全不同了,你得考虑各方面的情况了,比方说10mil的PCB走线,当长度5CM的时候电阻就达到了0.1欧姆,如果你的ADC输入阻抗是5K欧,则这个误差就达到0.1/5000,相当于1LSB了。 再举个例子,通常常用金属膜温漂是100PPM/K,电阻不但会有热噪声,而且会有工艺形成的其他噪声,甚至在不同的外部电压下电阻的阻值也会发生非线性的变化,而且电阻是由不同种的金属构成,异种金属之间会产生热电偶效应,而金属膜电阻一端就会形成20uV/K的热电偶,如果金属膜电阻的两端温度差别大,则会产生大的温度梯度,莫名其妙就几十个uV产生了,轻松几个LSB的误差产生了。这只是举了2个最简单的例子,可谓是了解的越多越觉得恐怖。一个设计要真正达到16BIT性能的水准已经是非常不容易了。面对这个高精密的世界,需要设计者长期的知识沉淀经验积累,以及钻牛角尖的精神,心浮气躁急功近利是没法做到的。
本人只是个喜欢高精密测量的DIYER,入门都不敢妄称,斗胆就万用表的电路设计上的一些不成熟的思路跟大家分享下,希望能跟大家多多交流。
这个高位表在设计的时候分成了4张图纸,那就按照图纸编号来说明吧,首先是输入电路这部分:
输入部分主要是包括输入保护、电流部分、电压档分压,以及输入缓冲放大电路构成,作为一个前端,将模拟信号调理后提供给后级的高分辨率ADC来数据采集转换用。这次ADC采用的是TI公司的高档ADS1256,24BIT 30KSPS,4个差分输入MUX端口,因此可以任性地用了3个输入通道,分别做电压基本量程输入、电压分压量程输入、电流输入。并且得益于其快速的输入通道切换,可以实现万用表在屏幕上同时显示电压和电流的数值的双显示功能。
为了简化设计降低成本,万用表的COM公共端黑表笔插座是虚地2.5V,也就是ADC的差分输入AIN-端是固定接在2.5V虚地上的,AIN+是基于AGND为参考位0~5V输入,也就是相当于虚地为参考电位的话-2.5V~+2.5V双极性输入,这样的方式并未充分利用ADS1256的差分输入+-5V的摆幅能力,降低了一定的性能,这是考虑到本次实际情况权衡之后的妥协的设计。接下来继续就各个模块继续说明。