广告

DIY高精度六位半数字万用表,分享详细原理图

2020-01-16 11:03:13 阅读:
随着电子技术的进步,高性能低成本的器件层出不穷,使得制作一部低档的6.5位数字多用表成为了可能,这里介绍这款六位版,就是在性能上、功能上和成本上综合考虑的一种设计实现方案。

数字多用表是常用的测量仪器,目前市场常见的是3.5(三位半)和4.5 手持表,用于一般测量,另外高端的则是6.5位以上的台式表,价格较高,用于高精度测量。ZKhednc

随着电子技术的进步,高性能低成本的器件层出不穷,使得制作一部低档的6.5位数字多用表成为了可能,这里介绍这款六位版,就是在性能上、功能上和成本上综合考虑的一种设计实现方案。ZKhednc

设计思想:

选用成品的通用元件:高端DMM采用以 恒温深埋齐纳基准——前端为Dual JFET的混合低噪声运算放大器——多斜率积分高速高分辨率ADC 为主轴的测量系统,其中每个部分的制作难度都非常高,而且需要昂贵的仪器进行调试、校准,这样的要求在业余条件下是难以满足的,所以这里采用了相对低成本 可靠通用IC 精密带隙基准——单片低噪声斩波稳零放大器——24Bits低噪声ΣΔ ADC来替代,这样的既可以减少元件采购难度,降低整体成本,最重要的是能得到可靠的性能保证,就是说可以根据DataSheet上标明的最差指标可以计 算出系统的整体性能。ZKhednc

放弃高电压,大电流量程:首先对这些量程进行高精度测量本身难度就非常高,而且对系统的输入选择、保护系统提出了很高的要求,元件质量要求高,PCB面积占用大,最重要的是要为用户人身安全负责,为了避免出现安全问题所以没有设置危险的测量量程。ZKhednc

放弃长期稳定性:要靠数字多用表本身来保证长期稳定性意味着整个系统每个部分都要有很高的长期稳定性,基准要用深埋齐纳基准,分压电阻要用精密电阻网络等 等,成本会显著提高,相对而言购买或制作标定好的基准(LYMEX有售)要便宜的多,而且在进行对比测量时可以将整体的精度提高到接近外部基准的水平。ZKhednc

放弃交流测量:由于没有设计交流测量系统的条件,所以没有做.ZKhednc

采用手持设备架构:由于现代MCU的集成度非常高,开发工具越来越简便,加之笔者最近在学习STM32,所以就做成手持设备了.ZKhednc

总的讲设计要素的优先关系如下:低成本〉小巧〉低功耗〉高性能ZKhednc

ZKhednc

声明:ZKhednc

本文涉及的内容涵盖危及生命的电学测量,特别提醒实验者确保人身安全!ZKhednc

作者完全出于业余爱好撰写该文,由于能力有限疏漏乃至错误在所难免,因此作者不对该文章(包括附带的其他资料)的正确性负责,同时也不对因援引该文或使 用附带资料导致的信誉损失、商业利益损失、财产损失、人身伤亡等(包含上述内容,但不见限于上述内容)负任何连带责任。ZKhednc

作者完全出于学习目的撰写该文, 该项目被视为非商业性的,作为学习模拟技术/ STM32 的验证平台而被创建,因此没有义务回答非技术问题.ZKhednc

出于互联网之 free&open 精神,作者将对项目涉及的硬件,固件,上位机软件,开发相关的心得,技术参考等会(等待完善后)开源,希望但不要求您在援引该文或使用上述开源资料时提及作者。ZKhednc

功能和指标:

电源:ZKhednc

3.0V~6V供电可用单节磷酸铁锂(3.2V), 单节钴酸锂(3.7V) , 单节锰酸锂(3.6V),三节碱性电池(4.5V),三节镍镉或镍氢电池(3.6V),功耗250mW(开启数据保存),2.9V低电压关机(为了保护锂 电避免过放电),软件电源开关,待机电流<5uA.ZKhednc

测量:ZKhednc

1ppm 分辨率 1ppm 噪声 5ppm 线性度 1ppm温度系数。ZKhednc

电流测量 100mA,10mA,1mA 压降<0.125V , 500mA 熔断器。ZKhednc

电压测量100mV , 1V >10G高阻抗输入, 10V ,100V 9M 低阻抗输入(新版批量采购1.1M的电阻就是标准的10M,后文详述)。ZKhednc

电阻测量 100R 1K 10K 100K 1M 采用恒流方式(对应为1mA ,1mA, 100uA,10uA,1uA)开路电压5V,支持4线模式。ZKhednc

温度测量 采用PT100传感器,可处理到 -200摄氏度~850摄氏度,分辨率0.01度。ZKhednc

除温度测量外都有25%的超量程测量(例如1V可测到1.25V)当开启自动量程转换时连续三个测量读数都超量程时向上换档,连续三个测量读数都欠量程(< 0.11)时向下换档.ZKhednc

系统和软件:ZKhednc

支持SD卡数据存储,导入校准数据,从SD卡更新固件(新版功能)。ZKhednc

支持实时时钟,可设置自动关机,以及定时唤醒数据采集模式。ZKhednc

支持自动量程,0位补偿,数字滤波。ZKhednc

带有简单的帮助。ZKhednc

一些测试视频:ZKhednc

  • flash: http://player.youku.com/player.php/sid/XMjEyMDM1MDI0/v.swf
  • flash: http://player.youku.com/player.php/sid/XMjEyMDM1NTg0/v.swf
  • flash: http://player.youku.com/player.php/sid/XMjEyMDM2MTI0/v.swf
  • flash: http://player.youku.com/player.php/sid/XMjEyMDM0Mzg4/v.swf

设计原理:

(更详细的设计基础见 DIY DMM Reference.doc ,这里只是整体大略介绍下)ZKhednc

电源系统:

ZKhednc

电池供电,首先经过有Q71构成的反接保护电路,之后分为两路,一路经HT7130稳压到3.0V供MCU,另一受Q72的控制作为外设的电源,它连接至两个由LT1372构成的BoostZKhednc

升压器,分别升至15V(供欧姆电流源和OLED偏压)和5V(供模拟部分)ZKhednc

这里采用HT7130主要是考虑到其且具有极低的静态功耗,特别适合为待机的MCU供电。ZKhednc

DCDC变换器采用LT1372是因为其低成本,且该器件具有NFB功能,可以方便的构成Cuk 拓扑结构,组成负电压输出的开关调节器(新版要用到+-15V),虽然由于静态功耗较大,在小电流输出下效率较低,但总体上还是不错的。ZKhednc

MCU 系统:

ZKhednc

MCU 采用STM32F103R6T6 (其实101系列就行,但是市面上没有零售)靠内部的RC振荡器工作在20MHz的频率上(更快没实际意义,且更费电),后备电池使用0.22F的超级电 容,(为了兼容性,又做了个100uF钽电容的焊盘)RTC晶振使MC-306 6pF 32.768K,注意要接入200K的R66否则容易振坏。ZKhednc

MCU使用5线SWD端口进行Flash烧写和调试。ZKhednc

PA0构成软件电源开关,可以从待机模式唤醒MCU。ZKhednc

OLED使用串行模式,4X3矩阵键盘,SD卡采用SPI模式。ZKhednc

其他端口用来控制模拟板。ZKhednc

输入选择:ZKhednc

ZKhednc

先看电压-电阻部分ZKhednc

继电器K1选择将HI输入端子直接接入模拟开关或者进行分压。ZKhednc

继电器K2选择将欧姆电流源注入HI或者LOW。ZKhednc

上面的两个继电器都使用磁保持型的,避免长期通电发热导致热电势误差。ZKhednc

HS,LS,以及HI的输入通过R01-R06以及R17-R1A D17-D16 组成的保护电路被限制在+-2.0V,然后加上从 9串:11并的1.1M分压阵列99:1分压后的电压一起进入8选一模拟开关。ZKhednc

电流部分先经过500mA熔断器-全桥的保护电路,经过继电器选择接入100R 10R 或1R的分流电阻,其上的压降取出后也被送入模拟开关,U01A构成的跟随器将提升二极管桥中点的电位至电流输入端子电位,从而减小了他们的漏电流。ZKhednc

U01B为测量系统提供中点参考电位(也就是LOW端子的电位)。ZKhednc

这里需要提下的是分压电阻采用了50ppm的晶圆电阻构成阵列,下面PCB敷铜均温,从实际效果看还是非常不错的。ZKhednc

U01由于要求不高所以采用了低成本的MCP6002。ZKhednc

模拟开关原计划用MAX328的,但由于货源原因,用ADG508代替了。ZKhednc

程控放大:

ZKhednc

这里采用了AD8629作为主放大器,该器件为低噪声斩波稳零放大器,U20A根据U27选择的反馈信号配置成X1或X10放大器,U20B是一个驱动驱动容性负载的缓冲器,用以驱动ADC。ZKhednc

同样的这里的分压电阻采用了3串:3并构成的9:1分压器,由于要求不高模拟开关采用了采用了高速CMOS的74HC4053ZKhednc

Ref and ADC:

ZKhednc

U44是2.5V精密带隙基准,采用ADR421B他能稳定地驱动1uF的容性负载,最大3ppm/C的温度系数,1.5uV pp 0.1~10Hz 噪声ZKhednc

U43采用24Bit低噪声ΣΔ ADC LTC2440 可提供接近21Bits的有效位。ZKhednc

U41为低噪声LDO调节器LP2985,为模拟部分提供5V电源。ZKhednc

欧姆电流源:

ZKhednc

U31为低偏置电流精密运放AD706,其中U31A和Q31起到参考电压缩放-转移的作用,将2.5V的基准转换成比标准电阻(RJ31~RJ34)公 共端低1V输入到U31B的正,模拟开关用于选择4个标准电阻(开尔文接法),Q32是PJFET受U31B控制保持标准电阻两端的电压为 1V,Q33~Q35 与 D31 组成保护电路(Q34,Q35实际为高反压PNP管2N6520,Q33为低漏电流N-JFET PN1117A)。ZKhednc

DZ1与R30构成降压电路使得U31B的输出能足够的正使Q32截止。ZKhednc

外观介绍:

ZKhednc

最上方的是OLED显示屏,蓝绿色128X32点阵,亮度比较高,在室外强光下也可以看清楚,整体感觉比较像VFD,ZKhednc

下面是3行4列的键盘阵列,在测量模式下他们的意义如下ZKhednc

ZKhednc

(在帮助模式下显示的提示,按下对应位置的按键就会有更详细的英文说明)ZKhednc

ZKhednc

 

VLT 电压测量。ZKhednc

ZKhednc

OHM 电阻测量,如果已经是电阻测量模式了再次按下,就是在4线和2线制之间来回切换。ZKhednc

AMP 电流测量。ZKhednc

TMP 温度测量。ZKhednc

UP 切换到更高的量程,同时关闭自动量程切换。ZKhednc

AR 切换是否开启自动量程转换。ZKhednc

NUL 捕捉当前值作为偏置补偿。ZKhednc

NEW 备份当前的数据文件,创建新的数据文件作为当前文件。ZKhednc

LOW 切换到更低的量程,同时关闭自动量程切换。ZKhednc

DF 切换是否开启数字滤波。ZKhednc

ZRO 将偏置补偿置零。ZKhednc

STR  切换是否开启数据文件保存。ZKhednc

再下面是ZKhednc

PWD     PLED     SDLED     RSTZKhednc

PWD 电源按钮,待机时按下开机,工作时按下呼出系统菜单(位置对应3行4列的键盘阵列)ZKhednc

ZKhednc

这些符号的意义如下:ZKhednc

Help 显示帮助菜单ZKhednc

Off    关机ZKhednc

Auto 切换是否10分钟自动关机ZKhednc

Time 设置系统时间ZKhednc

ZKhednc

(时间菜单的帮助)ZKhednc

ZKhednc

(时钟设置菜单)ZKhednc

Cal 呼出校准菜单,关于校准内容后面会详细介绍ZKhednc

ZKhednc

(校准菜单)ZKhednc

Ver 显示固件版本号ZKhednc

ZKhednc

1M 5M 10M 30M 1H 2H 进入 1分钟到2小时间隔的唤醒采样模式(该模式下按PWD键可以退出唤醒采样模式)ZKhednc

PLED 指示电源良好(工作状态)ZKhednc

SDLED 指示正在进行SD卡的IO操作ZKhednc

RST 为复位键,复位除系统时钟外的所有状态ZKhednc

再下面是SD卡座ZKhednc

再下面是输入端子,水平间距是标准的19.05mm(3/4吋)垂直间距时12.7mm(1/2吋)ZKhednc

上排两个从左到右为            LS端子 ,HS端子ZKhednc

下排三个从左到右为 AMP端子 ,LOW端子 HI端子ZKhednc

数据文件存储:

ZKhednc

当用户安装了SD卡后即可将采集的数据存储其上,当前的存储文件名位为data.csv(可以用Excel直接打开,由于是纯文本格式notepad也可以直接打开,编辑)。ZKhednc

在按下New键后data. csv就会被命名为data_000. csv data_001. csv等等,并且创建一个新的data. csv用来保存后续的数据,一般情况下,建议用户完成一组测量后按下先按下Str停止存盘,选择新的功能或量程,按下New切换文件,并再次按下Str开 启数据保存。ZKhednc

ZKhednc

校准:

DMM 的ADC采样后转化成满量程为+-1.0的值,然后经过 y=kx+c;的线性校准作为输出的读数。在DMM内存为每个量程维护了一组kc值构成一个校准表作为当前校准系数,同时可以将这个校准表烧录到 Flash中,以便长期保存(开机默认加载Flash的内容进校准表)。ZKhednc

校准菜单中对应如下按键ZKhednc

Idty:将校准表归一化(c=0,k=1.25)。ZKhednc

Load:从SD卡读取cal.txt的文件,填充校准表。ZKhednc

Save:将校准表的数据回写进cal.txt文件。ZKhednc

Write: 将校准表的数据烧写进Flash。ZKhednc

Read:加载Flash的内容进校准表。ZKhednc

用户的校准过程是这样的:ZKhednc

准备对应量程的标准源。ZKhednc

准备短路线。ZKhednc

为将待校准的表安装SD卡。ZKhednc

将待校准的表切换到恰当量程,唤出校准菜单,按下Idty,归一化校准表。ZKhednc

短路输入端子,记录读数。(建议开启DF以便获得稳定的度数)。ZKhednc

将源接入输入端子,记录读数。(建议开启DF以便获得稳定的度数)。ZKhednc

将数据输入makecal.exe生成kc值。ZKhednc

修改cal.txt对应量程的kc值。(没有的话可以在校准菜单按下Save生成一个)ZKhednc

为每一个量程重复上述过程。ZKhednc

重启DMM,唤出校准菜单,按下Load,按下Write。ZKhednc

再次重启DMM。ZKhednc

ZKhednc

(校准文件)ZKhednc

ZKhednc

(校准软件)ZKhednc

非常好的尝试,测试了样机,感觉最突出的特点有:ZKhednc

  • 良好的性能,例如短稳、噪音,都达到了相当高的水平
  • 丰富的功能,比如4线电阻、Pt100测温,这主要得益于软件设计
  • 具有SD卡接口,这个非常好,便于独自高精度采集
  • 成本并不高。

(本文转载自单片机DIY论坛,版权归作者所有。责编:Demi Xia)ZKhednc

  • 我也在设计一款三位半开源万用表:https://bbs.21ic.com/icview-3317062-1-1.html,感兴趣的加入进来,一起干
  • 不错。学习学习
  • 能不能加入输入信号频率测量组件
  • 学习学习
  • 学习一下!
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
广告
热门推荐
广告
广告
广告
EE直播间
在线研讨会
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了