Цифровые температурные датчики предлагают самый простой способ измерения и ввода высокоточного показания температуры в микроконтроллер или другое логическое устройство. В последней статье этой серии о температурных датчиках мы рассматривали аналоговые температурные датчики. Хотя они могут показаться более простыми в реализации, достаточно лишь сделать простое чтение АЦП, для получения наиболее точного измерения потребуется калибровка АЦП каждого устройства в процессе производства, что не всегда выполнимо. В этой статье мы погрузимся в рассмотрение нескольких различных вариантов цифровых температурных датчиков. Цифровые температурные датчики обычно будут стоить дороже простого аналогового температурного датчика. Однако простота и удобство производства с использованием этих устройств часто делают дополнительные расходы оправданными, когда требуются высокие уровни точности измерений.
Цифровые датчики температуры - это пятый тип датчиков, который мы рассматриваем в этой серии. Мы завершаем эту серию финальной статьей, в которой будем сравнивать все испытанные нами датчики в прямом соревновании в широком диапазоне условий окружающей среды, чтобы сравнить их функциональность, точность и поведение. Мы начали серию с вводной статьи, в которой создали набор шаблонов для стандартных карточек датчиков температуры. Как аналоговые, так и цифровые версии могут быть соединены через использование мезонинных разъемов или считываться независимо через их краевые разъемы. Позже, в этой серии, мы будем создавать основные платы для всех этих датчиков, что позволит нам считывать данные с одного датчика для проверки его функциональности или считывать данные со всей стопки плат, чтобы мы могли записывать данные со всех них вместе.
В этой серии мы собираемся рассмотреть широкий спектр датчиков температуры, говорить о их преимуществах и недостатках, а также о некоторых типичных топологиях их реализации. Серия будет охватывать следующие типы датчиков:
Как и в моих проектах, вы можете найти детали проекта, схемы и файлы плат на GitHub вместе с другими реализациями температурных датчиков. Проект выпущен под открытой лицензией MIT, которая позволяет вам использовать дизайны или любую их часть для личных или коммерческих целей, как вам угодно.
Предположим, вы заинтересованы только в чтении данных с датчика температуры с использованием микроконтроллера или другого логического устройства. В таком случае, цифровой датчик температуры является электрически наиболее простым вариантом для реализации. Цифровые датчики температуры могут предложить отличные уровни точности, поскольку все процессы измерения, компенсации и преобразования выполняются на чипе. Нет необходимости калибровать АЦП вашего микроконтроллера (или внешний АЦП). Также вам не нужно беспокоиться о электромагнитных помехах от близлежащих дорожек или других устройств, подключенных к соединениям между аналоговым датчиком температуры и микроконтроллером, которые могут непреднамеренно влиять на показания температуры.
В этом проекте мы будем реализовывать четыре различных варианта цифровых датчиков температуры с различными разрешениями и диапазонами измерения.
Название |
MAX31826MUA+T |
STS-30-DIS |
EMC1833T |
SI7051-A20-IMR |
Тип |
Цифровой |
Цифровой |
Цифровой |
Цифровой |
Минимальная температура измерения (°C) |
-55°C |
0°C |
-40°C |
-40°C |
Максимальная температура измерения (°C) |
+125°C |
+60°C |
+125°C |
+125°C |
Диапазон измерения |
Локальный |
Локальный |
Дистанционный |
Локальный |
Разрешение (бит) |
12 |
16 |
|
14 |
Точность (°C) |
±0.5°C (+10°C до +85°C) ±2°C (-55°C до 125°C) |
±0.2°C |
±1°C (-20°C до +105°C) |
±0.1°C |
Рабочая температура (°C) |
-55°C до +125°C |
-40°C до +125°C |
-40°C до +125°C |
-40°C до +125°C |
Функции |
1-Wire шина, паразитное питание |
I²C |
I²C, SMBus |
I²C |
Минимальное напряжение питания |
3 V |
2.15 V |
1.62 V |
1.9 V |
Максимальное напряжение питания (V) |
3.7 V |
5.5 V |
3.6 V |
3.6 V |
Потребляемый ток (uA) |
4 мА (при считывании низкого логического уровня) |
45 uA в режиме ожидания |
700 uA при преобразовании, |
195 nA |
Производитель |
Maxim Integrated |
Sensirion AG |
Microchip |
Silicon Labs |
Корпус |
8-MSOP |
8-VFDFN |
8-VDFN |
6-DFN |
Я включил EMC1833T, потому что для меня это увлекательный датчик. Это устройство для дистанционного измерения температуры, что означает, что оно не использует датчик, расположенный внутри компонента. Вместо этого, он измеряет температуру, преобразуя выходной сигнал внешнего датчика, который в данном случае является транзистором, в цифровой сигнал. Я не уверен, что он обязательно подходит для категории «цифровой температурный датчик», так как он не совсем соответствует другим датчикам, на которые мы смотрим. Тем не менее, транзисторы обычно не известны как используемые в качестве датчиков температуры, поэтому я не знал, куда его поместить. Меня увлекает в этом датчике то, что он может измерять температуру, используя почти любой транзистор. Если вы разрабатываете ASIC, то вы можете легко включить дополнительный транзистор на кристалл для этой цели. Затем вы можете использовать этот транзистор, который может быть считан датчиком, таким как EMC1833T, для внешнего измерения температуры кристалла, не добавляя никакой дополнительной сложности к вашему кремнию. Другой способ взглянуть на это - вы можете контролировать температуру вашего кристалла, не неся никакого инженерного риска, связанного с проектированием и созданием специализированного цифрового температурного датчика в кремнии.
Первым датчиком, который мы будем реализовывать, является MAX31826, произведенный компанией Maxim Integrated. Этот датчик работает по шине 1-Wire, а не по более типичным шинам I2C или SPI. Одна из потенциальных проблем заключается в том, что 1-Wire вряд ли будет предложен в качестве протокола связи микроконтроллером, на котором базируется ваш проект. Однако это простой протокол для реализации программного обеспечения управления сигналами, и он имеет значительное преимущество перед более популярными вариантами, поскольку для работы датчика требуется всего два провода. Включая питание, I2C требует четыре провода, а SPI - пять проводов. В отличие от них, 1-Wire требует только землю и линию данных для большинства приложений, так как он может питаться от линии данных, используя технику паразитного питания. В датчике интегрирован конденсатор, который может поддерживать питание микросхемы в течение периодов, когда линия данных находится в низком состоянии, что устраняет необходимость в выделенном источнике питания в большинстве обычных условий эксплуатации. Это может быть очень удобным решением для плат, на которых имеется крайне ограниченное пространство.
Еще одной интересной особенностью датчика и его шины 1-Wire является возможность установки 4-байтового адреса для устройства с использованием вручную выбираемых контактов, установленных на корпусе устройства. Это позволяет подключать до 16 температурных датчиков к одной шине данных 1-Wire, присваивая каждому устройству уникальный адрес. Это может быть очень удобным вариантом, если у вас ограниченное количество контактов микроконтроллера и, в то же время, требуется возможность измерения с использованием большого количества температурных датчиков.
По сравнению с датчиками, которые мы рассматривали в предыдущих статьях этой серии, MAX31826 не только обладает высокой точностью, но и предоставляет данные высокого разрешения. Датчик обеспечивает точность +/- 0,5°C в диапазоне от -10°C до +85°C и +/- 2°C точность во всем температурном диапазоне от -55°C до +125°C. Все показания датчика передаются в виде 12-битных значений, что является более высоким разрешением, чем предлагают большинство микроконтроллеров.
В качестве датчика температуры MAX31826 имеет многое, что может предложить, но также оснащен встроенной памятью EEPROM объемом 1 кБ в качестве дополнительной функции. Полагаю, у них осталось немного свободного места на кристалле. Если ваш микроконтроллер не имеет интегрированной памяти EEPROM и вам нужно сохранить некоторые конфигурационные данные для вашего приложения, этот датчик температуры поможет вам. Если вам нужно дополнительное непереходящее хранилище, этот датчик температуры позволит уменьшить количество компонентов и сэкономить место на плате.
В техническом описании рекомендуется питать устройство напрямую, а не использовать паразитное питание от шины, когда температура может превышать 100°C. Хотя большинство типичных приложений не требуют достижения этих уровней температуры, тесты, которым мы подвергнем датчик, превысят 100°C. Поэтому, для этого упражнения, мы будем следовать рекомендации и питать устройство напрямую, вместо исследования интересного варианта с паразитным питанием.
Форма платы и общая компоновка основаны на шаблоне проекта, который мы создали во введении к этой серии. Поскольку мы не используем ни одну из обычных шины связи, я удалил связанные с ними сети и их компоненты с платы. Тем не менее, я оставил подключения на стековом разъеме, чтобы это не вызвало проблем для других стекируемых датчиков. С шиной 1-Wire нам нужно использовать только пин выбора микросхемы для обратной связи с хост-микроконтроллером.
Я использовал STS-30-DIS, произведенный компанией Sensirion, в прошлом проекте из-за его невероятной точности и калиброванных показаний, которые можно отследить до NIST. Это было необходимо, поскольку инструментарий разрабатывался для компании, обслуживающей пищевую промышленность, и требовалось собирать данные для государственной отчетности. С малыми габаритами, широким диапазоном напряжений, невероятной точностью и линеаризованным 16-битным цифровым выходом, в этом устройстве много чего любить, если вам нужно измерять только положительные температуры. Если вам необходимо измерять температуры ниже точки замерзания, вариант STS-30A-DIS имеет автомобильную квалификацию и диапазон измерений от -40°C до 125°C. Однако, это увеличение диапазона измерений идет с небольшой потерей в общей точности.
В предыдущей статье об аналоговых датчиках температуры я говорил о том, насколько замечательны аналоговые датчики температуры для таких приложений, как мониторинг процессов, включение и выключение вентилятора или для других систем терморегулирования, которые могут работать без вмешательства микроконтроллера. STS-30 предлагает вывод ALERT, который может быть использован для выполнения аналогичной функции. Он предназначен для подключения к выводу прерывания микроконтроллера; однако, для него также есть полное приложение, посвященное этому, и его можно использовать для автоматического переключения нагрузок. Возможность подключения к функции прерывания микроконтроллера может быть критически важной. Это позволяет датчику немедленно уведомлять микроконтроллер сигналом высокого приоритета о том, что необходимо немедленно что-то сделать, вместо того чтобы полагаться на редкое опрос датчика микроконтроллером и реагирование на прочитанные данные. Если выход ALERT подключен к транзистору, чтобы он мог управлять нагрузкой, датчик может использоваться как для мониторинга/регистрации, так и для выполнения автономной функции терморегулирования. По сравнению с аналоговыми решениями, такая конфигурация может сделать цифровой STS-30 более дешевым вариантом. Отдельный компаратор не потребуется, и порог для вывода ALERT может быть настроен пользователем через микроконтроллер/HMI без необходимости заводской настройки.
Устройства серии STS-30 используют шину I2C для связи. Схема, которую мы реализуем в этой статье, не включает в себя подтягивающие резисторы, которые обычно необходимы для корректной работы шины связи. Вместо этого подтягивающие резисторы будут установлены на базовых платах. Поскольку нам нужен только один набор подтягивающих резисторов на шину, добавление резисторов к каждому датчику привело бы к появлению нескольких подтягивающих резисторов на шине, что могло бы привести к ее неправильной работе. Кроме того, все резисторы, подключенные параллельно, уменьшили бы их общее сопротивление.
Пин ADDR позволяет нам выбирать между двумя разными адресами устройства, что позволяет подключать к одной шине I2C два компонента STS-30. Хотя это может быть не так впечатляюще, как возможности устройства MAX31826 на шине 1-Wire, это всё же удобно, поскольку позволяет использовать более одного устройства. Я подключаю пин ADDR к логическому нулю (GND), так как это устанавливает адрес по умолчанию 0x4A, а при подключении к логической единице, это устанавливает его на альтернативный адрес 0x4B.
Мне нравится упаковка на STS-30, так как она компактная, но при этом не слишком сложная, поэтому вы можете собрать свою плату вручную, если используете трафарет. Пакет датчика вместе с декаплинг-конденсатором 0603 примерно такого же размера, как и MAX31826, на который мы смотрели выше. С меньшим конденсатором он хорошо впишется в плату высокой плотности. Большая заземляющая площадка под ИС обеспечивает отличный путь для передачи тепла от земляной плоскости к температурному переходу внутри ИС. Это делает его идеальным выбором для размещения рядом с любым устройством, таким как большой MOSFET или регулятор, который использует земляную плоскость для отвода излишнего тепла в плату. Размещение ИС в непосредственной близости от источника тепла даст более точные результаты измерения температуры.
Как я уже упоминал ранее, устройство EMC1883, произведенное компанией Microchip, привлекает меня не только своим набором фантастических функций, но и тем, что оно может считывать температуру, измеренную с помощью перехода транзистора. STS-30, который мы рассматривали выше, имел контакт прерывания по тревоге, срабатывающий при достижении абсолютного значения; однако, EMC1883 можно настроить так, чтобы он также генерировал предупреждение на основе скорости изменения измеренной температуры. Это предупреждение о скорости изменения может позволить интеллектуальным решениям управления температурой автоматически включаться в предвидении их необходимости, а не после наступления события. Это имеет потенциал для улучшения надежности устройства в целом за счет тщательного управления его рабочей температурой. Как и в случае с STS-30, он полностью настраивается программно, что предлагает значительные преимущества по сравнению с любым заводским вариантом, который, вероятно, пришлось бы реализовать, если бы вы использовали полностью аналоговый термостат для достижения тех же результатов.
Конкретная модель серии EMC8xx, которую мы тестируем, будет поддерживать сенсорное восприятие только одного перехода. Однако, есть и другие модели в серии, которые могут обеспечить сенсорное восприятие до пяти переходов.
Как и STS-30, этот датчик основан на интерфейсе I2C и позволяет подключать несколько датчиков к одному шине I2C. Однако отличие заключается в реализации пина ADDR у EMC1833T, который отличается от бинарной природы включения/выключения устройства STS-30. Этот датчик позволяет настроить до шести различных адресов, используя разные значения подтягивающих резисторов. Пин ADDR также выполняет функцию одного из прерывающих пинов, действуя как пин термического предупреждения (наряду с пином термического предупреждения/оповещения ALERT/Warning 2). Как и при установке предыдущего устройства, я не буду использовать подтягивающие резисторы на линиях I2C на плате датчика температуры. Однако они должны быть установлены где-то в вашей схеме, чтобы шина связи датчиков функционировала корректно.
В техническом описании рекомендуется использовать биполярный переходной транзистор 2N3904 в качестве дистанционного измерительного элемента, поскольку у меня нет доступного транзистора ЦПУ для измерений. Я использую поверхностный вариант 2N3904 для измерения температуры на этой плате. MMBT3904 доступен практически от каждой компании, занимающейся производством биполярных транзисторов (BJT) - в данном случае я выбрал компонент от ON Semiconductor, так как он был наилучшим образом на складе. Было доступно несколько миллионов, когда я в последний раз смотрел на Octopart.
Как и в предыдущих статьях этой серии, я разместил элемент чувствительности к температуре, наш транзистор, внутри теплового разрыва. Нечувствительные элементы я разместил за тепловым разрывом. Это предотвращает возможность негативного влияния EMC1833T на показания температуры из-за любого тепла, которое он может генерировать сам.
Наконец, у нас есть Si7051-A20 от Silicon Labs. Результаты этого устройства вызывают у меня наибольший интерес во всей этой серии. MAX31826 является довольно точным датчиком; однако, Si7051-A20 предлагает впечатляющую точность +/- 0.1°C с невероятно низким энергопотреблением всего 195 нА при измерении. Энергопотребление как минимум на порядок ниже, чем у всех других цифровых датчиков температуры и значительно ниже, чем у аналоговых датчиков температуры, которые мы рассматривали в предыдущей статье.
Где многие датчики имеют очень высокую заявленную точность, эти цифры обычно применимы только к ограниченной части общего диапазона измерений. В отличие от этого, Si7051-A12 обеспечивает заявленную точность на всем своем диапазоне измерений от -40°C до +125°C. Более того, ошибка в 0,1°C является худшим сценарием точности, а не средней или минимальной. При выбранном 14-битном разрешении Si7051-A20 обеспечивает повторяемое измерение с точностью до 0,01°C - мне нравятся точные и повторяемые датчики!
Как и в случае с последними двумя датчиками, Si7051-A20 является датчиком, совместимым с I2C. Однако он не предлагает вывод адреса, что означает, что вы можете подключить к шине I2C только один единственный блок, если только вы не добавите переключатель I2C или не будете переключать питание между различными блоками, подключенными к одной и той же шине. Это потребует дополнительных выводов IO и добавит сложность схемы, делая Si7051-A20 менее идеальным для обнаружения нескольких местоположений на вашей плате. Устройство также не имеет никаких выводов оповещения/прерывания, предназначенных для использования исключительно как цифровой датчик температуры. В общем, если вы хотите автоматизировать управление температурой на вашей плате, менее точный и более дешевый датчик будет более чем достаточным для такого приложения.
Одной из функций, которая мне действительно понравилась в STS-20, когда я в последний раз его использовал, была калибровка, сертифицированная NIST, применяемая к каждому устройству, поскольку мой клиент требовал этой функции. Хотя в техническом описании Si7051-A20 об этом не упоминается, имеется сертификат калибровки. Мне также удалось найти другой, более конкретный сертификат калибровки; однако он не размещен на веб-сайте Silicon Labs и, следовательно, может относиться только к конкретным единицам, приобретенным этой компанией. Если это так, это устанавливает прецедент для Silicon Labs по выдаче специфических сертификатов для своих клиентов.
Как и в других реализациях I2C, о которых мы говорили в этой статье, линии I2C для этой карты не оснащены подтягивающими резисторами на линиях данных/часов. Вам нужно будет включить подтягивающий резистор на каждой линии где-то в вашей схеме, чтобы обеспечить успешное общение с Si7051-A20.
6-контактный корпус DFN также является самым простым для ручного прототипирования среди всех безвыводных вариантов, о которых шла речь в этой статье. Используя трафарет или инструмент для нанесения пасты, такой как Voltera V-One, этот датчик будет невероятно легко установить вручную и переплавить с помощью базовых инструментов, что делает его идеальным для создания прототипов дома или в лаборатории офиса.
Мы рассмотрели четыре различных цифровых температурных датчика в этой статье. Однако существуют сотни других вариантов цифровых температурных датчиков, которые могут удовлетворить конкретные требования вашего проекта, и которые хорошо запасены и доступны. Хотя аналоговые температурные датчики отлично подходят для автономного мониторинга процессов или использования с аналого-цифровым преобразователем, цифровые температурные датчики предлагают значительные удобства при интеграции в продукт, имеющий микроконтроллер. Как мы видели в этой статье, существуют цифровые температурные датчики, которые могут генерировать прерывания и оповещения при настраиваемых порогах, что позволяет использовать их в захватывающих приложениях, выходящих за рамки термостата на основе фабрично установленного компаратора, который вы, вероятно, использовали бы с аналоговым температурным датчиком. Точность и допуск современных цифровых температурных датчиков могут быть исключительно высокими; однако многие варианты потребляют значительно больше тока, чем их аналоговые аналоги, что может привести к некоторому смещению температуры из-за самонагрева.
Самые популярные и наиболее обширно представленные цифровые датчики температуры обычно используют шину I2C для связи; однако также доступны варианты с шинами SPI и 1-Wire, что позволяет выбрать альтернативные варианты шин связи для вашего проекта.
Как я упоминал в начале статьи, вы можете найти детали каждой из этих плат датчиков и всех других реализаций датчиков температуры на GitHub. Все эти проекты опубликованы под открытой лицензией MIT, которая позволяет вам делать практически что угодно с дизайном для личного или коммерческого использования.
Хотели бы вы узнать больше о том, как Altium может помочь вам с вашим следующим проектом печатной платы? Обратитесь к эксперту Altium.