Перейти к содержанию

TMP117 — цифровой датчик температуры TI с точностью ±0,1 °C

TMP117 — датчик температуры Texas Instruments с выходом I²C/SMBus, у которого ±0,1 °C — гарантированный максимум в диапазоне −20…50 °C без калибровки. Это уровень платинового термометра сопротивления класса AA при токе в единицы микроампер. Разбираем по даташиту выводы двух корпусов, адреса, регистры, режимы, расчёт среднего тока, условия, при которых точность действительно достигается, и ошибки самого даташита.

Обновлено Редакция GAW

TMP117 измеряет температуру своего кристалла встроенным биполярным транзистором и 16-битным АЦП, а результат отдаёт по шине I²C/SMBus с шагом 7,8125 м°C. Помимо измерения он умеет усреднять результаты, сравнивать их с двумя порогами и хранить настройки и поправку в собственной EEPROM. Каждый экземпляр проверяют на установке, прослеживаемой к эталонам NIST, а уникальный номер для этой прослеживаемости записан в EEPROM. TI позиционирует его как цифровую замену Pt100 и медицинский термометр (ASTM E1112, ISO 80601-2-56). Как выбирать датчик под задачу — в статье «Датчики температуры».

Коротко

  • Точность — ±0,1 °C макс. при −20…50 °C, ±0,15 °C при −40…70 °C, ±0,2 °C при −40…100 °C, ±0,3 °C при −55…150 °C.
  • Разрешение — 16 бит, 7,8125 м°C; одно преобразование 15,5 мс тип.
  • Питание — 1,7–5,5 В до 70 °C и 1,8–5,5 В во всём диапазоне −55…150 °C.
  • Ток — 3,5 мкА тип. при 1 Гц без усреднения, 16 мкА с заводскими 8 усреднениями, 0,15 мкА в Shutdown.
  • Интерфейс — I²C/SMBus 1–400 кГц, адреса 0x48–0x4B по одному выводу ADD0, тайм-аут 20–40 мс.
  • Корпуса — WSON-6 2 × 2 мм (DRV) и DSBGA-6 1,53 × 1,00 мм (YBG).

Выводы

ОбозначениеWSON-6 (DRV)DSBGA-6 (YBG)Назначение
SCL1A2тактовый сигнал I²C, вход
GND2B2общий
ALERT3C2тревога или готовность данных, открытый сток, нужна подтяжка
ADD04C1выбор адреса: GND, V+, SDA или SCL
V+5B1питание
SDA6A1данные I²C, открытый сток, нужна подтяжка
площадка— (7 на чертеже)—с землёй внутри не соединена

Термоплощадка WSON у TMP117 особенная: она не соединена с землёй, и для лучшей точности TI рекомендует её не паять — пайка создаёт механическое напряжение в корпусе. Если площадку всё же паяют (например, на гибкой плате ради надёжности), её оставляют свободной или соединяют с GND. Корпус DRV у TMP117 начерчен по листу DRV0006B (4223922/A, 09/2017), а не DRV0006A, как у стабилизаторов на странице WSON-6 2 × 2: основные размеры совпадают — тело 1,9–2,1 × 1,9–2,1 мм, высота до 0,8 мм, шаг 0,65 мм, площадка 1,0 × 1,6 мм ± 0,1 мм, — но площадка здесь не тепловой путь, а элемент, который лучше оставить без припоя.

Параметры

По таблицам на с. 5–7 даташита: V+ = 1,7–5,5 В при −55…70 °C или 1,8–5,5 В при −55…150 °C; типичные значения — при 25 °C и 3,3 В.

ПараметрМин.Тип.Макс.Условия
Точность при −20…50 °C−0,1 °C±0,05 °C+0,1 °C8 усреднений, цикл 1 Гц, площадка DRV не пропаяна, VIL ≤ 0,05 V+, VIH ≥ 0,95 V+
Точность при −40…70 °C−0,15 °C±0,05 °C+0,15 °Cте же
Точность при −40…100 °C−0,2 °C±0,1 °C+0,2 °Cте же
Точность при −55…125 °C−0,25 °C±0,1 °C+0,25 °Cте же
Точность при −55…150 °C−0,3 °C±0,1 °C+0,3 °Cте же
Влияние питания—6 м°C/В—однократный режим, 8 усреднений
Повторяемость—±1 LSB—3,3 В, 8 усреднений, 1 Гц
Долговременный дрейф—±0,03 °C—1000 ч при 150 °C
Гистерезис при термоциклах—±2 LSB—8 усреднений, −40 → 25 → 150 °C
Время одного преобразования13 мс15,5 мс17,5 мсоднократный режим
Ток при преобразовании—135 мкА220 мкАшина не активна
Средний ток, 1 Гц без усреднения—3,5 мкА5 мкА25 °C, шина не активна
Средний ток, 1 Гц, 8 усреднений—16 мкА22 мкА25 °C, шина не активна
Ток между преобразованиями—1,25 мкА3,1 мкА25 °C, SCL, SDA, ADD0 = V+
Ток в режиме Shutdown—0,15 мкА0,5 мкА25 °C; при 150 °C — до 5 мкА
Ток при записи EEPROM—240 мкА—АЦП выключен
Выход SDA и ALERT (VOL)0—0,4 Вток 3 мА
Порог сброса VPOR—1,6 В—при росте питания; детектор просадки — 1,1 В

Исполнения TMP117M и TMP117N отличаются гарантированными диапазонами: у M — ±0,1 °C при 25…50 °C, ±0,15 °C при 0…70 °C и ±0,2 °C при 0…85 °C, у N — только от ±0,2 °C при −40…100 °C. EEPROM выдерживает не меньше 1000 записей (50 000 тип.), хранит данные не меньше 10 лет. Предельные режимы: питание и все выводы −0,3…6 В, кристалл до 155 °C; ESD — 2000 В по модели тела человека. Тепловое сопротивление кристалл–воздух — 70,7 °C/Вт у WSON и 133,2 °C/Вт у DSBGA.

Адрес, регистры и пересчёт

Адрес — 10010 xx: ADD0 на GND даёт 0x48, на V+ — 0x49, на SDA — 0x4A, на SCL — 0x4B; о том, как складывается адрес I²C, — в глоссарии. Первый байт после адреса при записи — указатель регистра; он сохраняется, поэтому повторное чтение того же регистра его не требует. Регистры 16-битные, старший байт идёт первым.

АдресРегистрПосле сброса
0x00температура, только чтение0x8000 (−256 °C до первого преобразования)
0x01конфигурация: флаги, режим, цикл, усреднение, Alert0x0220 (из EEPROM)
0x02 / 0x03верхний / нижний порог0x6000 (192 °C) / 0x8000 (−256 °C)
0x04разблокировка EEPROM (бит 15 EUN) и флаг занятости0x0000
0x05, 0x06, 0x08EEPROM1–EEPROM3, свободные 16-битные ячейкизаводской уникальный номер
0x07смещение — поправка, прибавляемая к результату0x0000
0x0FDevice ID0x0117

Температура — число со знаком в дополнительном коде, один младший разряд — 0,0078125 °C; пороги и смещение записываются в том же формате. Примеры из табл. 7-1: 0x0C80 — 25 °C, 0x0080 — 1 °C, 0xFFF0 — −0,125 °C, 0xF380 — −25 °C.

Наш расчёт: прочитаны байты 0x0D и 0x1A. Код 0x0D1A = 3354 положителен (старший бит 0), температура 3354 × 0,0078125 = 26,203 °C. Для байтов 0xFE 0x70 код 0xFE70 = 65 136, это больше 32 767, поэтому вычитаем 65 536: −400 × 0,0078125 = −3,125 °C. Значения верхнего порога после сброса: 0x6000 = 24 576 × 0,0078125 = 192 °C.

Регистр смещения удобен для калибровки в системе: после сверки с эталоном туда записывают поправку, и датчик сам прибавляет её к каждому результату. Чтобы поправка пережила выключение, её записывают в EEPROM.

Режимы, усреднение и средний ток

Биты MOD[1:0] регистра 0x01 выбирают режим: 00 — непрерывные преобразования, 01 — Shutdown, 11 — однократное преобразование с переходом в Shutdown. Биты AVG[1:0] задают усреднение 1, 8, 32 или 64 преобразований, биты CONV[2:0] — период цикла от 15,5 мс до 16 с (табл. 7-7). Если усреднению нужно больше времени, чем длится цикл, пауза исчезает: при 64 усреднениях цикл не короче 1 с. Флаг Data_Ready (бит 13) сообщает о готовом результате, его можно вывести на ALERT битом 2.

Средний ток TI считает уравнением 1: (ток преобразования × время преобразования + ток покоя × время покоя) / период цикла.

Наш расчёт по уравнению 1 с типичными значениями 135 и 1,25 мкА:

  • 1 Гц без усреднения: (135 × 0,0155 + 1,25 × 0,9845) / 1 = 3,3 мкА — сходится с табличными 3,5 мкА.
  • Заводская настройка, 8 усреднений по 15,5 мс (124 мс) раз в секунду: (135 × 0,124 + 1,25 × 0,876) / 1 = 17,8 мкА — в таблице 16 мкА тип.
  • Цикл 4 с без усреднения: (135 × 0,0155 + 1,25 × 3,9845) / 4 = 1,8 мкА.
  • Однократное измерение с 8 усреднениями раз в минуту, между ними Shutdown 0,15 мкА: (135 × 0,124 + 0,15 × 59,876) / 60 = 0,43 мкА.

Наш вывод: для батарейного датчика выгоднее однократный режим по команде, чем непрерывный с длинным циклом, — ток в Shutdown (0,15 мкА) примерно в 8 раз меньше, чем в паузе непрерывного режима (1,25 мкА). Время работы от батареи по такому среднему току посчитает калькулятор «Время работы от батареи».

Пороги, ALERT и Therm

Бит T/nA выбирает логику сравнения. В режиме Alert (0) датчик выставляет флаг HIGH_Alert при выходе выше верхнего порога и LOW_Alert — ниже нижнего; выход ALERT активен, пока флаги не сброшены чтением регистра конфигурации или командой SMBus Alert Response (0001 1001). В режиме Therm (1) работает только HIGH_Alert: он ставится выше верхнего порога и снимается ниже нижнего, так что разница порогов работает как гистерезис, а чтение регистра флаг не сбрасывает. Полярность ALERT задаёт бит POL, по умолчанию активный уровень низкий. Если ALERT не нужен, вывод оставляют свободным или соединяют с землёй.

EEPROM

В EEPROM хранятся значения после включения: пороги, режим (только непрерывный или Shutdown — однократный при старте не включается), цикл, усреднение, режим и полярность ALERT, смещение. Запись: установить бит 15 регистра 0x04 (EUN), записать регистр как обычно — это программирует ячейку, — дождаться сброса флага EEPROM_Busy (около 7 мс), затем подать сброс общим вызовом (General Call, байт 0x06): данные загрузятся, а EEPROM снова заблокируется. Свободные ячейки EEPROM1–3 с завода содержат уникальный номер; если прослеживаемость к NIST нужна, их не перезаписывают. Во время записи датчик потребляет 240 мкА, измерения при разблокированной EEPROM TI не рекомендует.

Подключение и разводка

Типовая схема — конденсатор 0,1 мкФ рядом с V+ и подтяжки 5 кОм на SDA и ALERT; на SCL подтяжка нужна, если вывод микроконтроллера — открытый сток. Сопротивление подтяжек проверит калькулятор «Подтяжка I²C». Вход SCL и SDA допускают до 5,5 В при любом питании от 1,7 В, но предельно не больше 6 В. Ещё три особенности шины из раздела 7.5.3: TMP117 нельзя подключать к шине во время обмена, он сбрасывает автомат I²C на каждом STOP, а если SCL удерживается низким дольше 20–40 мс (35 мс тип.), интерфейс сбрасывается — частота SCL должна быть не ниже 1 кГц. Растягивать SCL TMP117 не умеет.

Самонагрев TI оценивает на плате 11 × 20 × 1,1 мм в неподвижном воздухе: при непрерывных преобразованиях без пауз и 3,3 В датчик рассеивает 410 мкВт и нагревается примерно на 40 м°C (52 м°C при 150 °C). Наш расчёт: в заводском режиме средняя мощность 16 мкА × 3,3 В ≈ 53 мкВт, почти в восемь раз меньше. Для точных измерений TI советует однократный режим или длинный цикл, наименьшее допустимое питание, подтяжки больше 2 кОм, уровни SCL и SDA ближе 10 % к шинам и редкий обмен по шине. Подтягивающие резисторы — тоже источник тепла, их ставят подальше от датчика.

Раздел 10 даётся по задачам: для температуры поверхности — тонкая плата, медь снизу и теплопроводная паста; для потока воздуха — большие площадки и вертикальная плата вдоль потока; для неподвижного воздуха — маленькая плата, вырез вокруг датчика и никаких полигонов под ним.

Сравнение с MCP9808 и DS18B20

TMP117MCP9808DS18B20
ИнтерфейсI²C/SMBusI²C/SMBus1-Wire
Питание1,7–5,5 В2,7–5,5 В3,0–5,5 В
Точность±0,1 °C макс. при −20…50 °C±0,5 °C макс. при −20…100 °C±0,5 °C при −10…+85 °C
Шаг0,0078 °C0,0625 °C0,0625 °C (12 бит)
Время измерения15,5 мс тип. (без усреднения)250 мс тип. при 0,0625 °Cдо 750 мс при 12 битах
Ток135 мкА при преобразовании, 3,5 мкА при 1 Гц200 мкА тип.1 мА тип. при преобразовании
Адресов на шине48без ограничения (64-битный номер)
Порогидва порога, Alert или Thermтри порога, выход Alertпороги в памяти, флаг
КорпусWSON-6 2 × 2, DSBGA-6DFN-8 2 × 3, MSOP-8TO-92, SO-8, µSOP-8

Данные — из даташитов каждой микросхемы. Наш вывод: TMP117 нужен там, где важны десятые доли градуса — медицинские и эталонные термометры, климатические камеры, замена Pt100. Для термостата и контроля платы хватит MCP9808, для выносного датчика на кабеле — DS18B20. Высокая точность TMP117 сохраняется, только если он стоит там, где температура такая же, как у измеряемого объекта: корпус на плате измеряет прежде всего плату.

Расхождения в документации

  • Ток в режиме Shutdown. Особенности на с. 1 и таблица характеристик дают 150 нА тип., а раздел 7.4.2 — «typically only consumes 250 nA». По истории ревизий значение меняли с 250 на 150 нА в ревизии A, раздел 7.4.2 остался старым. Наш вывод: верить таблице — 0,15 мкА тип. и 0,5 мкА макс.
  • Объём свободной EEPROM. Особенности обещают 48 бит общего назначения, и в карте регистров ровно три такие ячейки — EEPROM1 (0x05), EEPROM2 (0x06), EEPROM3 (0x08). Но раздел 7.5.1.1 говорит о четырёх 16-битных ячейках, а описания регистров ссылаются на «EEPROM[4:1]» — регистра EEPROM4 в карте нет. Заголовок раздела 7.6.8 к тому же указывает для EEPROM2 сброс в 0000h, а таблица полей и карта регистров — xxxxh.
  • Ток записи EEPROM. В таблице — 240 мкА, в разделе 7.5.1.2 — 230 мкА.
  • Шум без усреднения. Раздел 7.3.2 говорит о разбросе около ±3 LSB без усреднения и ±1 LSB при 8 усреднениях, раздел 8.2.2.1 — о распределении на шесть соседних кодов и «теоретическом минимуме 2 LSB» при 8 усреднениях.
  • Мелочи. Программный сброс (бит 1 регистра 0x01) длится 2 мс, а время сброса в таблице и запуск после включения — 1,5 мс. Раздел 8.2.1 отсылает за схемой адресов к табл. 7-1, а адреса приведены в табл. 7-2. Типовая схема на рис. 8-1 подписана «1.7 V to 5.5 V», хотя выше 70 °C минимум — 1,8 В.

Частые вопросы

Какой адрес I²C у TMP117?

Адрес задаёт один вывод ADD0, но у него четыре варианта подключения: к GND — 0x48, к V+ — 0x49, к SDA — 0x4A, к SCL — 0x4B (в двоичном виде 1001000–1001011). Так на одной шине помещаются четыре датчика. Оставлять ADD0 свободным даташит не предлагает.

Как перевести показания TMP117 в градусы?

Прочитать 16-битный регистр 0x00 (старший байт первым), считать его числом со знаком в дополнительном коде и умножить на 0,0078125 °C. Например, 0x0C80 = 3200, то есть 25,0 °C, а 0xF380 = −3200, то есть −25,0 °C. До окончания первого преобразования регистр содержит 0x8000 — это −256 °C, такое значение после включения надо отбрасывать.

Сколько потребляет TMP117 на самом деле?

3,5 мкА типично — только при одном измерении в секунду без усреднения. Но с завода датчик настроен на 8 усреднений в секунду, и тогда таблица даёт 16 мкА типично и 22 мкА максимум. Во время преобразования ток 135 мкА, между ними — 1,25 мкА, в режиме Shutdown — 0,15 мкА. Активный обмен по шине на 400 кГц сам по себе поднимает ток до 15–17 мкА.

Почему TMP117 показывает хуже ±0,1 °C?

Точность в таблице гарантирована при 8 усреднениях, цикле 1 Гц, непропаянной термоплощадке корпуса WSON и уровнях SCL и SDA не дальше 5 % от шин питания. Пропаянная площадка механически нагружает кристалл, частые чтения и маленькие подтяжки греют его, а сам датчик измеряет температуру платы, а не воздуха. TI советует подтяжки больше 2 кОм, редкие обращения и разводку по разделу 10 даташита.

Источники

  1. Texas Instruments. TMP117 High-Accuracy, Low-Power, Digital Temperature Sensor With SMBus- and I2C-Compatible Interface (SNOSD82D, June 2018, revised September 2022) — с. 1 — особенности, точность по диапазонам, 3,5 мкА и 150 нА, 1,7/1,8–5,5 В, 48 бит EEPROM, корпуса WSON-6 и DSBGA-6; с. 2–3 — история ревизий; с. 4 — выводы DRV и YBG; с. 5 — предельные режимы, рекомендуемые условия, тепловые характеристики; с. 6–7 — электрические характеристики (точность TMP117, TMP117M, TMP117N и условия её измерения, время преобразования, токи, VPOR), EEPROM, тайминги I²C и тайм-аут 20–40 мс; с. 12–13 — запуск 1,5 мс, усреднение, табл. 7-1 формата данных; с. 14–16 — режимы CC, SD, OS, уравнение 1 среднего тока, Alert и Therm; с. 18 — EEPROM; с. 20–22 — шина, табл. 7-2 адресов, SMBus Alert, General Call, тайм-аут; с. 25–32 — карта регистров, CONFIG, табл. 7-7 времени цикла, пороги, EEPROM1–3, смещение, Device ID 0117h; с. 33–35 — типовая схема, подтяжки 5 кОм, самонагрев 410 мкВт ≈ 40 м°C; с. 35–36 — питание и разводка, термоплощадку не паять; с. 40 — чертёж DRV0006B; с. 46–47 — заказные номера и маркировка
  2. Microchip. MCP9808 ±0.5°C Maximum Accuracy Digital Temperature Sensor (DS20005095B, 2011–2018) — для сравнения: ±0,5 °C макс. при −20…100 °C, 2,7–5,5 В, 200 мкА тип., 250 мс при шаге 0,0625 °C, адреса 0x18–0x1F (с. 1, 3, 11)
  3. Maxim Integrated (Analog Devices). DS18B20 Programmable Resolution 1-Wire Digital Thermometer (19-7487, Rev 6, 7/19) — для сравнения: ±0,5 °C при −10…+85 °C, до 750 мс при 12 битах, 3,0–5,5 В, 1 мА тип. при преобразовании (с. 1–3)

Нашли ошибку?