Очередная проблема с DS18B20

mavrinpn
Offline
Зарегистрирован: 17.07.2018

Добрый день!

Есть датчик: DS18B20Z+T&R

В даташитах указано, что отличия модификаций DS18B20 в типе корпуса, из этого делаю вывод, что программно датчики идентичные.

Код получения данных:

    if (ds.search(addr)) {
      ds.reset();
      ds.select(addr);
      ds.write(0x44, 1);
      delay(1000);
      ds.reset();
      ds.select(addr);
      ds.write(0xBE);
      byte byte0 = ds.read();
      byte byte1 = ds.read();
      float celsius =  ((byte1 << 8) | byte0) / 16.0;
    }

На выходе получаю температуру: 4061.50 по Цельсию.

Смотрю на состав байтов температуры: 1111 1101 1101 1000

По даташиту это говорит об отрицательной температуре (первые 5 битов слева - знак, если 0, то положительная, если 1, то отрицательная).

Датчик находится в комнате, где примерно +29 +30 градусов.

Зажимаю датчик пальцем, показания растут: 4063, 4064.50 и так далее

Подношу паяльный фен, выставленный на 100град, температура доползает до переполнения и после примерно 60 градусов отсчет начинается с 0 градусов (0000 0000 0000 1000).

Делаю вывод, что датчик бракованый (сбит ноль). Подключаю еще 3 таких же датчика (правда из той же партии), все показывают одинаковую сбитую температуру: 4061.50 по Цельсию.

Подключаю датчик в другом типе корпуса: показывает верно: 28-29 градусов (программный код тот же).

Попытки менять разрешение датчиков, установка/сброс байтов Th и Tl ни к чему не приводит.

Методом подбора добавляю к старшему биту +4 в десятичной форме:

byte1 += 4;

Температура становится похожа на правду.

Но надежды теперь нет никакой - что если это действительно бракованная партия? И в продуктиве будут установлены "нормальные" датчики, которым не нужно прибавлять магические числа.

Кто сталкивался с такой проблемой?

mavrinpn
Offline
Зарегистрирован: 17.07.2018

Забыл сказать: все подключения (и плохих и хорошего датчика) - с паразитным питанием, подтяжка 4.7K есть.

sadman41
Offline
Зарегистрирован: 19.10.2016

А что показывает DallasTemperature?

mavrinpn
Offline
Зарегистрирован: 17.07.2018

Примерно -24 градуса по Цельсию.

sadman41
Offline
Зарегистрирован: 19.10.2016

Ну, значит, чего-то с датчиком. DallasTemperature вылизывалась годами. Какой ID, кстати, у сенсора? По нему можно семейство уточнить.

 

mavrinpn
Offline
Зарегистрирован: 17.07.2018

Сейчас не в офисе. В понедельник посмотрю ID.

Я бы тоже думал, что что-то с датчиком, но попробовал все 4 - и все кажут одно и то же.

И я бы как-то понял "залипший бит", но данные меняются по всем битам, ошибка только в "сдвиге" старшего байта...

Я задумываюсь, что мне попались датчики с хитрой/китайской/тестовой прошивкой: замена логики битов отрицательной температуры на абсолютный отсчет температуры.

Попробую как-нибудь проверить минусовую температуру, чтобы подтвердить догадку.

sadman41
Offline
Зарегистрирован: 19.10.2016

С какой бы "китайской прошивкой" (хотя зачем Maxim-у это делать) они вам не попались, факт есть факт - ведут они себя не по datashit'у производителя, стало быть и разбираться с ними придется лично и, возможно, с каждым.

Поправки ли вводить или ещё как-то - уже не нам советовать. Либо обратитесь к продавцу - пусть объяснит сиё поведение. Может это вообще на 18x20, а "датчикосодержащий продукт".

mavrinpn
Offline
Зарегистрирован: 17.07.2018

Спасибо за советы - будем думать.

Еще один интересный момент: сразу после сброса питания в температурных регистрах находится вполне "ожидаемая" температура 85 градусов (0000 0101 0101 0000)

Пушной звер
Пушной звер аватар
Offline
Зарегистрирован: 17.03.2013

датчик случаем не из чида?

mavrinpn
Offline
Зарегистрирован: 17.07.2018

Именно оттуда!

https://www.chipdip.ru/product/ds18b20z-t-r-2

 

Пушной звер
Пушной звер аватар
Offline
Зарегистрирован: 17.03.2013

а, ну это нормально... они постоянно странный контрафакт подсовывают.

Sonologist
Sonologist аватар
Offline
Зарегистрирован: 08.06.2018

Пушной звер пишет:

а, ну это нормально... они постоянно странный контрафакт подсовывают.

Ну, я далеко не фанат этих грабителей, однако относительно "постоянно странный контрафакт подсовывают" согласиться не могу. Особенно насчет постоянно. Сколько ни покупал у них деталей, контрафакта не было. Другой вопрос, что за оригинал могут подсунуть неоригинал, но в моем случае все работало как надо. Было дело, сам по дури попалил много чего, но это уже не про это... Касательно проблемы ТС - а не заменена ли надпись на корпусе с какого-нибудь транзистора на дээску? Хотя, за чипом таких уж подлянок не замечено.

Пушной звер
Пушной звер аватар
Offline
Зарегистрирован: 17.03.2013

продолжайте покупать...

Izvekoff
Offline
Зарегистрирован: 02.03.2020

Пушной звер пишет:

продолжайте покупать...

кто бы спорил, что маузер лучше )))

mavrinpn
Offline
Зарегистрирован: 17.07.2018

Датчик показывает:

ROM = 28 56 29 8B 6 0 0 15
Chip = DS18B20
Data = 1 AF FD 0 0 7F FF 1 10 5  CRC=5
Temperature = -37.06 Celsius, -34.71 Fahrenheit
Вроде бы верное семейство.
mavrinpn
Offline
Зарегистрирован: 17.07.2018

Другой (заведомо рабочий датчик показывает):

ROM = 28 E0 AD 78 3 0 0 B8
Chip = DS18B20
Data = 1 D6 1 0 0 7F FF A 10 BB  CRC=BB
Temperature = 29.37 Celsius, 84.87 Fahrenheit

Семейство - первый байт в ROM, правильно я понимаю?

sadman41
Offline
Зарегистрирован: 19.10.2016

Да, всё похоже на правду - семейство то самое. А температура странная. И в фаренгейты странно пересчитывается.

mavrinpn
Offline
Зарегистрирован: 17.07.2018

Не стал больше тратить время с этими датчиками.

Заказал еще 2 разных датчика от других поставщиков.

inspiritus
Offline
Зарегистрирован: 17.12.2012

А в чем причина применения паразитного питания?

mavrinpn
Offline
Зарегистрирован: 17.07.2018

Ограничение по количеству доступных проводов.

Сама длина там небольшая - не более 15см.

В планах выпаять датчик и попробовать подключить с внешним питанием - может и в этом дело.

mavrinpn
Offline
Зарегистрирован: 17.07.2018

Подключил внешнее питание - эффект тот же.

Жду новые датчики.

mavrinpn
Offline
Зарегистрирован: 17.07.2018

Закрываем вопрос. Пришли новые датчики - все работают. Результат:

DS18B20Z+T&R маркировка 1430C4 673AC, PHILIPINES - тот самый проблемный

DS18B20Z+ маркировка 2008C4 776AB, MALAY - новый рабочий

DS18B20Z+T&R маркировка 2010C4 918AC, MALAY - новый рабочий

FoxJone
Offline
Зарегистрирован: 19.04.2019

Ни разу не покупал DS18B20 в чипидипе. Ни разу не имел с ними проблем. Использовал их сотнями. Аднака, тенденция...

Гриша
Offline
Зарегистрирован: 27.04.2014

FoxJone пишет:

Ни разу не покупал DS18B20 в чипидипе. Ни разу не имел с ними проблем. Использовал их сотнями. Аднака, тенденция...

пост 42... для интереса