ZHCAAO6A May   2020  – August 2021 ADS1115 , LMT70

 

  1.   1
  2.   修订历史记录

温度 (°C) LMT70 输出电压 (mV) TLA2024 数字输出
-55 1375.219 55F4h (22004d)
125 302.785 12EDh (4845d)
电源
VDD GND
3.3V 0V

设计说明

该电路设计描述了一个使用精密模拟温度传感器和 16 位 ADC 的温度测量电路。LMT70 温度传感器的输出电压在 –55°C 至 150°C 范围内随温度变化而变化,并且在远离 ADC 放置时可用于远程测量。ADS1115 ADC 用于测量 LMT70 的输出电压。利用 ADC 的内部电压基准,该电路可作为一种紧凑的低功耗解决方案来精确测量温度。该设计包含用于配置器件的 ADC 寄存器设置以及用于配置和读取器件的伪代码。此电路可用于 PLC 模拟输入模块实验室和现场仪表 以及工厂自动化和控制 等应用中。

GUID-C4A59321-68F9-409C-8649-584AA05CB118-low.gif

设计说明

  1. 对电源使用电源去耦电容器。必须使用连接到 GND 的至少为 0.1μF 的电容器对 VDD 进行去耦。有关电源相关建议的详细信息,请参阅《具有内部基准、振荡器和可编程比较器且兼容 I2C 的 ADS111x 超小型、低功耗、860SPS、16 位 ADC》《LMT70、LMT70A ±0.05°C 高精度模拟温度传感器、RTD 和高精度 NTC 热敏电阻 IC》 数据表。
  2. 如果可能,使用 C0G (NPO) 陶瓷电容器进行输入滤波。这些电容器中使用的电介质可在电压、频率和温度变化时提供最稳定的电气特性。由于尺寸的原因,这可能并不总是实用,X7R 电容器是下一个最佳选择。
  3. 参阅 LMT70 数据表,也可找到有关本应用手册所示温度传感器转换表和温度传递函数的更多详细信息。
  4. LMT70 的推荐工作温度范围为 –55°C 至 150°C,而 ADS1115 的工作温度范围为 –40°C 至 125°C。如需使用 LMT70 的完整工作温度范围,则应将该器件放在远离 ADC 的位置。
  5. 该电路设计显示了 LMT70 连接到 ADS1115 的 AIN0 用于单端测量,而其余三个输入通道可用于其他测量。如果仅使用温度传感器进行测量,则可以使用 ADS1114,将 AIN0 连接到 LMT70,并将 AIN1 接地。
  6. 如果 ADC 可支持较低的分辨率,则可以用 ADS1015 或 TLA2024 代替。这两款器件与 ADS1115 类似,通过 I2C 进行通信,并使用类似的配置寄存器。如需进行 SPI 通信,可以用 ADS1118 或 ADS1018 代替。
  7. 该应用电路可用于热电偶冷端测量。更多有关热电偶测量的信息,请参阅《热电偶测量基本指南》

元件选型

  1. 确定温度传感器的工作范围。

    LMT70 的温度测量范围为 –55°C 至 150°C。在此温度范围内,LMT70 的输出电压在 1375mV 至 303mV 之间变化,具有负温度斜率。该范围用于在 ADC 的满量程范围条件下,最大限度地提高测量的分辨率。下图中显示了 LMT70 输出传递函数。

    GUID-7CBFB9AB-9E6B-4106-84F8-CF2554FA8E5E-low.gif

    并非如肉眼所见,LMT70 的输出传递函数不是线性的。需要从查找表中进行插值或根据多项式方程进行计算来准确确定温度。

  2. 确定 ADC 的增益和输入范围。

    ADS1115 具有通过缩放电容采样实现的可编程增益放大器 (PGA),这并非真正的放大器。通过此 PGA,输入范围可扩展为整个电源范围,并为 ADC 提供六个不同的满量程范围 (FSR) 设置选项。

    如前所述,当温度测量范围为 –55°C 至 150°C 时,LMT70 的输出范围为 1375mV 至 303mV。为了最大限度地提高分辨率,请选择包含该温度测量范围的最小 ADC 满量程范围。在此测量范围内,ADC FSR 可设置为 ±2.048V。在 –55°C 时,ADC 输出代码将读取十进制的 55F4h 或 22004,而在 150°C 时将读取十进制的 12Edh 或 4845。使用此设置,温度测量值将为 17159 个代码。由此得出的基本分辨率为每个代码 0.012°C。

    如果温度测量范围将最低温度限制为 15°C,则 LMT70 的输出电压限值为 1.024V。在此限值下,ADC FSR 范围可以设置为 ±1.024V,从而最大限度地提高 ADC 的分辨率。

    ADS1115 16 位 ADC 会以差分方式报告数据。即使使用 ADC 进行单端测量,ADC 也会将数据报告为差分数据。单端测量具有 15 位的分辨率。

  3. 对 ADC 输入进行滤波时的选值。

    通常,ADC 输入采用基本 RC 滤波电路。如果存在输入滤波,ADC 的输入电流会受串联滤波器电阻影响而产生误差。对于 ADS1115 器件,输入电流建模为等效差分和共模输入阻抗。当负输入接地时,等效输入阻抗可以近似为并联的差分和共模阻抗。

    使用 ±2.048V 的 FSR 时,ADS1115 差分输入阻抗为 4.9MΩ,共模阻抗为 6MΩ。等效输入阻抗约为 2.7MΩ。如果串联滤波器电阻远小于等效输入阻抗,则测量的增益误差不受滤波影响。

    对于 Σ-Δ 型 ADC(如 ADS1115),输入滤波的带宽设置为至少是数据速率的 10 倍。如果 ADS1115 以 860SPS 的最高数据速率运行,则输入滤波器可以设置为高于 8.6kHz。LMT70 可以驱动有限的电容,其数据表为串联电阻和不同负载电容的组合提供了具体指导。对于合适的滤波器,请使用 RS = 3kΩ 和 CLOAD = 4.7nF,并将输入滤波带宽设置为 11.3kHz。如果使用不同的数据速率,或使用 ADS1015 或 TLA2024,则可以针对不同的数据速率重新计算此带宽。无论如何,都请遵循 LMT70 器件的容性负载驱动指南,如数据表中所述。

配置寄存器设置

配置寄存器会设置 ADC 的操作模式和配置。配置包括前面各节中描述的所有设置。在 16 个位之间使用九个字段来配置器件。下表显示了配置寄存器字段描述以及位名称和位置、读写用法和复位值。

15 14 13 12 11 10 9 8
操作系统 MUX[2:0] PGA[2:0] MODE
R/W-1h R/W-0h R/W-2h R/W-1h
7 6 5 4 3 2 1 0
DR[2:0] COMP_MODE COMP_POL COMP_LAT COMP_QUE
R/W-4h R/W-0h R/W-0h R/W-0h R/W-3h

OS 位会设置操作状态并启动单次转换。MUX[2:0] 位会设置输入多路复用器以选择模拟输入。MODE 位会将器件设置为单冲转换模式。DR[2:0] 位会设置器件的数据速率。其余字段用于本设计中未使用的 ADC 比较器设置。更多有关配置寄存器的详细信息,请参阅《具有内部基准、振荡器和可编程比较器且兼容 I2C 的 ADS111x 超小型、低功耗、860SPS、16 位 ADC》 数据表。

对于此应用,使用一个 ADC 通道来测量 LMT70。多路复用器设置为测量 AIN0 到 GND,FSR 设置为 ±2.048V,数据速率设置为 860SPS。ADS1115 中配置寄存器字段的设置如下表所示。

字段 设置 说明
15 操作系统 1 开始转换
14:12 MUX[2:0] 100 单端输入测量,AINP–AINN = AIN0–GND,选择第一通道
11:9 PGA[2:0] 010 FSR = ±2.048V,将 ADC 设置为能够测量 0V 至 VDD 的整个电源范围
8 MODE 1 单冲转换模式下的运行
7:5 DR[2:0] 111 数据速率 = 860SPS
4 COMP_MODE 0 传统比较器
3 COMP_POL 0 低电平有效
2 COMP_LAT 0 非自锁比较器
1:0 COMP_QUE[1:0] 11 比较器已禁用

结合字段描述中的这些位,配置寄存器值为 1100 0101 1110 0011 或 C5E3h。

ADS1115 的通道循环

ADS1115 具有四个模拟输入通道,它们来自连接到 ADC 的可配置多路复用器。LMT70 温度测量仅在 ADS1115 通道连接到 AIN0 时进行,而 AIN1、AIN2 和 AIN3 的输入可用于交替测量。

若要循环使用 ADS1115 系统的每个通道,需逐一启动每个通道的转换过程,等待转换完成,然后读回数据。然后,开始下个通道的转换过程。对系统中的所有四个输入重复此序列,即可循环使用所有通道。写入配置寄存器会启动转换并将 ADC 配置为正确的运行模式。通信从写入器件的 I2C 从器件地址开始。I2C 写入后跟三个字节。第一个字节是 01h,用以指示配置寄存器。接下来的两个字节是写入配置寄存器的数据。四个字节的完整通信如下表所示。

I2C 地址:
1001000 写入
地址指针:
配置寄存器
配置 MSB:开始转换、设置输入、FSR、单冲模式 配置 LSB:860SPS,
比较器已禁用
1001 0000 0000 0001 1100 0101 1110 0011

然后,主器件等待转换完成。在本示例中,ADS1115 器件设置为最快的数据速率 860SPS。该器件使用内部振荡器,因此数据速率存在一些变化。为确保在 ADC 完成转换后读取器件,微控制器需等待转换完成所需的最长时间。该等待时间是标称数据周期加上 10%(用以补偿器件的内部振荡器变化)。对于每次单冲转换,ADC 唤醒时间都额外增加 20µs。使用以下公式计算总等待时间。

Wait time(等待时间) = nominal data period(标称数据周期)+ 10% + 20µs

例如,如果器件以 860SPS 运行,则标称数据周期为 1.16ms。所需的等待时间将为:

Wait time(等待时间) = (1.16ms × 1.1) + 20µs = 1.30ms

读取器件从写入转换数据寄存器 (00h) 的寄存器指针开始,然后从同一 I2C 地址再次读取两个字节。下面显示了在配置 ADC 之后读取 LMT70 测量数据。五个字节的完整通信如下表所示。

I2C 地址:
1001000 写入
地址指针:
配置数据寄存器
I2C 地址:
1001000 读取
读取转换数据 MSB 读取转换数据 LSB
1001 0000 0000 0000 1001 0001 xxxx xxxx xxxx xxxx

其他 ADS1115 通道可以通过重复此序列以任意顺序循环。通过设置配置寄存器来收集数据,等待转换完成,然后读取转换数据。

测量转换

根据 ADC 的满量程范围设置,温度传感器的输出电压转换相对简单。使用以下公式计算 LMT70 器件的输出电压:

Output Code(输出代码) = 215 × [VAIN0 / (2.048V)]
LMT70 Output Voltage(输出代码)= VAIN0 = (Output Code(输出代码)) × (2.048) / (215)

下面是电气特性温度查找表。利用以下查找表进行插值,可以将电压测量值转换为温度。

温度 (°C) VTAO (mV)
(典型值)
本地斜率 (mV/°C)
-55 1375.219 -4.958
–50 1350.441 -4.976
-40 1300.593 -5.002
-30 1250.398 -5.036
–20 1199.884 -5.066
–10 1149.070 -5.108
0 1097.987 -5.121
10 1046.647 -5.134
20 995.050 -5.171
30 943.227 -5.194
40 891.178 -5.217
50 838.882 -5.241
60 786.360 -5.264
70 733.608 -5.285
80 680.654 -5.306
90 627.490 -5.327
100 574.117 -5.347
110 520.551 -5.368
120 466.760 -5.391
130 412.739 -5.430
140 358.164 -5.498
150 302.785 -5.538

作为替代方案,LMT70 的输出电压可以用二阶传递函数建模。使用最小二乘和方法,使用上表中的值生成最佳拟合二阶传递函数。–10°C 至 110°C 的有限温度范围可用于生成具有一组系数的准确传递函数。在 –55°C 至 +150°C 的整个温度范围内,单个二阶传递函数会增加极端温度下的误差,并且需要一组不同的系数。以下公式显示了传递函数:

TM = a × (VTAO)2 + b × (VTAO) + c

其中:

系数 –55°C 至 150°C 的最佳拟合 –10°C 至 110°C 的最佳拟合
a –8.451576E-06 –7.857923E-06
b –1.769281E-01 –1.777501E-01
c 2.043937E+02 2.046398E+02

VTAO 以 mV 表示,TM 以 °C 表示。有关转换方法的更深入讨论,请查看 LMT70 数据表

伪代码示例

以下示例显示了伪代码序列以及设置器件和微控制器所需的步骤,该微控制器与 ADC 相连,以便在单冲转换模式下从 ADS1115 获取后续读数。ADC 首先读取的是 LMT70 温度传感器,使用 AIN0 通道。使用最大数据周期获取数据,留出唤醒器件、配置 ADC、进行单次转换和设置其他 ADC 测量的时间。其他测量通道以类似方式用于写入配置寄存器和开始转换,等待转换完成,然后回读转换。


 
Configure microcontroller for I2C communication, I2C address=1001000 (48h)
Loop
{
Send 90h 01h C5h E3h //
// 开始写入地址 48h,写入第 0 位 (90h)
// 配置寄存器 01h
// 设置 C1E3h,AIN0-GND,FSR=±2.048V,单冲转换,DR=860SPS,停止
Wait 1.30ms // 等待数据周期,+10% 补偿内部振荡器变化,+20us
Send 90h 00h 91h xxh xxh // 读回 ADC 转换数据
// 开始写入地址 48h,写入第 0 位 (90h)
// 转换寄存器 00h,停止
// 开始从地址 48h 读取,读取第 1 位 (91h)
// 读回 2 个字节,停止
// 从 AIN1、AIN2 和 AIN3 的测量(可选)
 Send configuration for channel 1
Wait for conversion to complete
Read channel 1
Send configuration for channel 2
Wait for conversion to complete
Read channel 2
Send configuration for channel 3
Wait for conversion to complete
Read channel 3
}
  

更多有关 ADS1115 配置的详细信息,请参阅数据表《具有 16 个单端通道和 I2C 接口的精密测量电路》

布局示例

下面显示了 LMT70 和 ADS1115 器件的示例布局。使用 0402 电阻器和电容器添加 RC 输入滤波。生成的布局约为 200mil×240mil。此测量不会考虑 I2C 上拉电阻器。每个系统都需要一套此类电阻器。

GUID-CC22EA88-02DD-4BD1-87D2-BE6E88C7863F-low.gif示例布局

设计中采用的器件

器件 关键特性 链接 其他可能的器件
ADS1115 具有内部基准、振荡器和可编程比较器且兼容 I2C 的 ADS111x 超小型、低功耗、860SPS、16 位 ADC http://www.ti.com.cn/product/cn/ADS1115 指向类似器件的链接
指向类似 SPI 器件的链接
LMT70 LMT70、LMT70A ±0.05°C 精密模拟温度传感器、RTD 和精密 NTC 热敏电阻 IC http://www.ti.com.cn/product/cn/LMT70

设计参考资料

请参阅《模拟工程师电路设计指导手册》,了解 TI 的综合电路库。

如需 TI 工程师提供直接支持,请登陆 TI E2E 社区:

TI e2e.ti.com