一、为什么有这个想法
之前一直用ADI的芯片来测量PT100,测量效果是不错的。但是最近进口ADC芯片越来越难买,价格也越来越高。而国产的称重专用的ADC芯片价格便宜又好买。有没有可能用国产称重ADC来测量PT100呢?
之前逛论坛,就发现有网友提出类似的需求。我第一眼的想法就是没问题,24位ADC测一个PT100还不容易。深入了解了一下,却发现有很多问题。当然既然写这篇文章,这些问题都被解决了,下面就来说一下解决问题的过程。
需要说明的是,我分享的是我找到的一个可以实现的方法,不代表没有别的方法,也不代表这个方法就是最好的。同时本文只是一个经验分享,不提供技术支持。
二、设计目标
我的习惯是任何应用技术的开发都要能够落实到一个具体的产品上。既然是用低成本的国产称重ADC,那么就想要开发一个低成本、高精度的PT100测量电路。原因如下:
首先,国产称重ADC一般只要一两元,那么周围的器件也要和这个成本配套。不能说,用了便宜的ADC却用几块钱的高精度运放或者精密电阻,这样就发挥不出ADC低成本的优势了。
其次,目前市面上有很多低精度的PT100测量方案,用MCU内部的ADC进行测量,成本非常低。如果我们用了独立的ADC,精度却做不高。那么这个产品或者这个技术也没有开发的意义了。
三、测量方案
PT100分为两线制、三线制和四线制。两线制没法对导线电阻进行补偿,不符合高精度的要求。四线制PT100不常用且成本高,不符合低成本的要求。所以最终选用三线制的测量方式。虽然三线制比起四线制测量,难度还要更高一点。
测试电流的选择,也决定了系统的精度。PT100要求测试电流不能大于1mA,否则就会因为自身发热而影响测量精度。实际应用时,我们往往会用到比PT100精度更高的分辨率,如0.01℃。那么就要求测试电流更要小一点。但是测试电流太小的话,信号就会太小,测量不容易,同时也容易收到外界的影响和干扰。所以我觉得0.1mA~1mA是比较合适的,最终我选定的是0.5mA左右测试电流。
四、常用电阻测量方法简介
常用的测试电阻方式主要有以下三种:
1、给待测电阻一个恒定的电流,然后测两端的电压。
2、将待测电阻和基准电阻串联后,供给一个恒定的电压,测两者之间的电压比。
3、将待测电阻和基准电阻串联后,供给一个恒定的电流,测两者之间的电压比。
后两种统称为比例测量。比例测量时,一般是把基准电阻上的电压作为ADC的基准电压,然后去测量待测电阻上的电压,这样测量到的AD码就是和待测电阻成正比的,很容易计算。同时只要保证基准电阻的精度,就可实现高精度测量。
这两种方案,没什么本质的区别,如果系统中有免费的电流源,比如某些ADC芯片会提供电流源,那么就可以使用第三种方案。毕竟恒流的话,对于控制待测电阻的发热,和补偿ADC的输入电流还是有一定好处的。在本次设计中,因为用的ADC芯片自带的LDO可以实现恒流源,一开始采用了方案三的测量方式。可惜实际做下来,这种方案稳定性不行,最后还是采取了方案二恒压比例测量。
五、芯片选型
如前所述,本次设计我们要实现一个低成本高精度的三线制PT100的测量电路,同时这颗ADC又要容易购买。于是我就到各个芯片网站上,去找了一些有货且价格合适的芯片,把相关的指标列在下表。
型号
|
通道数
|
放大倍数
|
基准
|
价格
|
其他
|
HX717
|
2
|
8,64,128
|
与电压输出共用
|
2.28
|
含LDO
|
HX711
|
2
|
32,64,128
|
与电压输出共用
|
2.14
|
|
HX712
|
1
|
128
|
独立基准
|
1.4
|
|
HX710
|
1
|
128
|
独立单端基准
|
1.15
|
|
CS1237
|
1
|
1,2,64,128
|
独立基准
|
1.43
|
|
CS1238
|
2
|
1,2,64,128
|
独立基准
|
3.43
|
|
TM7711
|
1
|
128
|
独立单端基准
|
1.66
|
|
最终我选择了HX717,主要是放大倍数合适。如果测试电流选用0.5mA,那么信号范围就是200mV。显然只有8倍放大倍数才是合适的。其次他的双通道也适合三线制测量,而且还送了一个LDO。最最关键的是,我开始设计时HX717只要一块多,可惜现在涨价了,希望以后会降回来吧。
但是HX717有一个缺点,就是没有独立的基准输入,他的基准输入是和他的LDO输出公用的,也就是没有办法再使用传统的比例测量方式。
六、全新的比例测量方式
HX717啥都好,就是没有一个独立基准。而且他这个基准,输入电流还很大,据实测要达到1uA这样的数量级,测试电流只有500uA。1uA的输入电流,会影响的测量的准确度。国产称重ADC很多都不给出基准输入电流的指标,实测基本上都是1uA这个数量级上,所以即使有独立的基准,其实也不能简单的采用传统的比例测量方式。
于是我想了另外一种比例测量方式,就是将待测电阻和基准电阻串联后,供给一个恒定的电压,然后用这个恒定的电压作为ADC的基准电压,去测待测电阻两端的电压。这种方式,就特别适合HX717,因为他们两个本来就是连在一起的。同时由于这种方式基准的输入电流可以忽略,也适合HX717这类的ADC。
原理图解释:HX717的3号脚为LDO输出和基准输入,通过R3,R4的分压反馈到4号脚,决定了LDO的输出电压为3.3V。这个电压通过基准电阻R2输出给PT100,然后返回来,接到基准电阻R1,最后通过一个MOS管接入到地。
R1和R2为两个3kΩ的基准电阻,相当于一个6k的基准电阻。之所以用两个基准电阻,是因为这样就可以使PT100信号的共模电压处于3.3V的中间点1.65V,ADC线性会好一点。MOS管是用来系统调零用的,当MOS管断开时,流过PT100的电流就为0。此时ADC的输出值,就可以作为系统的零点。这样除了可以补偿ADC零点的漂移外,还能补偿系统回路里部分接触电势的影响。
PT100上的电压和导线电阻上的电压,被分别接到HX717的两个ADC通道进行测量。基准电阻采用了10ppm/℃的电阻,两个的话也只要两毛多钱,其他都是些电容、电感滤波器件。系统整体的成本是非常低的。测量部份也就三块钱左右。
八、测量结果的计算
全新测量方式,解决了电路上存在的问题。但是带来一个更大的问题就是,测量出来的AD码和待测电阻不是成线性的关系,需要进行一个非线性修正。同时怎么对系统进行校准,怎么把校准做到可批量生产,也是一个巨大的难题。
通过matlab拟合求解,我找到了一种可以批量补偿的算法流程。其中需要应用一些特制的工具经行校准,处于保护的目的,这里就不公开方法了。大家需要用这个技术的话,可以直接用我的校准好的成品或半成品。
九、效果展示
测量特性如下:
RTD类型:Pt100、Cu100、Cu50可选
测量方式:三线制、两线制可选
温度测量范围:-200℃~859℃,分辨率:0.01℃,精度:0.1℃(典型值)
总电阻测量范围:0Ω~400Ω, 分辨率:1mΩ,精度:0.02%(典型值)
导线电阻测量范围:0~40Ω, 分辨率:1mΩ,精度:0.2%(典型值)
测量电流:<0.55mA
增益温度漂移:15ppm/℃(典型值)
采样速度:10Hz、20Hz、80Hz可选