RadioRadar - Радиоэлектроника, даташиты, схемы

https://www.radioradar.net/hand_book/hand_books/using_temperature_sensors_ds18s20.html

Особенности использования датчиков температуры DS18S20

При использовании датчиков температуры DS18S20 обычно задают продолжительность интервала (времени) конвертирования 750 мс, но можно контролировать время преобразования и по состоянию информационной линии. Дело в том, что после подачи команды конвертирования температуры устройство управления должно контролировать бит состояния, который выдаёт датчик DS18S20. Если DS18S20 отвечает лог. 0, конвертирование идёт, если лог 1 - конвертирование выполнено, и можно считывать температуру. Это описано в технической документации на датчик [1, 2].

Мне было интересно провести измерение реального времени конвертирования по контролю бита состояния. Подключив осциллограф, я не смог этого сделать. На рис. 1 это должно произойти в момент времени Т1, но там начался импульс сброса процедуры инициализации. Это стало хорошо видно на рис. 2 в момент Т2, где я добавил паузу в 1 мс (Т1-Т2). У меня в это время была программа по опросу датчиков DS18S20 один раз в 10 с.

Рис. 1.

 

Рис. 2.

 

Рис. 3.

 

Была разработана программа опроса датчика DS18S20 с паузой между опросами 50 мс и записью результатов в EEPROM микроконтроллера. Ограничился 20 измерениями. На рис. 3 видно, что первые 12 замеров равны 55h. Это, по умолчанию, константа датчика - +85 оС. Затем идут нормальные данные - 12 измерений с периодом 50 мс, а это не меньше 600 мс. Значит, датчику DS18S20 необходимо дать время на преобразование. Изменил программу так, что после первого измерения идёт пауза в 750 мс и затем идут 20 измерений с паузой между опросами 50 мс. В результате на рис. 4 видно, что первый замер - 55h, а потом поступают реальные данные. Пробовал уменьшить паузу после первого замера до 450 мс, но первые пять замеров оказались 55h (рис. 5). Провёл измерения с уменьшением паузы между опросами до длительности команды на запись в EEPROM. Создалось впечатление, что датчику DS18S20 для запуска конвертации необходимо дать команду конвертирования температуры [44h] и время в 750 мс, а затем конвертация идёт непрерывно, и по следующим командам [44h] текущая информация записывается в выходные регистры.

Рис. 4.

 

Рис. 5.

 

По результатам можно сделать вывод, что при необходимости датчик DS18S20 способен измерять температуру с паузой между опросами в длительность команды на запись в EEPROM, но спустя 750 мс после первого опроса. Этого можно добиться включением паузы 750 мс после первого опроса либо игнорировать первые замеры. Практического применения такой быстрый опрос может не иметь из-за большой тепловой инерции датчика. Но когда нужно опросить много датчиков, можно не ждать 750 мс при каждом опросе.

Это всё сказано о режиме полного питания (трёхпроводная схема). Возможен "паразитный" режим питания (двухпроводная схема). Для этого по рекомендации производителя нужно подать высокий уровень (напряжение питания) в течение всего времени температурного преобразования и приведена схема с полевым транзистором (fig. 6 в [1]).

Но можно обойтись и без него, подав питание от микроконтроллера. Угрозы линии порта, к которому подключён датчик DS18S20, нет, потому что при инициализации происходит контроль датчика, и в случае ошибки программа прекращает работу. Согласно технической документации, питание на датчик нужно подать не позднее чем через 10 мкс после завершения команды конвертирования температуры [44h]. Для этого в порт записывается лог. 1, и порт переключается на выход после задержки в 750 мс, затем он переключается на вход, и подаётся команда инициализации.

Литература

1.DS18S20 High-Precision 1-Wire Digital Thermometer. - URL: https://datasheets. maximintegrated.com/en/ds/DS18S20.pdf (17.11.21).

2. Считываем показания датчика DS18B20(DS18S20).-URL:https://cxem.net/ardumo/ardumo17.php (17.11.21).

Автор: В. Афонин, пос. Стрельна, Санкт-Петербург