Датчик температуры DS1621. Подробное описание датчика
Микросхема DS1621 представляет собой термометр и термостат «в одном флаконе» с цифровым вводом и выводом, которая гарантирует точность измерения и контроля с погрешностью плюс – минус 0,5 гр. Цельсия. Если использовать датчик DS1621 в роли термометра, то данные должны обрабатываться через I2C/SMBus последовательную шину в дополнительном девяти — битном коде с точностью младшего разряда плюс – минус 0,5 гр. Цельсия.
Для приложений, которым нужно повышенное разрешение контролируемой величины температуры, необходимо считать дополнительные регистры и выполнить несложные арифметические операции, для того чтобы получить более чем 12-битового разрешения (при этом цена самого наименьшего разряда составляет 0,0625 гр. Цельсия). Микросхема DS1621 имеет три адресных входа, таким образом, появляется возможность подключить к одной шине до восьми датчиков DS1621.
Применяя датчик DS1621 в роли термостата, в DS1621 имеются регистры TH (повышенная температура) и TL (пониженная температура). При превышении текущей температуры уровня TH выход датчика перейдет в активное состояние, и будет продолжать оставаться в нем, пока текущая температура не опустится ниже отметки TL. Таким образом, реализуется управление с заданным гистерезисом.
Описание выводов датчика DS1621
- SDA — вывод данных шины I2C.
- SCL — вывод тактового сигнала шины I2C.
- Tout — выход термостата.
- Vdd — вывод питания, плюс.
- GND — вывод питания, минус.
- A0..A2 — линия младших битов.
Принцип работы датчика DS1621
Принцип измерения основан на нестабильности частоты колебаний при изменении температуры. Для реализации этого принципа измерения в структуру микросхемы включены два генератора.
Первый из них обладает высокой температурной стабильностью. Его рабочая частота соответствует температуре — 55 гр. Цельсия и фактически не изменяется. Рабочая частота же второго генератора, напротив, меняется соразмерно изменению температуры. Особые счетчики совершают подсчет импульсов за равный промежуток времени и на базе разности, производится расчет текущей температуры, который представлен в виде 9-разряднго двоичного кода.
Данные делятся на старший и младший байты. Если для каких либо целей необходимо целое значение температуры, то нужно использовать, лишь старший байт. Младший же байт обладает только одним информационным битом — LSB, который реализует дискретность в 0,5 гр. Цельсия. Оставшиеся биты младшего байта постоянно равны нулю.
Регистр состояния
Микросхема DS1621 располагает несколькими режимами работы. Настройка и контроль данных режимов осуществляется с помощью регистра состояний. Существуют следующие биты:
- DONE — флаг завершения преобразования. Устанавливается по окончанию преобразования.
- THF — флаг «высокая температура». Устанавливается при увеличении температуры выше порога TH. Флаг сбрасывается программно или выключением питания.
- TLF — флаг «низкая температура». Устанавливается при уменьшении температуры ниже порога TL. Флаг сбрасывается программно или выключением питания.
- NVB — флаг записи данных в энергонезависимую память датчика. Установленный флаг указывает о том, что запись не завершена. Приблизительное время записи данных в ячейки составляет 10 мс.
- POL — выбор полярности выхода Tout. Высокое значение отвечает прямой полярности, низкое означает обратную полярность. Данный бит энергонезависим.
- ISHOT — бит управления циклом измерений. Однократное измерение происходит при высоком логическом уровне данного бита. Его обычно применяют при создании энергосберегающих систем. Низкий же логический уровень данного бита, позволяет выполнение преобразования в постоянном режиме. Бит этот энергонезависим.
Команды обмена
Обмен данными с датчиком DS1621 происходит по типовому протоколу I2C. Датчик принимает участие в нем в качестве SLAVE — устройства. Его SLAVE — адрес имеет вид следующий вид:
1001ххх
где ххх – состояние линий А0-А2 микросхемы. Для взаимодействия с DS1621 применяются следующие команды:
- 22h — «Останов преобразования» — команда выполняет окончание работы схемы преобразования температуры. Лишних данных для работы не требуется.
- AAh — «Чтение температуры» — Итогом работы команды — два байта данных, которые содержат величину измеренной температуры.
- A1h — «Установка TH» — команда выбора верхнего порога срабатывания термостата. После этой команды нужна передача двух байтов значения порога.
- A2h — «Установка TL» — команда выбора нижнего порога срабатывания термостата. После данной команды нужна передача двух байтов значения порога.
- A8h — «чтение температурного счетчика». Команда действует только на чтение и разрешает считать данные счетчика, частота работы которого зависит от температуры.
- A9h — «чтение стабильного счетчика». Команда действует только на чтение и разрешает считать данные счетчика, частота работы которого не зависит от температуры.
- AСh — «Регистр конфигурации». Если бит равен R — производится запись регистра конфигурации, при W – чтение.
- EEh — «Старт счетчика» — команда запуска измерения температуры. Лишних данных не требуется.
Улучшение точности измерений
В датчике DS1621 возможно повышение точности измеряемой температуры. Для этого доступны величины счетчиков стабильного N [A9h] и зависимого от температуры N[A8h] генератора. Зная измеренное значение температуры T[AAh]и значения счетчиков можно получить точное показание применив формулу:
T=T[AAh] – 0.25 + (N[A9h]-N[A8h])/N[A9h]
Режим термостата DS1621
У датчика DS1621 так же есть режим работы в роли термостата. Для управления исполнительными устройствами имеется цифровой выход Tout, устанавливаемый в зависимости от величины температуры. Уровни включения и выключения выхода выставляются в регистрах TH и TL, а полярность выхода выбирается битом POL регистра конфигурации.