使用MCP6SX2 PGA的热敏电阻温度检测

2010-12-18 11:24:59 来源:《半导体器件应用》2009年5月刊 点击:1047

简介
本应用笔记将讨论温度测量的两种设计,设计均使用精密的、负温度系数(Negative Temperature Coefficient,NTC)热敏电阻。热敏电阻放置在电阻型分压器中,以便线性化从温度至电压的转换。在转换到数字域进行处理之前,电压由 MCP6SX2(MCP6S22或MCP6S92)可编程增益放大器(Programmable Gain Amplifier,PGA)在模拟域进行处理。
第一个设计要简单一些,温度范围稍小。第二个设计将改变 PGA 的增益,以便获得更宽的温度范围。这两个设计均使用分段线性插值表来校正残留的非线性,并把电压信号转换为摄氏温度。本文还将讨论两种方法之间的设计权衡。
设计电路都很好地利用了 MCP6SX2 的输入多路开关(MUX)。PGA 用来处理多个信号和 /或温度,并为每一个输入数字式地设定最恰当的增益。这将降低设计的总体复杂度,使得对其他传感器所测温度进行校正成为可能。
热敏电阻
本应用笔记中使用的热敏电阻来自 BC Components®,部件编号是2322 640 55103, 见图1和图2。  选择该部件的原因在于其精度和成本。热敏电阻的温度是 TTH,电路其余部分处在环境温度 TA 下。
关键的的参数规格包括[1, 2]:
(1) +25℃的电阻:10 kΩ ± 1%
(2) B25/85 容许误差:±0.75%
(2) 工作温度范围:-40℃ 至+125℃(短时间内能到+150℃)
(3) 最大功率
100mW,TTH = 0℃ 至+55℃
在TTH = -40℃ 和+85℃ 时,功率衰减100%
(4) 热耗散系数:2.2mW/℃
(5) 响应时间:1.7s(在油中)
在本应用中,也可以使用性价比不同的热敏电阻。对电路进行修改以便匹配期望精度还是比较简单的。
电路
稍后所述的两种设计,均使用图3所示的电路。电路在MCP6SX2 PGA Thermistor PICtailTM Demo Board(MCP6SX2 PGA热敏电阻PICtail TM演示板)上实现,见参考文献 [12]。
电阻RA使得电压-温度响应是相当线性的。RB和CB降低了噪声,用作ADC的抗混叠滤波器。MCP6SX2PGA(MCP6S22 [5]或MCP6S92 [6])对电压VDIV 进行缓冲。可以数字式地控制 PGA 来改变其增益或通道(输入)。
PIC16F684 [8] 在信号分析PICtailTM 子板上,见参考文献 [11]。它有一个内部 10 位 ADC,可把 VOUT 转换成数字信号。它还能对 VOUT 进行进一步的处理 (例如,求平均),并能把VOUT 转换为温度。PIC16F684 通过SPI串行总线与PGA进行通讯。
ADC 的参考电压和分压器,由同一个电压供电,构成比例电路; VDD 中的误差将在 ADC 中被自动校正。
第一个设计
设计强调简单性,使用标准的方法来设计热敏电阻电路。使用一块 PGA 来代替传统的运放,从而允许在多个输入之间进行切换。
模拟设计
为了设计简单起见,第一个设计把PGA的增益保持在+1V/V。为了获得室温下最佳性能,电阻RA置为其+25℃ 时的标称值(10.0 kΩ);这是非常常见的设计选择。尽管这是一个更加简单的设计,但其精度相对较低,这一点在下文中将进行说明。注意,图 4 给出的响应,要比 图 1响应的线性度好很多。
设计中可以把+125℃和+150℃之间的温度考虑在内,其目的是在过温时给出指示,此时精度并不那么重要。
热敏电阻的功耗将导致自热温度误差。计算温度范围内热敏电阻的功耗,然后再除以规定的2.2mW/℃ 热耗散系数,得到如图5 所示的自热温度误差。这是小而一致的误差。使用固件中的分段线性插值表,对自热温度误差进行校正是很简单的。
模拟误差分析
图 6 显示的是 ADC 的温度分辨率,而图 7 显示的是预计最坏情形下模拟电路的误差。这两个图都基于下列假设:
(1) ADC的 DC 误差≤±3.5 LSb
(2) PGA的增益误差 ≤±0.1% (G = +1)
(3) PGA的输入失调误差≤±1mV(包括PSRR和温度漂移)
(4) 规定的热敏电阻精度
在 -25℃ 至 +73℃ 的温度范围内,此设计能够获得0.25℃的 ADC温度分辨率。在同样的温度范围内, 模拟电路精度要好于 1.2℃。其他温度范围将有不同的分辨率和精度。
数字设计
PIC16F684 单片机 [11, 12] 处理若干重要任务。它与PGA通信, 设置PGA的输入通道;它能对测量信号取平均值从而降低噪声,然后使用分段线性插值表把结果转换为热敏电阻上的温度。有些单片机有内置的SPI端口,也可以在所有单片机上用软件来实现SPI接口[7]。
流程图
图8的流程图给出了第一个设计的程序流程。固件在“00028 - MCP6SX2 PGA Thermistor PICtail Demo Board”目录下00897 Source Code.zip文件中。固件使用可重定位的汇编代码编写。main.asm 控制总的程序流程。 PGA例程在pga.inc 和 pga.asm 中。热敏电阻例程在Therm_PGA1.inc和Therm_PGA1.asm中。
信号分析PC程序命令PIC16F684固件进行实时采样。固件读取 ADC 的值,然后把值传递给分段线性插值(PwLI)例程。PwLI例程把10位ADC值转换为16位定点十进制的摄氏温度值。定点十进制格式给出的摄氏温度以十分之一度为单位。以十分之一度为单位进行分段线性插值,给出的摄氏温度分辨率更高。最后,16位摄氏温度值传送给信号分析 PC 程序,显示在实时柱状图上。
在第一个设计中,设计人员可以选择显示带十分位小数的温度,也可对温度小数进行四舍五入取整。
分段线性插值表
设计使用分段线性插值表[9],把ADC输出编码转换为估计温度。ADC编码分成64段,每段16个编码。插值表中的编码,是段与段之间的端点(分界点)。表1所示是为第一个设计选择的端点。 
表 1  插值表端点
增益
(V/V) ADC编码(LSb) TTH
(℃) RTH
(Ω) VOUT
(V)
1 1008 -49.4 630k 4.922
 16 156.1 159 0.078

热敏电阻规定温度范围(-40℃至+150℃)之外的RTH值,制造商没有给出,只能进行估计。表1中已经包含了热敏电阻的自热误差校正。
表中在-40℃ 至 +150℃ 温度范围之外的项,是为了确保在读数溢出时分段线性插值表也能正常使用。在插值算法中,表中位于有效范围之外的值,将用最接近的有效值来代替。这意味着,当ADC 编码 >1008 时,表将返回 -49.3℃ 的值。当 ADC 编码 <16 时,表的返回值将是156.1℃。
数字误差分析
图9 给出了插值表的估计插值误差。在温度靠近极限值时,本设计的 ADC 分辨率比较差。在 -25℃ 至 +73℃的温度范围内,分段线性插值表的精度是 0.05℃。在-40℃ 至 +150℃的温度范围内,精度下降到1.0℃。
数字圆滑误差大致与 ADC 温度分辨率曲线的包络线成正比(见图6)。如果圆滑误差比 ADC 分辨率小很多的话,误差几乎没有什么影响。
总的数字误差包括分段线性插值误差和圆滑误差。
第二个设计
设计强调的是精度和分辨率。它利用 PGA 的变增益能力,改变增益,从而克服第一个设计的局限。如果需要的话, PGA还可以在多个输入间进行切换。
模拟设计
第二个设计改变了PGA的增益,从+1至+8再至+32 V/V。 电阻RA被设置为28.0 kΩ,从而在低温时电压-温度响应相当程度上是线性的,见图10(与图 4 比较)。温度较高时, 响应曲线几乎是水平的,从而要增大PGA的增益,进行补偿。尽管该设计要复杂一些,但其分辨率和精度要比第一个设计高。
设计中可以把+125℃和+150℃之间的温度考虑在内,目的是在过温时给出指示,此时精度并不那么重要。
热敏电阻的功耗将导致自热温度误差。计算温度范围内热敏电阻的功耗,然后再除以规定的2.2mW/℃ 热耗散系数,得到如图 11 所示的自热温度误差。这是小而一致的误差。使用固件中的分段线性插值表,对自热温度误差进行校正是很简单的。
PGA增益
在较高温度时,VDIV 对温度的灵敏度较低 (图 10)。设计时是有意这么做的,这样当温度增加时可以把PGA的增益设置得更高 (图 12)
选择增益改变点,以合理的成本尽可能地提高 ADC 的分辨率 (见图 13)。为了使固件中分段线性插值表最小,增益的数目应该比较小。
每个范围中允许的最大电压要比 VDD 低 300mV。这将使 PGA 在其规定输出范围之内,同时也为噪声留下了一些裕量。允许的最小电压与地电压之差要远远大于300mV,这将使PGA 工作在其线性度最佳的区域。
随机噪声可能将使得PGA增益的改变较为频繁。给 (固件中的)增益选择算法添加迟滞将减轻这一问题。迟滞应该足够大,以便补偿 PGA 的最大增益误差(±1%)。
图 12 和表 2 所示分别是较低温度和较高温度变化时1.7℃和 2.0℃ 的迟滞。  增益改变点之间的电压距离是VDIV 的 6%,是 PGA 最大增益误差的七倍,这将确保增益改变算法能够正常工作。表 2 中已经对热敏电阻的自热误差进行了校正。
表 2  带迟滞的 PGA 增益改变点
增益
(V/V) 增益改变(V/V) ADC编码(LSb) VDIV
(V) TTH
(℃)
1 1→8 <113 0.552 50.9
8 8→1 >960 0.586 49.2
 8→32 <226 0.138 94.6
32 32→8 >960 0.146 92.6

模拟误差分析
图 13 显示的是 ADC 的温度分辨率,图 14 显示的是预计最坏情况下模拟电路的误差。这两个图都基于下列假设:
(1) ADC的 DC 误差≤±3.5 LSb;
(2) PGA 的增益误差≤±1%(G = +1时是 ±0.1%);
(3) PGA的输入失调误差≤±1mV(包括PSRR和温度漂移);
(4) 规定的热敏电阻精度。
在 -40℃ 至 +150℃ 的温度范围内,此设计能够获得0.27℃ 的 ADC 温度分辨率。在同样的温度范围内,模拟电路精度要好于 3.0℃。其他温度范围将有不同的分辨率和精度。
数字设计
PIC16F684 单片机 [11, 12] 处理若干重要任务。它与PGA通信,设置PGA的增益和输入通道;它能对测量信号取平均值从而降低噪声,然后使用分段线性插值表把结果转换为热敏电阻上的温度。有些单片机有内置的SPI端口,也可以在所有单片机上用软件来实现SPI接口[7]。
流程图
第二个设计的流程图如图 15 所示。它与第一个设计的程序非常相似,区别是它增加了 PGA 迟滞例程。固件在 00897 Source Code.zip文件中。固件使用可重定位的汇编代码编写。main.asm 文件控制总的程序流程。 PGA例程在pga.inc 和 pga.asm 中。热敏电阻例程在 Therm_PGA2.inc和Therm_PGA2.asm 中。
信号分析PC程序命令PIC16F684固件进行实时采样。固件读取 ADC 的值,然后把值传递给 PGA 迟滞例程。图16给出了 PGA迟滞例程的细节。例程将检查设定的PGA 增益是多少 (变量PGAgain)。根据PGAgain,ADC值与端点(分界点)值进行比较。如果ADC值在分界点的值之外,就把 PGAgain 置为最接近的高或低增益设定值。在退出PGA迟滞例程之前,固件检查PGA-gain是否改变。如果没有改变(返回0) ,程序继续执行。如果有改变(返回1) ,固件将重新读取 ADC 值。
一旦知道了PGA增益和ADC 的值,这两个值就会被传递给分段线性插值例程。根据 PGA 的增益设定,查阅正确的查找表。PwLI 例程把 10 位 ADC 值转换为 16位定点十进制的摄氏温度值。定点十进制格式给出的摄氏温度以十分之一度为单位。以十分之一度为单位进行分段线性插值,给出的摄氏温度分辨率更高。最后,16位摄氏温度值被传送给信号分析 PC 程序,显示在实时柱状图上。
在最后的设计中,设计人员可以选择显示带十分位小数的温度,也可对温度小数进行四舍五入取整。
分段线性插值表
三个增益中的任何一个都要使用分段线性插值表[9],把ADC 输出编码转换为估计温度。在每个插值表中,ADC编码分成 64段,每段 16个编码。插值表中仅有段与段之间端点的 ADC 编码。对于这三张插值表,每张表中极限有效值如表 3 所示。
表 3  插值表端点
增益
(V/V) ADC编码(LSb) TTH
(℃) RTH
(Ω) VOUT
(V)
1 960 -43.5 420k 4.688
 112 51.2 3.44k 0.547
8 960 49.2 3.72k 4.688
 224 94.9 787 1.094
32 960 92.6 845 4.688
 208 150.9 179 1.016

热敏电阻规定温度范围(-40℃至 +150℃)之外的 TTH和 RTH 值,制造商没有给出,只能进行估计。表 3 中已经包含了热敏电阻的自热误差校正。
表中在 -40℃ 至+150℃ 温度范围之外的项,是为了确保在读数溢出时分段线性插值表也能正常使用。在插值算法中,表中位于有效范围之外的值,将用最接近的有效值来代替。这意味着,当 G=1 且 ADC 编码 >960时,表将返回 -43.5℃的值。当 G=32 且 ADC 编码<208 时,表的返回值是150.9℃ 的值。
表 3 中其他在端点之外的项(例如,靠近增益改变点)是零,因为迟滞算法将阻止对它们的读取。这种方法已经用在可读性控制中。
数字误差分析
图 17给出了插值表的估计插值误差。改变PGA的增益将能够充分利用ADC的分辨率。  在-40℃至+150℃的温度范围内,该分段线性插值表的精度是 0.034℃。提高的 ADC 温度分辨率,使得本设计的分段线性插值表的性能要比第一个设计的好很多。
数字圆滑误差大致与ADC温度分辨率曲线的包络线成正比(见图13)。如果圆滑误差比ADC分辨率小很多的话,误差几乎没有什么影响。
总的数字误差包括分段线性插值误差和圆滑误差。
设计比较
图18所示是热敏电阻的规定精度。对于前述两个设计,它导致的误差是相同的。
图19比较了第一、第二个设计之间的 ADC 温度分辨率。第二个设计更好,因为改变 PGA 的增益有助于提高ADC的温度分辨率。
图 20 比较了两个设计之间的模拟电路误差。在温度较高时,第二个设计的误差更好,因为 ADC 的温度分辨率更好。第二个设计的误差在较低温度时也更好,因为RA 的选择能够使较低温度时从温度到电压的转换呈线性。
数字分段线性插值误差的比较见图21。第二个设计的性能要好很多,因为线性插值表中的分段覆盖了更小的温度变化。
图 22 比较了第一、第二个设计的总误差(热敏电阻加电路加分段线性插值误差)。为简单起见,没有考虑数字圆滑误差。
两个设计之间的折衷权衡,概括在表4 中。
表 4  折衷权衡
判据 第一个设计 第二个设计
温度范围 中 高
温度精度 低 高
增益改变时的不连续性 — ±0.3℃
固件大小 低 中

测量结果
在基准平台上对两个设计进行测量。使用 MCP6SX2PGA热敏电阻PICtailTM演示板上的可变电阻Rvar来仿真热敏电阻,请参阅文献 [12]。根据电阻的标称值,把ADC输出转换为估计的热敏电阻温度。 图23 所示是第一个设计的测量误差,  图24是第二个设计的测量误差。
注意,高温时,为了获得相距 5℃ 的数据点,需要给Rvar 串联一个电阻。
图23和图24都与设计结果吻合;第二个设计的性能要好得多。 Rvar 中容差为 1% 的电阻给出的误差大致与热敏电阻误差相同。
然后,使用设计 # 2,用热敏电阻测量室温。结果是:ADC 编码 281,增益 +1,对应的温度是 23.7℃(74.7 °F)。
其他设计选择
本应用笔记的参考文献中,给出了关于其他设计途径的信息。 AN685 [3]讨论了使用热敏电阻的更传统的应用电路。 AN867 [4] 给出了另一种使用 PGA 的热敏电阻电路,可供选择;电路的灵活性更大,但增加了设计成本和复杂性。 AN990 [13]对传感器进行了综述。
以下小节讨论如何对本应用笔记的设计进行修改。
增加精度
为了获得更佳的精度,模拟元件需要更加精密。12 位ADC(例如,MCP3201)将增加分辨率。允许误差为0.1% 的电阻 RA 将减少电路误差。
对热敏电阻进行校准[1, 2],将消除大部分由它引起的过程变化。对电路进行校准,可能也会带来好处。但这将增加固件的复杂程度以及单片机上的执行时间,除非校正已经包含在线性插值表中。
分段线性插值表可能需要更多的项,尤其是对于第一个设计。计算要求的精度更高,但这将导致更慢的处理时间。
其他增益
第二个设计可以使用其他增益来完成。增大增益的缺点是需要更多的分段线性插值表,这将增大固件的大小。
增加一个在 +1 和+8 之间的增益,将提升 ADC 的分辨率。增益精度的下降(从 G=+1 时的 0.1% 下降到G≥+2时的1%) 降低了总的精度,尤其是增益为+2时。如何折衷取决于具体的设计。
增加一个在 +8 和 +32 之间的增益,能够同时提升更高温度下的精度和ADC 分辨率。增益取+16 就很好。
去掉+32 的增益,对于温度范围缩小(比如,+125℃)的设计,可能比较有吸引力 。一种折衷的办法是把增益从+32 改变至+16,而不是去掉 +32的增益。
当增益都使用同一个乘法器相互关联时,迟滞算法还能简化。当 G=1、2、4、 8、 16 以及 32 时,乘数为2。当G=1、4 和16 时,乘数是 4。增益的增加都发生在某一个 ADC 编码处,增益的下降也都发生在另一个ADC编码处。于是,迟滞算法只需要把ADC编码与两个编码值进行比较,根据比较结果改变增益。
更多输入通道
如果需要在超过两个输入(包括其他温度传感器)间进行多路切换并送入 ADC 的话,可考虑提供更多通道的6通道MCP6S26和8通道MCP6S28 PGA。 热敏电阻的输入可以用来校正其他传感器信号,诸如湿度传感器等。
运放缓冲器
如图3所示的MCP6SX2 PGA, 可以用单位增益缓冲器来替代;Microchip的MCP6001运放就是不错的选择。
这样做在简单性和成本方面均有好处,但缺点是不能在多个输入信号间进行切换,也不能通过改变 PGA 的增益来提高ADC 的温度分辨率。
远程热敏电阻考虑事项
如果热敏电阻与 PGA 相距较远(例如,不在同一块PCB上),那么可能需要改变设计。可能的考虑事项包括:
(1) 屏蔽传感器信号拾取线
(2) EMI滤波和保护
(3) 线路电阻电压降
(4) 热敏电阻地和PCB 地之间不匹配
总结
本文给出了两个不同的电路设计,电路设计均使用MCP6SX2 PGA和精密的NTC热敏电阻。两个设计对简单性、精度和温度范围进行了折衷与权衡。
第一个设计的实现更为容易,但温度范围较小。可以使它更精确,或者覆盖更宽的温度范围,但要使用更昂贵的元件,需要更多的模拟设计工作。
尽管第二个设计的固件占用的固件空间更大,但模拟设计却是非常合理的。它利用了PGA的灵活性和数字控制,降低了模拟误差,提高了温度分辨率。
MCP6SX2 PGA的输入MUX和数字控制增益,显著地提升了这些电路的效用。一片 PGA 就能处理多个传感器和 / 或输入信号,这降低了元件数量。对其他传感器进行温度校正也变得更加容易。在这种情况下, NTC 热敏电阻电路的边际成本是合理的。
参考文献
[1] “2322 640 5... : NTC thermistors, accuracy line”,产品数据手册,BC Components®,2001年9月27日(www.bccomponents.com)。
[2] “Introduction to NTCs: NTC Thermistors”,数据手册,BC Components®,2001年3月27日(www.bccomponents.com)。
[3] AN685,“Thermistors in Single-Supply Temperature Sensing Circuits”,Bonnie C.Baker;Microchip Technology Inc.,DS00685,1999年。
[4] AN867,“Temperature Sensing with a Program-mable Gain Amplifier”,Bonnie C. Baker ;Microchip Technology Inc.,DS00867,2003年。
[5] MCP6S21/2/6/8数据手册, 《单端轨到轨I/O低增益 PGA》,Microchip Technology Inc.,DS21117A_CN,2003年。
[6] MCP6S91/2/3数据手册,《单端轨到轨输入/输出低增益 PGA》,Microchip Technology Inc.,DS21908,2004年。
[7] AN248,“Interfacing MCP6S2X PGAs to PICmicro® Microcontroller”,Ezana Haile;Microchip Technology Inc., DS00248,2003年。
[8] PIC16F684数据手册,《采用纳瓦技术的14引脚8位CMOS闪存单片机》,Microchip Technology Inc.,DS41202E_CN,2004年。
[9] AN942,“Piecewise Linear Interpolation on PIC12/14/16 Series Microcontrollers”,John Day 和 Steven Bible ; Microchip Technology Inc., 2004年。
[10]“PICkit 1 Flash Starter Kit User's Guide”,Microchip Technology Inc.,DS40051,2004年。[11] “Signal Analysis PICtail Daughter Board User's Guide”,Microchip Technology Inc.,DS51476,2004年。
[12]“MCP6S2X PGA Thermistor PICtail Demo Board User's Guide”,Microchip Technology Inc.,DS51517,2006年。
[13]AN990,《模拟传感器的调理电路概述》,Kumen Blake,Microchip Technology, Inc.,2005 年。

本文为哔哥哔特资讯原创文章,未经允许和授权,不得转载,否则将严格追究法律责任;
Big-Bit 商务网

请使用微信扫码登陆

x
凌鸥学园天地 广告