jackfrost 发表于 2015-11-14 10:48

【STM32F7英雄联盟大赛】多功能测试仪器---五位半万用表硬件设计(三)

<div class='showpostmsg'> 本帖最后由 jackfrost 于 2015-11-14 10:52 编辑

       今天再继续高位表硬件设计部分的话题, 为了方便阅读,再给出前面的链接
【STM32F7英雄联盟大赛】多功能测试仪器---五位半万用表硬件设计(一)
https://bbs.eeworld.com.cn/thread-476071-1-1.html

STM32F7英雄联盟大赛】多功能测试仪器---五位半万用表硬件设计(二)输入电路部分
https://bbs.eeworld.com.cn/thread-476362-1-3.html

   首先按顺序来简单讲一下ADC电路部分

      这次万用表的核心采用了TI公司的高性能24BITΔΣ ADC ADS1256。
通常,国际大厂的高位表都采用特有的多斜率积分ADC,由非常复杂的电子开关、FPGA来构成,占据了PCB不小的部分,从早期如雷贯耳的六位半HP34401一直到新的34461等等,或者吉时利的K2000 2015等等,甚至7位半8位半都无一例外的采用这种形式,都是厂商自己独有的技术,非常复杂,无法仿制,之所以用这类积分方式,一是因为积分ADC形式天生就有良好的抗干扰能力,二是因为作为万用表最重要的非线性指标,其他形式的ADC很难达到其要求。我们通常一眼看到的是万用表的分辨率是几位半的,这个很直接,但是真正涉及到万用表性能最关键的一点就是非线性指标就很少有人能了解了,而这个真是决定万用表基本性能优劣的关键性指标。举个例子1V电压量程,就像一把尺子,分成1000份,每份1mV,理想的情况下,输入标准的0.5V,位置就应该在最中间刻度500的地方,而线性度不好的尺子,就不一定这么理想了,不一定就在500的位置,甚至差别很大,这就麻烦了,哪怕你分辨率高的电压表,非线性差的话,读出来的数据也是不准确的无意义的。这也就是同样的4位半,国产的胜利优利德200多搞定,而AG FLUKE的就要贵很多,国际大厂的用料质量都更花心思更严谨,同样的四位半用线性标准源一比较就能看出读数的差别了。一代经典HP 34401六位半的非线性大致是3PPM左右,它的积分ADC硬件设计保证了良好的非线性,校准的时候只需要校准0点和满量程,整个刻度就能保证很好的非线性,无需复杂的非线性校正曲线拟合。由于这类高位表的技术都是独有的,难度非常大,因此国内没有看到有类似仿制的,国内普源也有最高6位半的DMM,而它就是用的ADS1256,看一下ADS1256的指标

可以看到ADS1256的典型INL是3PPM,从这点上来看,也许很乐观,不过这个只是典型值,最大值是10PPM,我们设计的时候总不能总指望每个器件都是达到典型值的,得按最差的悲观情况来设计,所以10PPM的指标就不是这么好看了。所以现实情况大家都懂的,普源六位半用ADS1256跟几十年前的HP34401A的性能比较起来仍旧是有一定差距的。如果普源负责任的话,应该采用了有限的非线性校正,就是在校准阶段,逐段进行校准,曲线拟合,来减少非线性误差,达到6位半所以应有的指标,这个是非常费力繁琐的,非线性是非常非常难弄的,来看一下ADS1256的典型非线性曲线(是典型)

   非线性指标是不规则的曲线,并且随着温度会变化,而且随着器件的老化曲线也会变化,所以通过软件来进行逐点逐段校准,温度变化了,时间长了,就又不准了,又得校准。而且每个ADC的离散型,INL曲线也不同,因此软件校准非线性是非常非常麻烦的,性能无法得到保证,而看看经典的34401这些积分设计高位表,它只要校准2个点就可以了,就能保证指标内的非线性,不得不佩服HP这类大厂的设计严谨扎实厚道。
       看了以上的篇幅大家也许就能理解为什么DIY一个高位表是那么的难了,24位ΔΣ ADC 也许分辨率能做得很高,甚至现在TI都有32位的了,但是但是但是,看看它的INL指标就原形毕露了,最大仍旧是10PPM,再32位的分辨率严格意义上也做不成一个六位半万用表。回头来看看ADS1256的分辨率指标

       对于高位表来说只关心直流性能,所以只要看实打实的Noise-Free指标就可以了,这个还不错2.5SPS下最高可达23BIT,分辨率达到6位半的DMM水平是够了。
      从以上分辨率和INL的指标来理解,严谨保守的说这是个5位半DMM,如果乐观来说,也可以认为达到六位半的DMM水准,这个就看IC的离散型,RP了,我们当然不能只靠拼RP来行事不是么:loveliness:





</div><script>                                var loginstr = '<div class="locked">查看精华帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                               
                                if(parseInt(discuz_uid)==0){
                                                                                        (function($){
                                                        var postHeight = getTextHeight(400);
                                                        $(".showpostmsg").html($(".showpostmsg").html());
                                                        $(".showpostmsg").after(loginstr);
                                                        $(".showpostmsg").css({height:postHeight,overflow:"hidden"});
                                                })(jQuery);
                                }
</script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

jackfrost 发表于 2015-11-14 10:52

本帖最后由 jackfrost 于 2015-11-14 11:54 编辑

    上面的篇幅主要是讲了DMM核心 ADC的关键性指标一个是分辨率另一个是非线性INL,为了ADC工作达到设计性能,还需要一些保障
一、基准源
       基准源有多种IC可选,ADS1256采用的是2.5V的基准,为了能达到ADS1256应有的性能,基准源也是需要精心选择的,通常采用SOIC8封装的都能通用,基准源直接关系到DMM的准确度,通常最关键的:
1、温漂:
      ?PPM/K,这个希望越低越好最起码不大于5PPM/K吧,像34401等这类采用积分ADC的基准通常采用LM399这类,温漂0.5PPM,电压6.95V,而这里采用2.5V低电压的IC,现在也有很多可以用,比方说AD441/ ADR421 / ADR4325 / MAX6325 / LT6655等,ADR421来说,B级别的达到最大3PPM,满足需要

2、噪音:
   是的,又是很关键的0.1~10HZ噪音,很多人并没有注意到这个。就拿6位DMM来说,分辨率是1PPM级别的,如果你的基准源噪音水平超过1PPM,则就会看到最后一位始终在跳,无法稳定,0.1~10HZ的噪音主要针对直流测量人类最直观看到的感觉,而且这些超低频是无法被滤除干净的,你得从基准源头上就保证超低频噪声足够低。超低频噪声一般基准的PDF都直接给出了,比方说上面的ADR421,是1.75uVpp,峰峰值。估算一下,ADS1256的基准是2.5V,那么1PPM就是2.5uV,0.5PPM=1.25uV,因此希望能低于1.25uVp-p,采用ADR421的话勉强也够了,其他的ADR4325甚至LT6655噪音情况更好。

二、基准源驱动
      好花也要绿色衬,之所以要用基准源驱动,是因为通常基准IC的带容性负载能力比较差的,而ADC尤其是高速高精度的ADC,它的REFIN输入要接上大的电容,每次ADC采样转换的时候需要从这个电容上吸取电荷,同时这个电容每次被吸收电荷的时候还要保证电容的端电压下降不至于低到影响ADC精度的程度,因此ADC速度越高精度越高对电容的要求越高,所以看到ADS1256官方评估板上用到的电容是100uF之巨了,因为ADS1256的速度达到30KSPS,这个电容的容量是通过公式计算得出,太小的话一旦ADC吸收电流,电容端电压下降几个PPM就足够影响精度了。
       这么大的基准源电容要驱动好,绝大部分基准电压IC是无法做到的,像ADR421这些也只能勉强10uF吧,因此必须采用运放来驱动100uF电容。为了不影响基准的温漂、噪音、精度,通常运放要接成跟随器形式,通过运放稳定性分析我们可以知道这种结构的稳定性最差,所以需要采用增强容性负载驱动能力的结构,在环路中加入一个RC网络提供足够的稳定性。这里设计进行了一些简化,用OPA350来作为缓冲驱动,实际上这个OPA350虽然速度快驱动大电容能力强,但是其飘移等指标稍微差点,用一些高精度的并且能驱动大电容的运放效果更好。这里面关于基准源驱动这块也有很多学问,更好的结构电路可以设计可以采用,但是考虑到本次比赛的实际情况,这里就简化了,不多谈了。

三、基准源电容
       这个要简单提一下,这个电容要提供ADC REFIN引脚采样电荷,因此要求串联电阻ESR足够低,<0.1欧,并且高速低漏电,采用聚丙烯是最理想的吧,不过不现实,呵呵。钽电容也可以考虑不过小体积的ESR几乎达1欧姆级别,也不理想,X5R的陶瓷电容吧,挺合适,但是呢它又有压电效应,容量稍小,就用几个并联起来凑合用吧,还有一种钽聚合物电容看指标是比较合适的,有机会可以对比下试试。

四、ADC输入
       同样,ADC输入都是电容+开关形式,输入端需要电容来提供足够的电荷,一般加上一个小电阻来隔离前级运放输出和ADC输入,电容来提供电荷,同时这个还形成一个简单的滤波。这里的电容是有要求的,最好是采用薄膜电容,比方说WIMA 松下的PPS电容等等,当然最好的当然还是聚丙烯了,如果非得用陶瓷的话(坑爹的压电效应啊)也尽量用NP0,C0G这种吧,这里采用了0805的松下PPS电容。

五、虚地VCM驱动,这部分比较简单,也是采用了增强容性负载驱动能力的运放结构,VCM是5V的一半,2.5V,可以直接用5V电源取得然后分压得到2.5V,也可以直接从基准获得2.5V,这里由于ADC采用差分驱动,AIN+AIN-输入都是以VCM为参考的,因此VCM的变动会被抵消,所以5V电源分压也无所谓。
      




jackfrost 发表于 2015-11-14 10:52

本帖最后由 jackfrost 于 2015-11-14 11:56 编辑

      关于ADC这部分,先简单聊到这,以后再继续剩下的话题,谢谢大家{:1_140:}

littleshrimp 发表于 2015-11-14 14:41

谢谢分享

5之蒲公英 发表于 2015-11-15 09:54

{:1_103:}{:1_103:}

无奇不有 发表于 2015-11-15 14:34

牛人啊,真是服了。评论一下,就当做是收藏这个帖子了

llhvvv 发表于 2016-8-3 15:14

牛人,赞一个,学习了,顶起

yzr7118 发表于 2016-10-30 06:17

学习,学习,再学习!!

liufei2618 发表于 2016-10-30 13:13

6666666谢谢分享

新月食 发表于 2017-1-23 22:50

厉害啊

1529398377 发表于 2019-6-12 18:29

<p>楼主,原理图里面的 FB 是什么样的电阻啊</p>

armflyok 发表于 2020-8-7 19:15

<p>非常有参考价值,收藏起来。</p>

freebsder 发表于 2020-8-7 22:58

<p>高手作品,好好学习</p>

谢辉 发表于 2023-4-6 10:46

好好学习一下

tcvsdonnnie 发表于 2023-5-29 17:02

<p>能分享源文件就更好了<img height="48" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/sexy.gif" width="48" /></p>

laomaotao 发表于 2024-11-13 15:35

<p>抄袭HP</p>
页: [1]
查看完整版本: 【STM32F7英雄联盟大赛】多功能测试仪器---五位半万用表硬件设计(三)