Эти микросхемы отличаются в основном только тем, как данные представлены для пользователя, и некоторыми особенностями. Чтобы понять различия между DS18B20 и DS1820, рассмотрим эволюцию изменений между микросхемами DS1820 -> DS18S20 -> DS18B20.
[Принцип работы]
Базовая схема измерения температуры у всех устройств DS18xx одинаковая. Внутри реализованы два источника опорного напряжения. У одного из них высокий коэффициент зависимости напряжения от температуры. У другого низкий коэффициент, так что его выходное напряжение при изменении температуры почти не меняется. АЦП преобразует разницу между напряжениями этих опорных напряжений в цифровую форму, которая соответствует измеренной температуре.
[Эволюция серии DS18xxx]
DS1820. Начнем с оригинальной микросхемы DS1820. Для выполнения преобразования температуры в ней используется топология с двумя генераторами. Разрешающая способность оригинальной DS1820 была только 9 бит. Дополнительное разрешение может быть достигнуто путем чтения двух дополнительных байт (Count Per °C и Count Remain) и вычислений по следующей формуле. Для этого вычисления Temp_Read это значение, полученное усечением самого младшего бита с весом 0.5°C (бита 0) из данных температуры.
(Формула 1)
DS18S20. Микросхема DS18S20 была разработана таким образом, чтобы она просто заменяла оригинальную DS1820 без каких-либо доработок конечного продукта. Чтобы такая замена работала, АЦП в микросхеме DS18S20 сконфигурирована на заводе так, чтобы она всегда выполняла 12-разрядные преобразования. 12 бит данных затем округляются до 9 бит и сохраняются в регистре температуры. Чтобы получить улучшенный результат преобразования температуры, вычисляется значение для регистра Count Remain. Регистр Count Per °C устанавливается на заводе в значение 16. С помощью вычислений по показанной выше Формуле 1, использование результата преобразования вместе с этими регистрами позволяет добиться для DS18S20 разрешающей способности 12 бит.
DS18B20. Эта микросхема отличается от DS18S20 важной особенностью: разработчик может выбрать разрешающую способность путем программирования регистра конфигурации (в диапазоне от 9 до 12 бит). Это позволяет добиться уменьшения времени преобразования, если можно снизить разрешающую способность (чем меньше выбранная разрядность, тем меньше время преобразования) и общее энергопотребление (чем меньше разрядность, тем ток потребления меньше). Таблица 1 показывает время преобразования и вес младшего бита результата для каждой настройки разрешающей способности.
Таблица 1. Основные отличия настроек разрешающей способности DS18B20.
Параметр
Разрешающая способность, бит
9
10
11
12
Время преобразования, мс
93.75
187.5
375
750
Вес младшего разряда, °C
0.5
0.25
0.125
0.0625
Формат регистров температуры DS18B20 и DS18S20 также отличается. Вес регистра температуры DS18S20 сделан эквивалентным DS1820; регистр температуры микросхемы DS18B20 имеет формат для предоставления 12 бит разрешающей способности. Такой формат регистра DS18B20 устраняет необходимость в дополнительном вычислении (которые требуются для DS18S20), если требуется разрешающая способность выше, чем 9 бит. Для обоих микросхем состояние регистра температуры при включении питания одинаковое и соответствует +85°C. Форматы для регистров температуры показаны в таблицах 2 и 3.
Таблица 2. Формат регистра температуры DS18S20.
бит 7
бит 6
бит 5
бит 4
бит 3
бит 2
бит 1
бит 0
Младший байт
26
25
24
23
22
21
20
2-1
Старший байт
S
S
S
S
S
S
S
S
Таблица 3. Формат регистра температуры DS18B20.
бит 7
бит 6
бит 5
бит 4
бит 3
бит 2
бит 1
бит 0
Младший байт
23
22
21
20
2-1
2-2
2-3
2-4
Старший байт
S
S
S
S
S
26
25
24
Примечание *: S это бит знака.
Также есть незначительные отличия между картой памяти scratchpad между этими устройствами (см. таблицу 4). В DS18S20 отсутствует регистр конфигурации, позволяющий менять разрядность преобразования температуры в DS18B20. У DS18S20 есть два дополнительных регистра, которые необходимы для вычислений результата, если требуется разрешение более 9 бит.
Таблица 4. Сравнение карт памяти scratchpad микросхем DS18S20 и DS18B20.
DS18S20
DS18B20
Байт 0
Младший байт температуры (AAh)
Младший байт температуры (50h)
Байт 1
Старший байт температуры (00h)
Старший байт температуры (05h)
Байт 2
Регистр TH
Байт 3
Регистр TL
Байт 4
Зарезервировано (FFh)
Регистр конфигурации
Байт 5
Зарезервировано (FFh)
Байт 6
Count Remain (0Ch)
Зарезервировано
Байт 7
Count Per °C (10h)
Зарезервировано (10h)
Байт 8
CRC
Также отличаются 8 бит кода семейства в ROM-коде для DS18S20 и DS18B20. Код семейства DS18B20 равен 28h; у DS18S20 код семейства полностью совпадает с кодом оригинальной DS1820, который равен 10h.
[Рекомендации по применению]
DS18S20 рекомендуется применять только для тех приложений, которые в настоящий момент используют оригинальную микросхему DS1820. Простая замена DS1820 на DS18S20 скорее всего не потребует никаких изменений ни в аппаратуре, ни в программном обеспечении конечного продукта. Однако иногда может потребоваться небольшие изменения в коде, потому что у DS18S20 больше время преобразования (750 мс), чем у DS1820 (500 мс).
DS18B20 рекомендуется использовать для любых приложений, где требуется разрешающая способность измерения температуры от 9 до 12 бит. DS18B20 обладает большей гибкостью, и её проще использовать, чем DS18S20.