Category Archives: 器件使用

国产称重ADC测量PT100心得分享

一、为什么有这个想法
之前一直用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可选

AD7705%E4%B8%87%E8%83%BD%E8%BE%93%E5%85%A5%E7%94%B5%E8%B7%AF%E7%9A%84%E8%BE%93%E5%87%BA%E7%AB%AF%E7%94%B5%E8%B7%AF%E5%9B%BE.jpg

采用AD7705设计的万能信号输入电路

在智能仪器仪表的数据采集中,由于传统的传感器信号是模拟信号,所以对于智能化的仪器,肯定需要A/D转换器将多种输入信号进行转换,以实现单片机的控制。在许多应用场合需要16位以上的高精度测量,而传统的积分型和逐次比较型A/D实现起来难度较大,成本很高。因此本电路采用了16位的∑-∆型AD7705作为模数转换器,实现了电压、电阻电流等不同量程信号输入,进而进行数据的存储和显示。

1.AD7705介绍

AD7705是一种片内带数字滤波的∑-∆型A/D转换器,是为满足宽动态范围测量、工业控制或工艺控制中的低频信号的轮换而设计的。该器件可以接受直接来自传感器的低电平输人信号,然后产生串行的数字输出,利用∑-∆转换技术实现了16位无丢失代码性能。AD7705串行接口可配置为三线SPI接口,增益值、信号极性以及更新速率的选择可用串行输人口由软件来配置,该器件还包括自校准和系统校准选项,以消除器件本身或系统的增益和偏移误差。AD7705的引脚排列如图1所示,各引脚的功能说明如下:

pIYBAGAGrP2AUD7UAAEoQVVQ64Q923.png

图1 AD7705的引脚排列图

SCLK:串行时钟输入;MCLKIN:主时钟输入,时钟频率为500~5MHz;

MCLK OUT:主时钟输出;/CS:片选,低电平有效;

/RESET:复位。该端口为低电平时,可以将控制逻辑、接口逻辑、校准系数以及数字滤波器等复位为上电状态;

AIN2(﹢)、AIN2(﹣):分别为差分模拟输入通道2的正、负输入端;

AIN1(﹢)、AIN1(﹣):分别为差分输入通道1的正、负输入端;

REFIN(﹢)、REFIN(﹣):分别为参考电压的正、负端。为了确保元件的正常工作,REFIN(﹢)端口的输入信号必须大于REFIN(﹣)端的输入;

/DRDY:逻辑输出。低电平表示可以读取新的数据转换;高电平时不可读取数据;

DIN,DOUT:分别为串行数据输入和输出端;

VDD:电源电压,+2.7~+5.25V;GND:内部电路的地电位基准点。

2.电路设计

在该电路设计中,必须考虑隔离技术的实施,以提高系统的抗干扰能力。并且使A/D转换过程容易进行,这是系统关键技术之一。

2.1AD7705输入电路

基于AD7705的万能信号输入电路的输入端电路图,如图2所示:

AD7705%E4%B8%87%E8%83%BD%E8%BE%93%E5%85%A5%E7%94%B5%E8%B7%AF%E7%9A%84%E8%BE%93%E5%85%A5%E7%AB%AF%E7%94%B5%E8%B7%AF%E5%9B%BE.jpg

图2 AD7705万能信号输入电路的输入端电路图

202004231742%E8%BE%93%E5%85%A5%E4%BF%A1%E5%8F%B7%E6%8E%A5%E7%BA%BF%E6%96%B9%E5%BC%8F%E5%9B%BE.jpg

图3 输入信号接线方式图

该电路的3个端子有多种不同的接法,可以实现多种输入信号的采集和转换。这里介绍四种输入信号类型,分别为电压、电流、热电偶、热电阻和电阻,各种输入信号的接线方式,如图3所示。AD7705作为数据采集电路的模数转换器,具有两个双差分输入通道。由于检测的信号有的是双极性的,而两通道是差分模拟输入,只有将模拟输入端负端的电位抬高,才能检测双极性信号,因此,将AIN1(﹣)和AIN2(﹣)接至基准电压VREF上,基准电压值为2.5V,作为输入电路的模拟地端。用两通道的模拟输入正端AIN1(﹢)和AIN2(﹢)来检测输入信号,这两个输入端的电压值分别记为UAIN1(﹢)和UAIN2(﹢),两检测电压最终转换成数字量输出,因此,通过这两个已知的检测电压可以得到输入信号的值。为了提高该万能信号输入电路的精度,AD7705的输入电路部分的所有电阻均为标准电阻。

量程校准:外加输入信号的下限值,采用上位机软件,按画面指示(自动,手动)可进行零点校准;外加输入信号的上限值,按画面指示(自动,手动)可进行满度校准,结果存储在24C64中。

当输入信号为电压时,电压正端接仪表通道A端子,电压负端接仪表通道B端子,电压为0~5V,1~5V,0~2.5V,0~1V,0~100mV,0~55mV,0~25mV,统记为UAB由电路图可知该电压信号经过两个20KΩ的电阻分压后输入到通道2,因此由通道2,AIN2(﹢)来检测该电压信号,UAB与UAIN2(﹢)的关系式如下:

%E5%BC%8F%E5%AD%901.jpg

当输入信号为电流时,电流正端接仪表通道A端子,电流负端接仪表通道C端子,电流值可以为4-20mA,0-10mA,统记为IAC,AC端子之间并联250Ω的标准电阻,使线性电流转换为线性电压,由于基准电压的存在,即使输入电流为0时,经过250Ω和3.6KΩ电阻对基准电压的分压,通道1AIN1(﹢)仍有检测电压的存在,AIN1(﹢)的检测电压值要减去输入电流为0时的检测电压值,检测电压值同样是经过两个20KΩ的电阻分压后得到的。而输入电流分为250Ω和3.6KΩ电阻两个回路,即这两个电阻在电流的回路上是并联的。具体的计算关系如下:

%E5%BC%8F%E5%AD%902.jpg

热电阻是中低温区最常用的一种温度检测器,它的主要特点是测量精度高,性能稳定。热电阻测温是基于金属导体的电阻值随温度的变化而变化这一特性来进行温度测量的,当输入信号为温度时,通过热电阻来检测温度,实际上输入信号就变成了热电阻,求得热电阻的阻值,通过热电阻的阻值与温度的对照关系就求出了温度值。

由于热电阻要安装在被测环境中,距离电阻测量装置有一定距离,这样实际测量的时候就会带来导线电阻的误差,因此实际使用热电阻的时候都是采用三线制接法,通过电路处理,剔除了导线电阻的影响。

热电阻一端接仪表通道A端子,另外两端接仪表通道B、C端子,电阻值可以为Cu50,Pt100,统记为RT。为了推导公式和解释方便,需要对一些变量进行设定。三根导线的电阻值设为RL,从基准电压源出来的总电流为I,通过热电阻这一支路的电流为I1,通过250Ω电阻的电流为I2,两支路的电流最终都通过3.6KΩ电阻,即3.6KΩ电阻的电流也是I,下面开始对热电阻RT进行逐步推到:

%E5%BC%8F%E5%AD%903,4,5.jpg

由上面三个式子可以得到I1,计算整理后得:

%E5%BC%8F%E5%AD%906.jpg

在热电阻这条支路上,由热电阻、导线电阻和电流可以得到通道1检测电压UAC和通道2检测UAB,即UAIN1(﹢)和UAIN2(﹢)的关系式:

%E5%BC%8F%E5%AD%907.jpg
%E5%BC%8F%E5%AD%908.jpg

由公式(6)、(7)和(8)得热电阻RT的计算公式如下:

%E5%BC%8F%E5%AD%909.jpg

输入信号为电阻的情况和热电阻的推导公式相同。

当输入信号为热电偶时,热电偶正端接仪表通道A端子,负端接仪表通道B端子。按IEC国际标准,采用S、B、E、K、R、J、T七种标准化热电偶作为输入信号。在AD7705的两通道对热电偶进行检测时,实际上是对热电偶的电动势进行检测,因此,热电偶与电压作为输人信号的情况相同,只是最终将测得的电压值转换为温度值,有关冷端温度补偿问题由室温测量元件测出冷端温度与输入电压进行相加。

2.2AD7705输出电路

AD7705%E4%B8%87%E8%83%BD%E8%BE%93%E5%85%A5%E7%94%B5%E8%B7%AF%E7%9A%84%E8%BE%93%E5%87%BA%E7%AB%AF%E7%94%B5%E8%B7%AF%E5%9B%BE.jpg

图4 AD7705万能输入电路的输出端电路图

该万能信号输入模块中的24C64芯片,是64K的电可擦除可编程存储器E²PROM。该存储器是用来存储AD7705的信息的,在初始设定时将AD7705的信息写入24C64芯片中,这样AD7705的设置信息将永远保存在该存储器中,以后不用重复设定.24C64芯片和AD7705放在一个模块上,可以即插即用,使用方便。

设计的这个基于AD7705的万能信号输入电路的输出端采用SPI串行通信协议,SPI就是串行外围设备接口,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便。SPI总线系统以主从方式工作,在本电路中SPI总线包括DIN(串行数据输入)、DOUT(串行数据输出)、SCLK(串行时钟输入)和/CS(片选)。

/CS是控制芯片是否被选中的,也就是说只有片选信号为低电平时,对AD7705的操作才有效。因此将片选管脚直接接地,也就是让AD7705始终处于工作状态,这时SPI总线实际上就只剩下DIN、DOUT和负责通信的三根线了,通信是通过数据交换完成的,这里先要知道SPI是串行通信协议,也就是说数据是一位一位的传输的,这就是时钟线SCLK存在的原因,由SCLK提供时钟脉冲,DIN,DOUT则基于此脉冲完成数据传输。数据输出通过DIN线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取。完成一位数据传输,数据输入也使用同样原理。这样,在至少8次时钟信号的改变(上沿和下沿为一次),就可以完成8位数据的传输。

要注意的是SCLK信号线只由主设备控制,即由该仪表的CPU来控制,AD7705不能控制信号线。SPI允许数据一位一位的传送,甚至允许暂停,因为SCLK时钟线由主控设备控制,当没有时钟跳变时,从设备不采集或传送数据;也就是说,主设备通过对SCLK时钟线的控制可以完成对通信的控制。SPI还是一个数据交换协议,因为SPI的数据输入和输出线独立,所以允许同时完成数据的输入和输出;由于本电路是数据采集电路,因此只需要AD7705对数据进行采集输出就可以。

输出端子信号为:

H-24C64数据线和串行同步时钟线;

G、F-24C64地址线;

+、–电源线;

E-AD7705串行时钟线;

D-AD7705数字信号输入、输出线。

结束语

本文总结了采用AD7705的万能信号输入电路设计。该电路实测结果达到了设计标准,具有多种信号输入功能。本电路通道数多,功耗低,精度高,采取隔离设计,抗干扰能力强,运行稳定,可靠性高,可作为各种智能显示仪表的数据采集电路使用。