正如之前提到的,万用表设计上了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张图纸,那就按照图纸编号来说明吧,首先是输入电路这部分:
[size=0.83em]输入电路部分.png (276.48 KB, 下载次数: 16) 下载附件 [url=]保存到相册[/url] [color=rgb(153, 153, 153) !important]2015-10-31 09:58 上传
输入部分主要是包括输入保护、电流部分、电压档分压,以及输入缓冲放大电路构成,作为一个前端,将模拟信号调理后提供给后级的高分辨率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的摆幅能力,降低了一定的性能,这是考虑到本次实际情况权衡之后的妥协的设计。接下来继续就各个模块继续说明。
一、电压通道1、电压通道输入保护电路由E1/R15/C7组成,选择了放电管是因为放电管较常用的压敏电阻输入阻抗更高漏电更小,因为电压输入通道还要兼电阻测量功能,尤其在大电阻档恒流源输出非常小仅1uA左右,用压敏电阻后漏电会分流掉一部分造成误差; 通常放电管动作时间稍慢,大约是uS级别,因此增加了C3/C4的薄膜电容用来增加输入RC时间,减缓电压上升速度使得放电管赢得足够的动作时间。
2、K1/K2为小型磁保持继电器用来做电阻档恒流源开关以及,电压基本量程和分压量程的选择,独立的基本量程采用4个25K的电阻串联,100K输入电阻提供运放足够的输入保护能力,和C3形成一阶RC低通滤波提高抗干扰能力。之所以采用4个电阻串联是考虑到单个电阻通常耐压小于200V,串联之后可以提高输入电压耐受能力;C3/C4采用薄膜电容也是考虑到薄膜电容性能较好耐压高,并且很重要的一点陶瓷电容有压电效应,一来受震动后会产生mV级别的电压,二来随着输入电压变化也会产生非线性,所以这里要采用薄膜电容。 选择继电器也是慎重考虑,因为继电器的触点同样是异种金属构成,通常接触电阻会达到数uV,并且热电偶效应随着温度变化也会变化,我们无法排除热电偶效应,但是可以尽量去降低它的影响,所以硬件选择上采用磁保持,继电器动作之后线圈就不再需要通电,不会继续发热,热电势就比较稳定,通过外部校准之后可以大大降低其影响。
3、运放缓冲结构都采用这种容性负载增强结构,主要是因为ADC通常都是低阻抗容性负载,精密运放一般对容性负载能力比较弱,无法很好的驱动大电容(在AIN端加上合适的RC还可以起到滤波作用,对于低频往往这个电容容量就会选择比较大)。因为是五位半以上的设计,所以运放必须很仔细选择:
a、万用表通常输入阻抗设定为10M欧,输入电流数十pA,因此这里运放输入Ib也要求低于50pA;
b、运放必须是精密的,输出Vos必须小,假如指标是1mV,那么经过后面PGA放大后就是数十上百mV了,因此希望能在几十uV以内;
c、必须要考虑运放的温漂,2.5V的话 1PPM就是2.5uV,假如运放选择1uV/K的温漂,那么假如环境温度变化10度,则就会达到10uV的变化,就达到4PPM了,再算上后面PGA放大后,就更不好了,所以我们希望这个地方温漂尽量低,好在我们可以选择零漂移的运放,这个问题就好解决了;
d、运放的噪声问题很重要,我以前发过关于0.1~10HZ噪声测量的帖子,很多人根本不明白这是干啥的,在精密测量这里,尤其万用表直流电压测量这块,超低频噪声涉及到你后面位读数是否跳动的直观感觉,而且超低频噪声你没办法滤除,一块后面读数乱跳的电表,没人喜欢吧。通常,精密运放有一个0.1~10HZ超低频输入电压噪声uVpp的指标,这个就很直观了,针对本次1PPM的目标,那就是2.5uVpp以内,再考虑到后面还有PGA放大,所以尽量低吧;还有一点不可忽视的就是输入噪声电流的指标,由于万用表输入电阻很大,很多情况下这个输入噪声电流指标就很关键了,希望是能到fA的级别吧,这就需要FET类输入结构的运放了
e、由于简化电路降低成本,因此输入电路的运放是采用+5V电源供电,以2.5V虚地为中心,因此还必须考虑运放是轨到轨输入输出的,这个很重要,否则就达不到2.5V+-2V输入这样的要求了,
f、运放还要标准SOIC封装容易替换,希望价廉易得,这一系列条件之后AD8629似乎是个比较合适的选择,好吧。
二、电压量程选择及分压网络,这部分内容深入下去也不少,简单说一下吧
1、分压电阻,电压表总不能只有一个基本2V量程吧,为了测量更高的电压必须加入分压网络,分压电阻网络是个比较麻烦的事情,因为这又涉及到精密电阻的事情,通常我们选择分压比为1/1 1/10 1/100 1/1000,万用表的输入阻抗为10M欧,我们希望万用表的输入分压比尽量精确,特别是温漂要低,尤其是成比例的相对温漂,因为温漂是个变化的量,你无法很好的校准,这些电阻往往是高精密测量中最头痛的事情,精密电阻通常不易得,精密电阻更重要的是低温漂的。一般大家在国外的高位表拆解上经常能看到那种白色陶瓷薄膜电阻,这些很多都是定制的精密电阻,尤其是网络电阻,它要求的是各电阻间稳定的相对温漂。这些电阻是万用表的关键。就拿普通手持四位半万用表来说,国产还算有良心的表比如UT61E上会采用一种黑色的网络排阻,其实它内部就是几个金属膜电阻挑选之后灌装起来的,FLUKE上面会用到CADDOCK 1776陶瓷薄膜网络排阻,但是大家都知道FLUKE的价格,1776最好的5后缀的相对温漂可以达到5PPM,
这种陶瓷网络排阻广泛应用在高端DMM中,性能稳定温漂小,耐压高,电阻的噪声及非线性也低。国内厂家普源的DM3065六位半也是采用了CADDOCK 1776-C6715,是最高5PPM相对温漂等级的。一般靠谱的四位半五位半采用1776-C48/C481这类。不过这类网络排阻非常难买到,价格也很贵,通过ICKEY MOUSER代购找到1776-C481价格是95元左右一只,5PPM的C4815的话就得160元了。要想保证万用表的性能,这类精密网络电阻是少不了的,因此在画PCB的时候还是预留了排阻的位置。
另一个节约的做法就是采用MELF晶圆电阻自己凑了,一个电阻耐压100V,那就凑10个,正好10M欧,其他的阻值再继续凑,MELF电阻采用VASHY出品的质量还是有保障的,一般淘宝上能找到的是50PPM的,好一些的是25PPM甚至15PPM的,阻值不全。但是凑电阻的话,每个电阻离散的,即使是同一个阻值批次的电阻它的温漂也是不可能一致的,因此性能肯定是要打折扣,便宜呗。为了尽量提高屌丝MELF电阻网络的性能,PCB排版的时候考虑都排向一个方向,这样小风吹过电阻们,尽量能保持相同的温度梯度,并且下面画上覆铜,使得温度分布尽量均匀,如果有条件更可以对电阻进行下筛选,挑选出温漂相似的使得分压网络的相对温漂尽可能的小。咱屌丝有屌丝的做法
二、电压测量自动量程选择结构,这部分深入下去也是挺多的,因为高档万用表都是自动档的,不能像低档表那样用表盘啊琴键开关啊这类来做物理切换,所以必不可少的要用继电器或者电子模拟开关来做切换,这里又涉及到很多讲究。 首先继电器,除了前面的热电效应外(可以采用磁保持来降低影响),还有个最小触点电压电流的说法,因为继电器的触点是靠簧片触碰来实现的,而触点表面通常有层膜,通常触点接触后流过一定的电压电流,这层膜被击穿,从而实现稳定的连接,而如果信号太小,则这层膜无法被可靠击穿,这个时候,接触电阻就会大,并且是不稳定变化的,不可控的,不爽啊undefined。继电器还有干簧湿簧之分,湿簧继电器触点是水银浸润的,因此这种情况影响会比较好,不过要知道高档仪表里采用的继电器也是特殊高档的,可望而不可即,这里只是吐槽科普下罢了。模拟开关么我是最不喜欢用的,因为模拟开关限制条件很多,要考虑漏电、导通电阻、通道泄漏隔离度、导通电阻的非线性等等问题,好的低泄漏模拟开关非常贵,而且淘宝上也不容易找到,我也没办法申请样片,唉undefined。好了,再回头说说自动量程结构吧,一般分成下面几种
1、9M / 900K / 90K / 9K / 1K,这样一串电阻,首端接V输入底端接COM,然后从2个电阻之间接出来用物理开关做切换,这里说只能是物理开关,因为你如果用模拟开关的话高一级量程的分压输入还是依然接在模拟开关的一端的,因此这边超过5V就会通过模拟开关的保护钳位二极管产生泄漏了,也就是说实际上你根本无法用模拟开关来切换量程。你只能用继电器或者是波段开关这类物理形式。我刚开始也想当然的中招了,所谓当局者迷旁观者清,幸好是懒猫和littleshrimp提醒了才恍然大悟不知酿成大错晚节不保啊undefined,谢谢二位了。这种电路结构要做成自动量程功能,就得用继电器做切换,如果用普通磁保持继电器5元一个一个量程就要对应一个开关,成本也不算高多少,主要的问题是大家都不喜欢继电器切换起来的咔哒声 : )
2、通常在商品化的高位表上经常能看到比方说HP34401 3478 等等上面通常是基本量程和分压量程之间用继电器做切换,然后分压量程是直接一个1/100分压的网络排阻先分压,然后它的PGA选择开关选择X1/X10/X100这样做放大,这个是高位表普遍的做法,这种做法我是非常喜欢的,简化了电路,同时你PGA的模拟开关要求很低,可以选择4052这种5毛级别的,很爽。不足之处呢就是分压输入电阻先分压,再放大,有些人可能不太喜欢,但是人家高位表都这么做能保证指标,有啥好纠结的呢
3、另一种就是普通自动档万用表上采取的架构,电阻分压网络采用10M 1.1111M 101.01K 10.01K 1.0001K,然后双模拟开关,用从书上截取的图比较能理解
如上图所示,明白了吗,就是模拟开关稳定后10M欧输入电阻末端始终维持在0~5V之间电压值,因此不会产生第一种结构那种高一量程输入钳位的问题,因此这种结构普遍用在普通自动档万用表上,重要的事情说三遍。普通万用表,一旦高位表了,你得特别小心注意了,都说了这是个完全不同的世界了。
这种接法看似简单其实也很精妙。很多人也许都没理解,模拟开关的世界里有三个要很注意的,需要
a、导通电阻RON,模拟开关都是用MOS管啊JFET啊这类构成,导通后有一定电阻,从几欧到数K欧不等。由于工艺的离散型,电阻都是一个范围,通常手册给出典型值,然后还有最大值什么的,这个RON很讨厌,它随温度变化、随电源电压变化、随频率变化、甚至还随输入电压变化,这个就很可恨了
b、泄漏,低泄漏的模拟开关通常典型值是几个或者数十pA,它也随各种周边变量而变化,变化数十倍甚至上百倍,看到没,这个也很可恨了,搞项目管理搞设计的人都知道目标要可控,这些个问题很不爽啊。
了解模拟开关基础知识后,再回到这种自动量程结构的妙处,上面这种结构首先是10M欧的输入电阻进来,相当于MUX,选择不同的量程电阻,输出呢,也是一个MUX,分别接到低阻值量程电阻的上端,要注意的是输出MUX是接在输入MUX的下部,而不是上部,这样模拟开关的RON就是属于10M欧输入电阻的势力范围内了,假设RON为1K,则10M欧范围内,这个RON的影响范围是1/10000 ,而如果算到低量程1K档,这个RON的影响就变成100%了,原本1K的电阻变成了2K,还测个啥啊;而输出MUX的RON就无所谓了,因为你下一级接的是运放跟随电路,高阻抗,这点RON无关紧要的。在4位半的世界里这种电路工作很好,但是到了4位半以上,这个被10M欧输入电阻弱化的RON就是个问题了。
为了达到PPM级别的目标,得把RON/10M控制在数PPM啊,我在电路图上画的是DG409,电路图很多参数都是画图是暂时的,为了画出PCB,用409是因为它的PIN是标准的工业标准,有大量的409PINTOPIN兼容器件可供选择。这种架构在这里其实就是个瓶颈,我拿ADG509来说,通过官方的PDF图样可以了解到,RON在输入电压0~5V下大致可能会有200欧姆的非线性起伏,200欧姆什么水平,200/10M ,那就是20PPM了,很受伤啊,所以必须要找适合的模拟双4选一开关才行,要求是泄漏低于50pA,RON变化不大于20欧姆,这个也是我不是很喜欢这种电路结构的原因,模拟开关要求太高不好弄,当然了这样的模拟开关还是有的,不过不易得,所以暂时只能用容易得的先代替,之后找到更好的再换吧。
另外还有一点,这种电路模拟开关切换的瞬间,如果输入是高压会导致瞬间电压较高,所以这边设计有C4也是起到暂时吸收电压的作用,使电压不至瞬间升高,同时输入端还有钳位二极管做保护(图上没有画出来为了画PCB方便,后面要加上的),没有问题了。
undefinedundefinedundefined
undefinedundefinedundefined三、电流通道电流测量这边为了降低复杂性和成也做了缩减,取消了电流量程电阻的切换,因为这又要用一堆继电器做切换了,现在是直接用了个4线电阻测量,经过运放正相放大到ADC接收的水平,由于ADS1256内部有1~64的PGA,因此不需要其他电路也可以权当量程切换了,电流这部分并不是太多考虑
1、4线电阻,采用了淘宝上拆机的东东,5W,30ppm,从0.001~1欧的阻值范围,这个也是安捷伦高位表上采用的那种
2、输入保护电路,采用类似桥式整流管的形式做钳位,钳制电阻上的降压不能超过1.4V,由于普通二极管的漏电不小,有些甚至能达到数百nA,甚至uA,这个漏电就对电流测量造成误差了,因此采用了等电位驱动的方式,运放U3B必须保持两个输入端等电位,因此使得D3/D4两端也是等电势,因此D3/D4上的压差就是0,这样就意味着没有电流 流过二极管了。
3、电流档保险丝,这个地方选择了5*20的陶瓷管快速保险丝,这里不能用自恢复这类保险丝,因为自恢复类跟PTC一样,是类似与半导体材料做的,会有一系列问题影响测量,陶瓷快速保险比较可靠,这个也是所有DMM里通行的,普通玻璃保险丝保护慢容易炸裂,而陶瓷管里是有石英砂的。
好了,别看就是DMM的输入电路这么一点点电路,粗粗写了下也是这么多内容,之后再继续,希望对大家有帮助,谢谢
|