Датчики
Цифровой датчик температуры MCP9800
- Подробности
- Опубликовано 07.05.2013 15:44
Полупроводниковые датчики температуры выпускаются большим количеством производителей. Каждый из них стремится каким-либо образом выделить свою продукцию из общего ряда. Примером может служить датчик MCP9800, от Microchip, выполненный в миниатюрном корпусе SOT23. Благодаря малым размерам и цифровому интерфейсу I2C, данная модель может оказаться востребованной в разнообразных портативных измерительных устройствах, выполненных на основе микроконтроллеров.
Характеристики
Схема включения MCP9800 |
Цифровой датчик температуры MCP9800 имеет максимальное разрешение 12 бит и обеспечивает точность измерений ±0.5º при температуре +25º, и ±1.0º диапазоне от -10º до +85º. Во всем рабочем диапазоне температур от -55º до +125º гарантированная точность составляет ±3.0º. Время преобразования температуры в цифровой код зависит от разрешения и составляет до от 30 до 75мс при 9 битах и от 240 до 600мс при 12 битах.
Напряжение питания датчика может находиться в пределах 2.7-5.5 вольт, что позволяет его использовать в самом широком спектре применений, включая устройства с низковольтным батарейным питанием. Этому же способствует и малый ток, потребляемый датчиком. В рабочем режиме он не превышает 200мкА, а в спящем – 1мкА.
Датчик MCP9800, как и многие другие подобные устройства, оснащен выходом термостатирования. Его использование делает возможным конструирование предельно простых схем управления температурой.
Особенности датчика.
Функциональная схема MCP9800 |
В целом, датчики температуры линейки MCP980х очень сильно напоминают микросхемы серии LM75, вернее ее 12-битные варианты, такие как TMP75. Благодаря одинаковой организации обмена, данные устройства являются взаимозаменяемыми. Главной особенностью MCP9800/9802 стал миниатюрный корпус серии SOT23. Небольшие размеры не только удешевили производство, но и позволили повысить скорость реакции на изменение окружающей температуры. Единственным недостатком датчиков MCP9800 стала невозможность использовать несколько микросхем на одной шине. Для решения подобной проблемы можно воспользоваться моделями MCP9801/9803, реализуемыми в корпусах MSOP и SOIC и оснащенных 3 адресными линиями. Это делает возможным использование до 8 датчиков на одной шине. Альтернативным вариантом только для двух датчиков на шине может стать совместное использование MCP9800 и MCP9802. Данные микросхемы полностью идентичны, за исключением адреса I2C. Для варианта MCP9800 он равен 1001000xb, а для MCP9802 – 1001101xb.
Работа с MCP9800
Функциональная схема датчика MCP9800 содержит измерительную цепь, состоящую из полупроводникового сенсора и сигма-дельта АЦП, шинного интерфейса I2C, регистра указателя и четырех регистров данных. Основу регистров данных составляет регистр температуры. Он имеет разрядность 16-бит из которых используется только от 9 до 12 старших бит, в зависимости от установленной точности измерения. Регистр температуры доступен для считывания в любое время. Настройка работы микросхемы производится с помощью регистра конфигурации. Он позволяет задать режим работы, точность и алгоритм работы выхода. Уставка, по которой выход будет переводиться в другое состояние, записывается в регистр Tset. Необходимый гистерезис задается в Thyst. Последние два регистра также 16-разрядные, но поддерживают только 9-ти битные значения.
При обмене с датчиком MCP9800 используются стандартные алгоритмы работы по шине I2C. В процессе обмена, сначала всегда передается адрес микросхемы на шине, затем записывается номер регистра, с которым планируется производить операции, в регистр-указатель. Далее, в зависимости от направления передачи данных, производится запись, либо повторный старт и чтение. Наиболее используемыми видятся две операции: задание регистра конфигурации и чтение температуры. Для выполнения первой из них достаточно команды записи 1 байта. Вторая реализуется с помощью чтения двух байт. Диаграммы данных операций приведены на рисунках.
Алгоритм записи байта в регистр конфигурации |
Алгоритм чтения температуры |
Преобразование температуры выполняется стандартными методами, описание которых можно найти в статье Преобразование кода цифровых датчиков температуры.
Пример применения MCP9800 описан в статье Терморегулятор на микроконтроллере PIC16F676.