Статьи / KA041 / Как отличить поддельные датчики DS18B20?
§ 41. Как отличить поддельные датчики DS18B20?
|
Дмитрий Иванов, 07 Ноября 2019
|
По ходу эксплуатации цифровых датчиков температуры 1-Wire Dallas DS18B20 мы несколько раз сталкивались с тем что
датчики от некоторых производителей, особенно, по стоимости ниже среднерыночной, демонстрируют ненадежную работу.
Чаще всего это проявляется в виде "зависания" датчика (перестает отвечать на запросы) спустя некоторое время эксплуатации
или даже аппаратного выхода из строя (начинает саморазогреваться).
Хуже всего когда неисправный дачтик выходит из строя и начинает влиять на работу остальных "хороших" датчкиов подключенных к шине, например, создавая конфликтные ситуации пересылая по шине "мусор".
Данный вопрос был уже освящен в ряде статей:
https://habr.com/ru/post/470217/
https://www.drive2.ru/b/513061538530066675/
По этой причине мы подходим крайне аккуратно к выбору поставщика и производителя датчиков DS18B20 которые можно
купить у нас под артикулом KTS-18B20.
Помимо работы только с проверенными поставщиками, мы обязательно делаем проверку закупленной партии датчиков на предмет ее качества и соответствия требованиям.
Тем не менее, иногда возникает необходимость быстро проверить конкретный экземпляр датчика DS18B20. Самым простым и в то же время эффективным критерием для "отсева"
поддельных датчиков является проверка содержимого "сырых" измерений (команда чтения буфера данных [0xBE]).
Согласно официальной документации на датчик, содержимое карты памяти в виде 9 байт (включая CRC) должно выглядеть вот так:

Обратите, пожалуйста, внимание на байты 5 и 7: их значения зафиксированы и равны 0xFF и 0x10 соответственно.
Показано эксперимертами, что если конкретный датчик возвращает значения указанных байт отличные от упомянутых - с очень высокой
вероятностью данный датчик есть "подделка", он находится в зоне риска и рано или поздно может вас подвести.
Для быстрой проверки датчика можно использовать модуль Laurent-5 позволяющий
выводить "сырые" измерения DS18B20 в виде текстового KE-сообщения.
Для этого заходим в WEB интерфейс модуля (по умолчанию статический адрес 192.168.0.101), выбираем раздел "Настройки".

Убеждаемся что канал 'А' шины 1-Wire настроен на работу с датчиками DS18B20, питание на шину подано.

В подразделе настройки выдачи Ke-сообщений, выбираем сообщение [DS18].
Настроим его так что бы "сырые" измерения датчиков DS18B20 выдавались в TCP сервер модуля (по умолчанию, доступный на TCP порту 2424).
![Ke-сообщение [DS18] - сырые измерения датчиков DS18B20](img/KA041/004.png)
Теперь дело осталось за малым - подключить испытуемый датчик к шине 1-Wire, канал 'А'. Т.е. нужно использовать клеммы модуля 1WA (сигнал), PA (питание) и GND.
Поскольку будем подключать датчики по одному с коротким кабелем (1-2 м) можно не использовать внешний поддягивающий резистор (обязательный в случае длинной линии).

Перейдем в раздел "1-Wire датчики температуры" в Web интерфейсе что бы убедиться что датчик подключен и работает. Датчик обнаружен и дает разумные показания температуры.

Если вы меняли датчики "на лету" то возможно нужно будет отсканировать шину заново.

Теперь подключимся к TCP серверу модуля что бы получить заказнное туда сообщение [DS18]. Можно использовать любой удобный вам терминал (telnet, putty и т.д.).
Иногда удобнее под ОС Windows может оказаться утилита HERCULES. Выбираем раздел "TCP клиент", указываем реквизиты TCP сервера модуля Laurent-5 (192.168.0.101 : 2424) и подключаемся.
В терминале увидим сообщения модуля [DS18] содержашие результат чтения памяти датчика в виде 9 байт данных в HEX виде.

Видим следующий результат чтения данных: 9A 01 4B 46 7F FF 0C 10 9F
Этот датчик - не подделка.
Теперь подключим к модулю испытуемый "подозрительный" DS18B20. В случае необходимости - пересканируем шину заново. Вроде бы датчик работает и дает разумные показания. Но...
#M,DS18,1,A10155057F7E816629
#M,DS18,1,A00155057F7E81666A
Вместо зафикисрованных значений на позиции байта 5 и 7 видим совсем не те значения которые должны быть а именно: A0 01 55 05 7F 7E 81 66 6A
С далеко не нулевой вероятностью этот датчик рано или поздно может начать "капризничать" и срывать работу всей шины со всеми остальными датчиками подключенными к ней.
© Дмитрий Иванов
07 Ноября 2019 года
http://www.kernelchip.ru