1、信号采集的基本原理
PT100是将温度信号转换为电阻输出,其电阻值变化范围为0~200Ω。AD转换器只能对电压进行转换,无法采集直接采集温度,因此,需要一个1mA恒电流源给PT100供电,将电阻变化转换为电压变化。使用恒流源的好处,可以延长传感器寿命。由于输入信号范围为0~200mV,因此需要将信号放大,然后进行AD转换,得到电信号数据。
不采用恒压源设计的原因:
若采用恒压源供电,然后再将电阻和PT100串联,通过分压来实现,有点问题,就是当PT100阻值太小时,流过PT100的电流太大,导致传感器寿命变短。
2、运放采用MCP604
MCP604特点:
1)电压范围为2.7~6.0V
2)输出为Rail-to-Rail
3)工作温度范围:-40°C to +85°C
4)输入补偿电压(Input Offset Voltage)为±3mV,典型值为1mV,高灵敏度。
5)输入偏置电流(Input Bias Current)为1pA,当TA = +85°C时,I=20pA,提高采集精度。
6)线性输出电压摆动 (Linear Output Voltage Swing):VSS+0.1 ~ VDD–0.1,单位为V。
当电源电压为3.3V时,线性输出电压摆动为0.1~3.2V。为了保证放大信号工作在线性区,因此,当VDD=3.3V时,我们设置MCP604输出电压保持在:0.5V ~ 2.5V,满足运放电路设计需求。
3、电路图
Vo4 = (Vin1 - Vref)*10
Io=1mA,Vref=Vo3=1.65V
1.7V<=Vin<=1.9V,1.7V<=V02<=1.9
1.8V<=Vo1<=2V,保证运放工作在线性区,这个很重要
0.5V<=Vo4<=2.5V,保证运放工作在线性区,这就是为什么需要串联50Ω的原因。
当输入电阻变化1Ω时,Vout就变化为10mV。由于MCP604输入补偿电压为±3mV,因此,当有0.3333Ω变化时,就会3.333mV变化,采集灵敏度较高。
0<=Rin<=200Ω输入时,由于回路串联50Ω,50Ω<=Rx<=250Ω
Vin1 - Vref = Rx*0.001,单位A
4、软件校准
初出道的工程师总是想方设法提高电阻的精度,然而误差还是很大。还有的工程师干脆用连续可调电阻,通过调节其电阻值,配合万用表,让输出满足传递关系式,这种精度好像是得到了提高,但不方便生产,另外PCB设计难度也增加了。即使调试好了,要是用手误摸调节螺丝,可能会带来误差。唯一的方法,就是用固定电阻生产,采用软件帮忙,实现精准的校准。
1)当Rin=0时,读到一个电压值,记录为V50。保存V50,它不会随PT100阻值的变化而改变,因为采用的是恒流源供电。
2)接入标称电阻,令Rs=100Ω,读到一个电压值,记录为V150。保存V150,它温度为0时,读到的电压值。
3)计算电流放大倍数:Io = (V150 - V50) / Rs;保存Io,就表示校准好了。
4)当输入电阻为R时,读到电压为Vo,则R = (Vo- V50) / Io
通过以上说明,软件校准具有很大的优越性,不仅生产方便,而且精度还高。为了提高精度,也可以将输出电压分成几个区间,分别校准,得到不同的Io,这样,输出线性度会更好。这些想法,都在我的设计中得到体现。
5、计算温度
当温度小于0时,
Ro*C*t^4 - 100Ro*C*t^3 + Ro*B*t^2 + R0*A*t + R0 - Rt=0
当温度大于0时,Rt=1+A*t+B*t*t
说明:
Rt为t℃时铂电阻的电阻值
R0为0℃时铂电阻的电阻值100Ω
A=3.9082×10^-3
B=-5.80195×10^-7
C=-4.2735×10^-12