Перейти к содержанию
    

DS18B20 - протекают ли конверсия температуры и чтение данных одновременно?

Может, вы их никогда менее 5В не питали, поэтому не знаете о таком поведении? ))

 

Да применял я эти датчики при питании 3.3 В, от этого картина не меняется. Вот пожалуйста осциллограмма при питании 3.3 В (по вертикали 1 В в клетке, по горизонтали 5 мс в клетке). Никакой просадки уровня на DQ нет. Показания датчика нормальные (+27 градусов). Подтяжка 4.7 кОм на +3.3 В.

post-18986-1453469197_thumb.jpg

Изменено пользователем Леонид Иванович

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Показания датчика нормальные (+27 градусов). Подтяжка 4.7 кОм на +3.3 В.

А погреть до 100C сможете?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробовал снижать питание при комнатной температуре:

3.3 В - 25.7°C

3.0 В - 25.7°C

2.5 В - 25.7°C

2.4 В - 25.7°C

2.3 В - 25.6°C

2.2 В - 22.1°C - большая ошибка

2.1 В - показывает ерунду

 

Нагрел феном примерно до 90°C. Просадки на линии DQ по-прежнему нет.

3.3 В - 90°C (на десятые градуса внимания не обращаю)

3.0 В - 90°C

2.5 В - 90°C

2.4 В - показывает ерунду

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нагрел феном примерно до 90°C. Просадки на линии DQ по-прежнему нет.

Вероятно, у вас линия DQ подтягивается активно - МК выдает на соответствующую ногу лог "1".

Чтобы это проверить прошу вместо резистора R16 на вашей схеме включить обычный диод: катодом к "OWP", анодом к R26.

Если и в этом случае не будет просадки во время преобразования и "левой температуры" при 3.3В, то даже не знаю что и ответить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вероятно, у вас линия DQ подтягивается активно - МК выдает на соответствующую ногу лог "1". Чтобы это проверить прошу вместо резистора R16 на вашей схеме включить обычный диод: катодом к "OWP", анодом к R26.

 

Нет, активно не подтягивается. Я проверил по-другому - подключил резистор 10 кОм между DQ и землей. При питании 5 В уровень на DQ сразу уменьшился примерно до 3.3 В (как во время чтения, так и во время преобразования). Это говорит о том, что работает только подтяжка 4.7 кОм.

 

Если и в этом случае не будет просадки во время преобразования и "левой температуры" при 3.3В, то даже не знаю что и ответить.

 

Как может быть "левая" температура при 3.3 В, если это в допустимых пределах питания? Делать сильную подтяжку DQ при обычном питании нигде в документации не требуют, так что обязано работать. Просаживать линию DQ при наличии питания на VDD термометр не может. Питание с DQ и VDD собирается через диоды, а выходной транзистор закрыт, когда нет обращения по шине. Есть еще постоянно включенный генератор тока с DQ на землю, но ток там маленький, порядка 5 мкА.

post-18986-1453482461_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Просаживать линию DQ при наличии питания на VDD термометр не может.

В этом у нас главное отличие. Я готов сделать и прислать прошивку для какой-нить отладочной платы, чтоб у нас были одинаковые условия эксперимента.

Какие платы есть у вас? У меня есть зоопарк всяких STM32-DISCOVERY.

Но для начала проверю все датчики, какие у меня есть.

 

Кста, а где ТС? Ему вообще интересна эта тема?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть STM32 Value line discovery (на STM32F100RBT6B) и STM32F4-Discovery (на STM32F407VGT6).

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С радостью готов признать, что Леонид оказался прав - никакой подтяжки DQ не требуется, линия DQ не просаживается.

Точнее сказать: существуют такие датчики, которые работают именно так...

Но из 11 датчиков у меня есть два очень странных:

Первый (p1) общается по шине, но ничего кроме +85 или +127 отдавать в качестве температуры не может. Т.е. это явно неисправный.

Второй ведет себя интересней. При пассивной подтяжке и VCC < 4.0В просаживает линию (p2).

При активной подтяжке и VCC < 3.0В просаживает DQ импульсно (p3). При этом температура не корректная.

Датчики питаются по 3 ноге, т.к. изменение напряжения на ней играет роль.

Самое интересное, что второй датчик стоял у меня в тестовом кабеле, с помощью которого я вел все разработки.

Остальные датчики не просаживают линию даже при высоких T > +110С.

Процент неисправных меня настораживает. Попробую собрать больше статистики, ибо используем эти датчики в промышленных масштабах.

 

Кому интересно, прицепляю прошивку для STM32F4DISCOVERY, с помощью которой можно тестировать DS18B20.

Подключение:

- PA2 - console_tx;

- PA3 - console_rx;

- PB4 - ow_tx;

- PB5 - ow_rx;

- LED_GREEN[PD12] - светодиод "работа". мигает раз в секунду;

- LED_RED[PD14] - светится в момент преобразования температуры. можно синхронизировать осциллограф (желтый луч на прицепленных картинках);

- LED_ORANGE[PD13] - светится в режиме активной подтяжки;

- LED_BLUE[PD15] - светится если хотя бы один из датчиков на шине выдает T > +30С;

- кнопка USER[PA0] - при удержании переключает пассивную подтяжку на активную и наоборот.

 

Консоль работает с параметрами 115200-8N1.

Доступные команды:

"help" - показывает список команд;

"who" - показывает информацию о прошивке;

"reboot" - перезагружает контроллер;

"pullup=passive" - включает пассивную подтяжку;

"pullup=active" - включает активную подтяжку.

Конец команды - символ <CR>.

 

В консоль выводится информация об идентификаторах и данных датчиков на шине.

{ID 28 33 91 6C 02 00 00 1D} [T 50 05 4B 46 7F FF 0C 10 1C - 00] -> ds18b20 +85

 

Поддерживаются датчики типов ds1820 и ds18b20.

 

Для подключения датчика соединить PB4 и PB5 и подать на DQ.

VCC можно брать с платы или с внешнего БП.

 

Кому не лень и есть датчики, прошу проверить.

При пассивной подтяжке и питании датчика от "3V" с платы, должен загореться синий светодиод, если датчик просаживает линию и/или неисправно преобразует температуру. Но датчик не должен быть горячее +30C.

Красный светодиод будут загораться в момент преобразования температуры (на 1 сек). Если не загорается - значит датчик неисправен и/или неверно подключен.

 

Кста, исходный вопрос ТС пока остается без ответа. Думаю, не стоит заморачиваться, т.к. ТС, вроде, хотел поправить софт.

post-27702-1453500453_thumb.png

post-27702-1453500467_thumb.png

post-27702-1453500470_thumb.png

test_ds18b20.v0.0.1.20160122.bin.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

....ничего кроме +85 или +127 отдавать в качестве температуры...

 

если-бы речь шла бы про ds1821 - там есть что программировать. А вот двадцатки... По идее должны работать как танк.

 

(круглый)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да может часть датчиков просто китайские, разного разлива... Я купил на Али 10 штук DS18b20 подешевке, похожи на настоящие и даже работают, только:

- разрешение по температуре при настройке 12 бит 0.5 градусов, не лучше (вот так кратно 0.5 значения и возвращаются, хотя меряют более-менее точно);

- маркировка на корпусе явно более низкого качества нанесения.

Рядом с ними фирменные датчики на тех же местах работают, как и должны, без вопросов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Процент неисправных меня настораживает.

 

Так а какой процент неисправных из того применяемого "промышленного" количества? Пока речь идет всего о двух неисправных датчиках.

 

Да может часть датчиков просто китайские, разного разлива...

 

Китайцы делают аналог, но он маркируется по-другому:

 

post-18986-1453705703_thumb.png

QT18B20.pdf

QT18B20_AN.pdf

Изменено пользователем Леонид Иванович

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так а какой процент неисправных из того применяемого "промышленного" количества? Пока речь идет всего о двух неисправных датчиках.

Большого внимания не придавал этому явлению: подумаешь, бракованная микросхема - в мусорку и забыть.

Периодически возникают жалобы, но мы обходимся простой заменой. Неисправные датчики к нам даже не возвращаются.

В основном проблемы с датчиками, которые для воды, но их банально заливает.

Скорее всего, мои проблемные датчики появились у меня как раз с производства (года 2 или 3 назад, уже не помню),

и, вероятно, из-за "проблем" у тамошних парней.

 

Попробую эту проблему актуализировать. Может, устрою 100% входной контроль.

 

Кста, Поставщик у нас надежный, поэтому всякий кетай отметаем сразу. Может быть датчики исходно рабочие но по каким-то причинам так портятся.

Например, переполюсовка, повышение VCC до 12-24В или что-то еще простое и повторимое.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...