MAX16031/MAX16032系统监控中的外部温度传感器校准
Abstract
MAX16031/MAX16032系统监控器能够利用外部连接成二极管的晶体管检测远端温度。连接成二极管的晶体管特性与温度有关,可以通过简单方式测量温度。这一特性会隐晶体管类型的不同而略有差异,因此,MAX16031/MAX16032在提供准确的温度之前需要首先进行校准。
MAX16031/MAX16032 EEPROM可配置系统监测器用于监测复杂系统中的电压、温度和电流。这些EEPROM可配置器件允许用户更加灵活地选择工作范围,温度、电压和电流的上限和下限,缺省输出配置以及工作模式,并且能够在器件中存储这些数据。
MAX16031可以监控8路电压、3路温度(1路内部温度/2路远端二极管的检测温度)和1路电流。MAX16032可以监控6路电压、2路温度(1路内部温度/1路远端二极管的检测温度)。监测变量中的任何一个可以复用到ADC输入,转换结果被写入各自的寄存器,通过SMBus™总线或JTAG接口可以读取这些数据。
因为校准参数与具体应用电路中使用的二极管类型有关,需要用户将校准参数装载到EEPROM中,用于外部温度传感器的校准。本应用笔记提供了外部温度传感器校准的步骤,这里主要介绍了常用的双电流温度测量法,并介绍了MAX16031/16032使用的特定的双电流测量法。本文以连接成二极管的2N3904晶体管为例介绍具体的校准步骤。
温度测量
所有半导体器件的特性都与温敏有关,我们感兴趣的是正向偏置的PN结的IV曲线随温度的变化非常明显,以下二极管方程给出了这一特性:
式中,T是测量得到的绝对温度(单位为开尔文),n为二极管理想系数,k为玻尔兹曼常数(1.38e-23),q为一个电子的电量(1.6e-19),VBE为正向导通电压,IS为反向饱和电流,I为二极管的正向电流。
一种简单、准确的温度测量方式是检测两个不同的流过二极管的电流,该电流通过在二极管上施加不同的正向偏置电压(基极-发射极之间的电压)获得,由此可以抵消二极管的IS,使二极管正向电压(基极-射极之间的电压)之差与温度呈线性关系。下式给出了利用两个电流IH、IL计算温度的关系式:
式中,ΔVBE是测量两个电流时的基极-射极电压之差,IH是较高的正向电流,IL是较低的正向电流,其它参数如上所述。如果把T转换成摄氏度,公式如下:
从该式可以看出:温度与ΔVBE成线性比例关系,比例系数由物理常数、二极管理想系数、两个正向电流之比决定。
MAX16031/MAX16032温度测量
MAX16031/MAX16032按照上述方式利用外部二极管的两个电流测量值检测温度。确定比例并将ΔVBE转换成数字量后,器件减去一个固定温度偏差-273.15,即可获得摄氏温度,分辨率为0.5°。
需要对温度检测电路进行校准,以补偿不同二极管的理想系数,MAX16031/MAX16032的外部温度传感器需要两个校准数据:增益和失调。
增益存储在寄存器r19h[7:2] (传感器1)和r4Fh[5:0] (传感器2)中,用于控制IH电流(IL电流固定为6µA)。表1列出了增益寄存器中每一位的权值,例如,110000b表示IH为84µA。
表1. 增益寄存器位的权值
r19h[7:2], r4Fh[5:0] Bit | IH Value Added to 80µA (µA) | |
Logic '1' | Logic '0' | |
0 | +0.25 | 0.0 |
1 | +0.25 | 0.0 |
2 | +0.5 | 0.0 |
3 | +1.0 | 0.0 |
4 | 0.0 | +2.0 |
5 | +4.0 | 0.0 |
失调存储在寄存器r1Bh[7:5] (传感器1)和r4Dh[6:4] (传感器2),与温度转换结果相加用于补偿失调误差。表2列出了可能的失调值。
表2. 失调寄存器数值
r1Bh[7:5], r4Dh[6:4] Value | Offset (°C) |
100 | +8 |
101 | +6 |
110 | +4 |
111 | +2 |
000 | 0 |
001 | -2 |
010 | -4 |
011 | -6 |
使用MAX16031评估板(EV kit)时,评估软件可以方便地通过图1中的Temperature Settings对话框设置校准寄存器,在Current and Temperature标签中(图2),点击蓝色链接External Temperature 1或External Temperature 2进入每个温度监测通道的配置对话框。
图1. 温度设置对话框
图2. 电流和温度配置标签
在校准过程以及正常操作中,启用内部数字温度检测滤波器很有帮助。在评估软件中,从Miscellaneous下拉菜单中的Temp sense filter time constant标签选择中心频率。寄存器r5Bh[6:4]的对应值请参考表3。
表3. 温度检测的数字滤波器
r5Bh[6:4] Value | Cutoff Frequency (Hz) |
000 | Filter Disabled |
001 | 2.53 |
010 | 5.06 |
011 | 10.1 |
100 | 20.2 |
101 | 40.5 |
110 | 81 |
111 | 162 |
校准过程
为了校准MAX16031/MAX16032的温度检测电路,需要在两个不同温度下测量数据。温度相差越大,测量结果越准确。为了简单起见,第一个温度值可以设置在+25°C;为了获得较高精度,第二个温度最好高于室温,而不是低于室温,+85°C是比较好的选择。为了达到最高精度,应该在-40°C和+85°C测量数据。在下面的MAX16031例子中,校准数据取自+25°C和+85°C,选择Fairchild的2N3904晶体管,集电极和基极连接在一起构成二极管形式。
为了获得最佳结果,需要校准的传感器应该放置在温度可控的绝缘液体恒温槽内。我们使用的是Fluorinert™ FC-77液体,也可以选择矿物油等液体。如果没有恒温槽,可以把传感器放置在具有较大散热器的金属物体上(以保持校准过程中的温度稳定性),然后置于商用烤箱内。
按照以下步骤获得校准数据:
- 确认失调寄存器清零。
- 将温度设置在低温值(本例采用+25°C),确保足够的稳定时间。
- 将增益寄存器设置到80µA。
- 记录MAX16031的返回数据。
- 在不同的增益下重复第4步。
- 将温度设置在高温值(本例采用+85°C),确保足够的稳定时间。
- 重复步骤3、4和5。
TERR = TMAX16031 - TMEASURED | 公式4 |
然后计算不同温度下的误差之差:
Δ = TERR_85 - TERR_25 | 公式5 |
表4给出了一组校准数据示例,Gain Reg Code和Gain Value (µA)栏中列出了增益寄存器的设置数据和等效的电流值。TMAX16031 (°C)栏给出了不同增益设置下,在低温(+25°C)和高温(+85°C)时MAX16031的温度转换结果。TERR (°C)栏为MAX16031的温度转换记录与实际测量温度的差值。Δ (°C)栏则列出了高温和低温下的误差之差。
表4. 校准数据示例
Gain Reg Code | Gain Value (µA) | TMAX16031 (°C) | TERR (°C) | Δ (°C) | ||
+25 | +85 | +25 | +85 | |||
0x10 | 80 | 17.5 | 75 | -7.5 | -10 | -2.5 |
0x12 | 80.25 | 17.5 | 75.5 | -7.5 | -9.5 | -2 |
0x14 | 80.5 | 17.5 | 76 | -7.5 | -9 | -1.5 |
0x16 | 80.75 | 18 | 76.5 | -7 | -8.5 | -1.5 |
0x18 | 81 | 18.5 | 76.5 | -6.5 | -8.5 | -2 |
0x1A | 81.25 | 18.5 | 77 | -6.5 | -8 | -1.5 |
0x1C | 81.5 | 19 | 77.5 | -6 | -7.5 | -1.5 |
0x1E | 81.75 | 19.5 | 78 | -5.5 | -7 | -1.5 |
0x0 | 82 | 20 | 78.5 | -5 | -6.5 | -1.5 |
0x2 | 82.25 | 20 | 79 | -5 | -6 | -1 |
0x4 | 82.5 | 20.5 | 79 | -4.5 | -6 | -1.5 |
0x6 | 82.75 | 21 | 79.5 | -4 | -5.5 | -1.5 |
0x8 | 83 | 21 | 80 | -4 | -5 | -1 |
0xA | 83.25 | 21.5 | 80.5 | -3.5 | -4.5 | -1 |
0xC | 83.5 | 22 | 81 | -3 | -4 | -1 |
0xE | 83.75 | 22.5 | 81.5 | -2.5 | -3.5 | -1 |
0x30 | 84 | 22.5 | 82 | -2.5 | -3 | -0.5 |
0x32 | 84.25 | 23 | 82 | -2 | -3 | -1 |
0x34 | 84.5 | 23 | 82.5 | -2 | -2.5 | -0.5 |
0x36 | 84.75 | 23.5 | 83 | -1.5 | -2 | -0.5 |
0x38 | 85 | 24 | 83.5 | -1 | -1.5 | -0.5 |
0x3A | 85.25 | 24.5 | 83.5 | -0.5 | -1.5 | -1 |
0x3C | 85.5 | 24.5 | 84 | -0.5 | -1 | -0.5 |
0x3E | 85.75 | 25 | 84.5 | 0 | -0.5 | -0.5 |
0x20 | 86 | 25.5 | 85 | 0.5 | 0 | -0.5 |
0x22 | 86.25 | 25.5 | 85 | 0.5 | 0 | -0.5 |
0x24 | 86.5 | 26 | 85.5 | 1 | 0.5 | -0.5 |
0x26 | 86.75 | 26.5 | 86 | 1.5 | 1 | -0.5 |
0x28 | 87 | 26.5 | 86.5 | 1.5 | 1.5 | 0 |
0x2A | 87.25 | 27 | 87 | 2 | 2 | 0 |
0x2C | 87.5 | 27.5 | 87 | 2.5 | 2 | -0.5 |
0x2E | 87.75 | 28 | 87.5 | 3 | 2.5 | -0.5 |
下一步是查找增益和失调校准参数,检查Δ (°C)栏并找到最接近零的数值。本例中,87和87.25两行增益设置都包含零值,说明可以忽略增益误差。然后检查TERR (°C)栏的数值,查找误差值可以由失调寄存器数值消除的对应行。这里选择了失调误差为2的那一行,因为失调寄存器的数值‘001’可以消除这一误差。
现在,可以将得到的失调寄存器和增益寄存器值装载到MAX16031监测器应用电路的EEPROM配置寄存器中,每次测量可以使用相同数值,达到合理的精确度。
为了提高精度,可以在每次测量时对每个单元的增益参数进行在线编程。靠近器件放置一个高精度热电偶并对温度进行测量,调整增益寄存器直到MAX16031的测量温度和热电偶的测量温度相同。