Электронные компоненты. Дистрибьюция и сервисы с 1993 г
№4 / 2017 / статья 3

Подключаем датчик температуры LMT01 к Аrduino, ATiny25, PIC10F204 и MSP430

Вячеслав Гавриков (г. Смоленск), Олег Пушкарев (КОМПЭЛ)

Датчик температуры LMT01 производства компании Texas Instruments весьма популярен среди разработчиков. Он позволяет с высокой точностью – до ±0,5°С – измерять температуру в диапазоне -50…150°С. При этом главной особенностью сенсора является двухпроводной токовый интерфейс и очень простой протокол выдачи данных. В статье рассмотрены особенности практического применения LMT01 и его подключение к различным микроконтроллерам.

Температурный датчик является неотъемлемым элементом современных электронных устройств. Выбор конкретного типа сенсора во многом определяет конечные метрологические характеристики системы в целом. В настоящий момент наиболее распространенными типами датчиков температуры являются термопары, термисторы, резистивные датчики температуры (RTD), полупроводниковые сенсоры. Каждый из перечисленных типов сенсоров имеет свои достоинства и особенности применения (таблица 1).

Таблица 1. Сравнение различных типов температурных датчиков

Параметр Термопары RTD Термисторы Цифровые датчики
Диапазон температур, °С -200…2000 -200…650 -55…300 -55…200
Точность Средняя Высокая Средняя Высокая
Повторяемость Средняя Отличная Средняя Отличная
Временная стабильность Низкая Хорошая Низкая Хорошая
Чувствительность Низкая Средняя Очень высокая Высокая
Линейность Средняя Хорошая Низкая Хорошая
Время отклика Среднее или высокое Среднее Среднее или высокое Среднее или высокое
Взаимозаменяемость Хорошая Отличная Низкая или средняя Хорошая
Влияние проводов и соединений Высокое Среднее Низкое Низкое
Саморазогрев Нет Низкий Высокий Низкий
Сложность реализации в схеме Высокая Высокая Низкая Низкая

Термопары применяются в наиболее широком диапазоне температур, где прочие виды сенсоров не могут использоваться в принципе. В то же время они имеют низкую точность и чувствительность. RTD выполняются из металла (обычно меди или платины), и отличаются высокой линейностью и точностью температурной характеристики, при этом их чувствительность достаточно низка. Термисторы представляют собой полупроводниковые резисторы меняющие свое сопротивление при изменении температуры. Для них характерна высокая чувствительность и быстрый отклик. Их главным недостатком является нелинейность температурной характеристики. Цифровые датчики – наиболее популярный тип среди датчиков температуры. Говоря об их недостатках, следует в первую очередь отметить относительно узкий температурный диапазон -55…125°C для типовых датчиков и -55…200°C для специализированных сенсоров. Однако для большинства коммерческих приложений этого оказывается вполне достаточно.

Основными преимуществами цифровых датчиков являются:

  • высокая точность;
  • отличная повторяемость характеристик;
  • высокая линейность;
  • стойкость к внешним помехам;
  • невысокая цена;
  • возможность подключения нескольких датчиков к одной информационной шине;
  • простота использования.

Последнее свойство является очень важным, хотя и не относится к группе метрологических характеристик. Цифровые термометры не требуют источника тока (как термисторы или RTD) или высокоточного усилителя и АЦП (как термопары). Для связи с ними используются популярные цифровые интерфейсы (SPI, I²C, 1-wire, SMAART и прочие).

Краткий обзор популярных цифровых датчиков температуры

Выбор датчика температуры нужно делать с учетом целого ряда параметров. Речь идет не только о метрологических характеристиках – диапазоне температур, точности, разрядности. Очень часто при поиске оптимального сенсора на первое место ставят такие качества как уровень потребления, габариты, простота подключения, возможность параллельной работы нескольких датчиков в сетевой конфигурации и так далее. Все это приводит к тому, что «идеального» сенсора, подходящего для всех случаев жизни, не существует, и разработчикам приходится искать компромиссные варианты.

Сейчас среди разработчиков популярны датчики температуры, которые работают с одно- или двухпроводными шинными интерфейсами: 1-wire, I²C, SMAART и так далее. Это позволяет использовать микроконтроллеры с малым числом выводов для одновременной работы с множеством датчиков. Рассмотрим достоинства и особенности некоторых популярных сенсоров (таблица 2).

Таблица 2. Характеристики популярных датчиков температуры

Параметр DS18B20 STLM75 TMP107 LMT01
Производитель Maxim Integrated STMicroelectronics Texas Instruments Texas Instruments
Диапазон измеряемых температур, °С -55…125 -55…125 -55…125 -50…150
Разрешение, бит 9/10/11/12 9 14 12
Точность, °С ±0,5…±2 ±0,5…±2 ±0,4…±0,7 ±0,5…±0,6875
Время измерения, мс 93,75…750 150 18 54
Напряжение питания 3…5,5 В 2,7…5,5 В 1,7…5,5 В 2…5,5 В
Ток потребления (активное состояние), мкА 1500 150 400 125
Ток потребления (режим ожидания), мкА 1 1 10 34
Интерфейс 1-Wire I²C/SMBus USART/SMAART Однопроводной
с токовым выходом
Корпус SOIC8, uSOP8, TO-92 SOIC8, TSSOP8, SOIC8 TO-92

DS18B20 – популярный датчик температуры, работающий в диапазоне -55…125°С. Его главными преимуществами являются доступность, невысокая стоимость, программируемая разрядность измерений 9/10/11/12 бит, возможность подключения множества датчиков на общую двухпроводную шину 1-Wire, малое потребление в спящем режиме до 1 мкА. Вместе с тем у этого сенсора есть и недостатки, в том числе – достаточно высокое потребление в активном режиме до 1,5 мА, невысокое быстродействие при высокой разрядности измерений, относительно узкий диапазон рабочих напряжений от 3 В.

STLM75 – датчик температуры, который также работает с диапазоном -55…125°С. По сравнению с DS18B20 данный сенсор может похвастаться сверхнизким потреблением как в активном, так и в спящем режиме (150 мкА и 1 мкА соответственно), а также работой с напряжениями питания 2,7…5,5 В. Для связи с STLM75 используется I²C-шина с возможностью одновременного подключения до девяти устройств. Недостатком датчика является малое разрешение – всего 9 бит.

TMP107 производства Texas Instruments имеет максимальную разрядность среди рассматриваемых датчиков – 14 бит, отличную точность – ±0,4…±0,7°С, минимальное время преобразования – 18 мс. Особенностью датчика является интерфейс SMAART, c помощью которого можно подключить до 32 датчиков на 3-проводную шину. Однако уровень потребления TMP107 достаточно высок как в активном режиме (до 400 мкА), так и в режиме сна (10 мкА),. и для работы с ним потребуется один внешний буфер с тремя состояниями, например, SN74LVC1G125. В результате измерительный блок займет больше места на плате.

LMT01 – близкий по идеологии к датчику DS18B20, но превосходит его по ряду параметров: шире диапазон рабочих напряжений (2…5,5 В), меньше потребление и время преобразования (54 мс). Выходная разрядность датчика – 12 бит. LMT01 отличается наиболее широким диапазоном рабочих температур, составляющим -50…150°С, и максимальной точностью – ±0,5…±0,6875°С. В отличие от TMP107, данный сенсор в простейшем случае требует для подключения наличия единственного внешнего резистора, так как работает с токовым интерфейсом.

Характеристики датчика температуры LMT01

Рис. 1. LMT01 выпускается в корпусе TO-92 с двумя выводами

Рис. 1. LMT01 выпускается в корпусе TO-92 с двумя выводами

Датчик температуры LMT01 выпускается в двухвыводном корпусном исполнении TO-92 (рисунок 1).

В качестве чувствительного элемента в LMT01 используется полупроводниковый диод (рисунок 2). Сигнал с диода оцифровывается с помощью 12-битного ΣΔ-АЦП и источника опорного напряжения. Полученный цифровой поток преобразуется в последовательность счетных токовых импульсов с помощью встроенных токовых регуляторов верхнего и нижнего плеча. Кроме того, в состав микросхемы входит регулятор напряжения для формирования напряжения питания.

Датчик предназначен для измерения температуры в диапазоне -50…150°С с разрешением 12 бит, что позволяет получать величину единичного отсчета 0,0625°C (рисунок 3). На разных участках рабочего диапазона погрешность принимает различные значения:

  • при -20…90°C погрешность не превышает ±0,5°C;
  • при 90…150°C погрешность не превышает ±0,62°C;
  • при -50…-20°C погрешность не превышает ±0,7°C.
Рис. 2. Внутренняя структура LMT01

Рис. 2. Внутренняя структура LMT01

 

Для получения результатов измерения используется достаточно необычный двухпроводной токовый интерфейс. Такое решение дает следующие основные преимущества:

  • высокая стойкость к электромагнитным помехам;
  • возможность размещения датчика как на плате, так и вне ее, например, на выносном проводе длинной до 2 м.
Рис. 3. Характеристика преобразования температуры для LMT01

Рис. 3. Характеристика преобразования температуры для LMT01

Особенности двухпроводного токового интерфейса в датчиках температуры LMT01

Рис. 4. Организация токового интерфейса с LMT01

Рис. 4. Организация токового интерфейса с LMT01

Как было сказано выше, для передачи результата измерений LMT01 формирует битовую последовательность в виде счетных импульсов тока. Для этого датчику требуется всего лишь два вывода (рисунок 4). Чтобы преобразовать токовые импульсы в форму, привычную для цифровых микросхем, в некоторых случаях можно использовать единственный резистор (но не всегда – об этом ниже).

После включения питания LMT01 начинает цикл измерения, который занимает до 54 мс (рисунок 5). В течение этого времени на выходе датчика формируется ток малого уровня 28…39 мкА. После этого следует цикл передачи результата измерения в виде импульсов тока амплитудой 112…143 мкА. Приемный микроконтроллер должен вести подсчет этих импульсов, например с помощью встроенного счетчика/таймера. Так как частота сигналов составляет около 82…94 кГц, то при максимальном числе импульсов (4095) длительность передачи может достигать 50 мс.

Рис. 5. Временные диаграммы работы датчика LMT01

Рис. 5. Временные диаграммы работы датчика LMT01

По числу подсчитанных импульсов (PC) можно определить значение температуры согласно формуле 1:

 , (1)

Таким образом при 0°C датчик сформирует около 800 импульсов.

К сожалению, использование одного внешнего резистора не всегда возможно из-за ограничений по минимальному падению напряжения на датчике LMT01. В течение цикла измерения падение на датчике должно быть не менее 2,15 В. В течение цикла передачи данных падение напряжения допустимо уменьшать до 2 В. Несложно сделать некоторые приблизительные расчеты.

Рассмотрим устройство с напряжением питания Vdd = 3,3 В. Если принять минимально допустимое падение на датчике равным 2,15 В во время цикла измерения, то на резисторе будем наблюдать сигнал не более 1,15 В. Для большинства цифровых контроллеров логическая единица составляет 0,7∙Vdd, что для нашего случая составит 2,31 В. В итоге использование простого резистора оказывается невозможным, так как микроконтроллер попросту не «увидит» сигнал логической единицы. Выходом из этой ситуации может стать использование микроконтроллера со встроенным компаратором или схем преобразования уровней.

Базовые схемы включения датчика температуры LMT01

Рис. 6. Простейшая схема использования LMT01 совместно с MSP430

Рис. 6. Простейшая схема использования LMT01 совместно с MSP430

Существует несколько вариантов решения проблемы согласования уровней напряжений между управляющим контроллером и датчиком LMT01.

Если управляющий контроллер содержит на борту встроенный компаратор, то задача существенно упрощается (рисунок 6). В таком случае разработчику остается запрограммировать пороговое напряжение и гистерезис компаратора. Выход компаратора подключается к таймеру/счетчику.

Если микроконтроллер не имеет компаратора, то разработчику придется добавлять схему сдвига уровней. Ее можно выполнить на базе однокаскадного транзисторного усилителя (рисунок 7).

Рис. 7. Схема подключения LMT01 со схемой сдвига уровней

Рис. 7. Схема подключения LMT01 со схемой сдвига уровней

При необходимости гальванической развязки или существенного отличия в уровнях сигналов можно воспользоваться дополнительным изолятором, например ISO734x (рисунок 8).

Заметим, что ток, формируемый LMT01, достаточно мал. Это позволяет использовать для питания датчиков выводы GPIO-микроконтроллера, что дает разработчикам дополнительные преимущества:

  • возможность сокращения потребления сенсора за счет его отключения с помощью GPIO. В таком состоянии ток утечки LMT01 составляет всего 1 мкА, что гораздо меньше тока в рабочем режиме (34 мкА и 125 мкА);
  • возможность подключения нескольких датчиков к одному входу микроконтроллера (рисунок 9). При таком включении выводы VN датчиков объединяются, а входы VP подключаются к разным GPIO.
Рис. 8. Изолированное подключение LMT01

Рис. 8. Изолированное подключение LMT01

Рис. 9. Подключение нескольких датчиков LMT01 к одному микроконтроллеру

Рис. 9. Подключение нескольких датчиков LMT01 к одному микроконтроллеру

Подключение LMT01 к Аrduino

Рис. 10. Подключение LMT01 к Ардуино

Рис. 10. Подключение LMT01 к Аrduino

Для подключения LMT01 к Arduino Nano (рисунок 10) достаточно лишь одного резистора. Для подсчета импульсов с выхода LMT01 используется внутренний компаратор. В качестве положительного входа компаратора задействован встроенный источник опорного напряжения REF 1.25 В. Подключение выполнено следующим образом:

  • LMT01 подключен контактом VP к порту D12 Arduino, этот выход цифрового порта используется для подачи питания на LMT01;
  • вывод VM LMT01 подключен к земле через резистор 16 кОм. Номинал этого резистора выбран таким образом, чтобы порог сравнения 1,25 В попадал как раз посередине между уровнями логических 0 и 1 для токового выхода LMT01;
  • сигнал с выхода LMT01 снимается с точки соединения резистора и вывода VM и подается на отрицательный вход компаратора D7.

Класс LMT01 позволяет использовать датчик в режиме как однократных, так и постоянных измерений. Программа раз в секунду выводит значение температуры в UART. Температура отображается в текстовом виде.

Для проверки работоспособности датчик LMT01 охлаждался с помощью специального аэрозольного баллончика. Таким способом очень просто получить температуру ниже -40°С без использования специализированной термокамеры. Результат испытаний можно увидеть на рисунке 11, а на рисунке 12 представлен сигнал на выводе D7 Аrduino.

Рис. 11. Работа скетча LMT01 для Аrduino

Рис. 11. Работа скетча LMT01 для Аrduino

Рис. 12. Сигнал на выводе D7 Аrduino

Рис. 12. Сигнал на выводе D7 Аrduino

Скетч для выдачи значения температуры можно найти в архиве примеров кода для LMT01.

Подключение LMT01 к ATiny25

Рис. 13. Макет и схема подключения LMT01 к микроконтроллеру ATiny25

Рис. 13. Макет и схема подключения LMT01 к микроконтроллеру ATiny25

Рис. 14. Подключение LMT01 к микроконтроллеру ATiny2

Рис. 14. Подключение LMT01 к микроконтроллеру ATiny2

Рис. 15. Осциллограммы сигналов на выводе 7 ATiny25

Рис. 15. Осциллограммы сигналов на выводе 7 ATiny25

На рисунке 13 представлена схема и макет подключения LMT01 к микроконтроллеру ATiny25 в корпусе SOIC-8. В данном случае использовался дополнительный ключ на биполярном транзисторе. Использование транзистора позволяет подавать сигнал на любой цифровой порт входа микроконтроллера без компаратора. На рисунке 14 показана схема в работе. Пусть вас не смущает большая отладочная плата MSP432 – на ней используется лишь преобразователь UART/USB. В терминал выводится значение температуры без дробной части, что упрощает и сокращает код программы. Осциллограммы сигналов с LMT01 можно посмотреть на рисунке 15.

Программа для ATiny25 написана на Си (GCC) и использует счет импульсов по прерываниям со входа INT0. Тактовая частота – 8 МГц. Для отсчета временных интервалов задействован таймер TIMER1.

Исходный проект “LMT01 demo programm for ATtiny25 MCU” и дополнительную информацию можно найти в архиве примеров кода для LMT01.

Подключение LMT01 к PIC10F204

Рис. 16. Макет устройства (LMT01+PIC10F204)

Рис. 16. Макет устройства (LMT01 + PIC10F204)

На рисунке 16 представлен макет подключения LMT01 к микроконтроллеру PIC10F204 в корпусе DIP-8. Так как данный микроконтроллер имеет в своем составе компаратор, внешний ключ на транзисторе не нужен. Схема подключения представлена на рисунке 17. На рисунке 18 представлены осциллограммы сигналов для разных измеряемых температур.

В связи с крайне ограниченными ресурсами PIC10F204 код программы был написан на ассемблере и занял большую часть объема Flash-памяти. Результаты измерения выводятся через программный UART на скорости 9600 бит/с. Счет импульсов идет программным способом на пределе скорости для тактовой частоты 4 МГц. В программе реализован прямой пересчет для получения результата с максимальным разрешением 0,0625°C без использования программного умножения и деления. Для отображения результата используется подпрограмма b24dec для перевода 24-битного результата в ASCII-код. Исходный код проекта LMT01_MSP430 с дополнительными материалами можно найти в архиве «Примеры кода для LMT01».

Рис. 17. Схема подключения LMT01 к микроконтроллеру PIC10F204

Рис. 17. Схема подключения LMT01 к микроконтроллеру PIC10F204

Рис. 18. Изменение количества импульсов LMT01 в зависимости от температуры

Рис. 18. Изменение количества импульсов LMT01
в зависимости от температуры

Подключение LMT01 к MSP430

Рис. 19. Схема подключения LMT01 к MSP430G2553

Рис. 19. Схема подключения LMT01 к MSP430G2553

Рис. 20. Подключение LMT01 к Launchpad MSP-EXP430G2

Рис. 20. Подключение LMT01 к Launchpad MSP-EXP430G2

Схема подключения LMT01 к недорогой отладочной плате Launchpad MSP-EXP430G2 приведена на рисунке 19. Для подключения использовался вариант c внутренним компаратором, подсчет импульсов производился с помощью таймера. Все это существенно упрощает как схему подключения, так и код программы. Макет устройства приведен на рисунке 20 (на фото питание на LMT01 подается с P2.4, однако в прилагаемом примере для этого используется линия P1.6). Программа имеет множество комментариев на русском языке и будет понятна даже начинающему разработчику. Значение температуры и «сырые» данные (число импульсов) выводятся в UART на скорости 9600 бит/с. Результат работы программы приведен на рисунке 21.

Рис. 21. Измерение температуры с помощью LMT01

Рис. 21. Измерение температуры с помощью LMT01

В архиве можно найти код программы для работы LMT01 совместно с MSP430G2553.

Заключение

Датчик температуры LMT01 найдет применение в различных устройствах, где необходима высокая точность измерения 0,5°C и широкий диапазон. Малое время измерения и низкий ток потребления позволяют использовать LMT01 в батарейном оборудовании. Высокая разрешающая способность 0,0625°C гарантирует точное слежение даже за малыми температурными изменениями. Минимальное число линий подключения и простой алгоритм вычитывания цифрового результата позволяет использовать LMT01 даже с самыми простыми 6-выводными микроконтроллерами. Для быстрого старта разработчик может использовать подробную документацию производителя, а также приложенные к данной статье примеры кода для разных МК.

Литература

  1. 2-Wire Galvanically Isolated IC Temperature Sensor With Pulse Count Interface. Texas Instruments, 2016.
  2. www.st.com.
  3. www.ti.com.
  4. www.maximintegrated.com.

О компании Texas Instruments

В середине 2001 г. компании Texas Instruments и КОМПЭЛ заключили официальное дистрибьюторское соглашение, которое явилось результатом длительной и успешной работы КОМПЭЛ в качестве официального дистрибьютора фирмы Burr-Brown. (Как известно, Burr-Brown вошла в состав TI так же, как и компании Unitrode, Power Trend и Klixon). С этого времени компания КОМПЭЛ получила доступ к поставке всей номенклатуры производимых компанией TI компонентов, ...читать далее

Наличие на складах
Наименование Наличие Цена
STLM75M2F (ST) 37 651 0.5124 $ 30.14 руб. от 2 500 шт
ISO7341CDW (TI) 5 643 3.4189 $ 201.05 руб. от 160 шт
LMT01LPG (TI) 60 200 1.2742 $ 74.93 руб. от 1 000 шт
MSP-EXP430G2 (TI) 202 14.27 $ 839.10 руб. от 36 шт
LMT01EVM (TI) 46 28.14 $ 1655 руб. от 18 шт
TMP107BID (TI) 16 573 2.7097 $ 159.35 руб. от 150 шт
DS18B20U+ (MAX) 23 650 2.3153 $ 136.15 руб. от 200 шт
DS18B20+ (MAX) 259 571 0.8565 $ 50.36 руб. от 584 шт
ISO7340CDWR (TI) 3 985 2.8215 $ 165.92 руб. от 178 шт
STLM75DS2F (ST) 75 355 0.3643 $ 21.43 руб. от 1 000 шт