ZHCAAO6A May 2020 – August 2021 ADS1115 , LMT70
温度 (°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 模拟输入模块、实验室和现场仪表 以及工厂自动化和控制 等应用中。
设计说明
元件选型
LMT70 的温度测量范围为 –55°C 至 150°C。在此温度范围内,LMT70 的输出电压在 1375mV 至 303mV 之间变化,具有负温度斜率。该范围用于在 ADC 的满量程范围条件下,最大限度地提高测量的分辨率。下图中显示了 LMT70 输出传递函数。
并非如肉眼所见,LMT70 的输出传递函数不是线性的。需要从查找表中进行插值或根据多项式方程进行计算来准确确定温度。
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 位的分辨率。
通常,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。使用以下公式计算总等待时间。
例如,如果器件以 860SPS 运行,则标称数据周期为 1.16ms。所需的等待时间将为:
读取器件从写入转换数据寄存器 (00h) 的寄存器指针开始,然后从同一 I2C 地址再次读取两个字节。下面显示了在配置 ADC 之后读取 LMT70 测量数据。五个字节的完整通信如下表所示。
I2C 地址: 1001000 写入 |
地址指针: 配置数据寄存器 |
I2C 地址: 1001000 读取 |
读取转换数据 MSB | 读取转换数据 LSB |
---|---|---|---|---|
1001 0000 | 0000 0000 | 1001 0001 | xxxx xxxx | xxxx xxxx |
其他 ADS1115 通道可以通过重复此序列以任意顺序循环。通过设置配置寄存器来收集数据,等待转换完成,然后读取转换数据。
测量转换
根据 ADC 的满量程范围设置,温度传感器的输出电压转换相对简单。使用以下公式计算 LMT70 器件的输出电压:
下面是电气特性温度查找表。利用以下查找表进行插值,可以将电压测量值转换为温度。
温度 (°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 的整个温度范围内,单个二阶传递函数会增加极端温度下的误差,并且需要一组不同的系数。以下公式显示了传递函数:
其中:
系数 | –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 上拉电阻器。每个系统都需要一套此类电阻器。
设计中采用的器件
器件 | 关键特性 | 链接 | 其他可能的器件 |
---|---|---|---|
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