Подключение датчиков по 1 wire

Подскажите, проблема следующая, к WB5 по 1 wire подключены 4 температурных датчика DS18B20 не герметичные, работают и определяются нормально. Подключаю дополнительно ваш герметичный датчик DS18B20 совместно с 4 мя, герметичный датчик не определяется и данные не отображает. (подключение напрямую к WB5) По отдельности все работает, а вместе никак.

А расскажите, как подключаете? Может распиновка неправильная?

Негерметичные датчики (GND-GND, 1W - DAT, +5V - VCC)
Герметичный (GND- черный, 1W - желтый, +5V - красный), на сайте у вас распиновка не верно указана, только так он работает у меня в ед числе.

Добрый день!

  1. Правильно ли я понял, что наш датчик, когда вы подключаете только его, нормально работает?
  2. Подскажите, пожалуйста, где вы нашли на нашем сайте неправильную распиновку. То, что вы в итоге написали как верную распиновку, указано прямо в описании: http://contactless.ru/store/#!/Цифровой-датчик-температуры-1-Wire/p/49713039/category=14225168
  1. Когда он один работает. 2. да тут все верно для mode 2, по моему где то на wiki смотрел распиновку

Только что взял два таких же датчика с трёхметровым кабелем, дополнительно взял выводной DS18B20 без кабеля, зажал всё в клеммники Wiren Board, и всё вместе заработало.
Собственно, то, что купленный у нас датчик в одиночестве работает, уже скорее всего значило, что дело не в нём, а в конфигурации шины. Основной способ её “починить” - свериться с подробным руководством по организации 1-Wire шины: https://www.maximintegrated.com/en/app-notes/index.mvp/id/148.
Случай однозначно негарантийный, но можем вместе с вами попробовать понять, в чём тут дело. Для начала четыре вопроса:

  1. Надеюсь, все датчики подключены тремя проводами (то есть каждый подключён отдельным проводом к 5В, никто не питается от шины данных)?
  2. Какие длины кабелей до ваших датчиков?
  3. Какие кабели в них используются? Не может ли быть наводок?
  4. Работает ли конфигурация “наш датчик + один ваш датчик”?

я подключаю датчики на стенде провода по датчиков не герметичных порядка 30 см. А вот длина кабеля герметичного 3 м. Возможно проблема в этом?

Присоединюсь: провел эксперимент: подключил к контроллеру (wb 5.6 )два герметичных датчика: один с метровым шнуром напрямую, второй через пятидесятиметровый (!) кабель — оба видятся и работают. Более того, если перевести датчик с 50-метровым кабелем на паразитное питание (от линии данных) — всё равно оба работают.
Посмотрите файл /var/log/messages – часто ли появляются сообщения вида " w1_slave_driver 28-xxxxxxxx: Read failed CRC check"?

да в логах подобное
" w1_slave_driver 28-xxxxxxxx: Read failed CRC check"

А можете проанализировать, при каких условиях появляется ошибка контрольной суммы? Как часто повторяется? Какие датчики фигурируют? Можете измерить падение напряжения на датчиках? На шине данных относительно земли и питания (это когда все не работает).

Расстояния 30 см — 1 для шины 1-wire вообще незаметны при любой топологии подключения, если все исправно. [quote=“poglazov, post:6, topic:869”]
Работает ли конфигурация “наш датчик + один ваш датчик”?
[/quote]

наш + ваш не работает никак.
мои датчики Dallas DS18B20 http://smartelements.ru/collection/datchiki-i-sensory/product/modul-datchika-temperatury-dallas-ds18b20

Подключаю ваши датчики определяются и работают, тут же подключаю свои мои работают все а ваши отваливаются так же все.

в логах wirenboard-ABZ4PE4F user.warn kernel: [ 1484.461380] w1_slave_driver 28-0000073ba74b: Read failed CRC check. Напряжение когда все не работает ровно 5.00

wirenboard-ABZ4PE4F user.info kernel: [ 1242.799168] w1_master_driver w1_bus_master1: w1_search: max_slave_cou
nt 64 reached, will continue next search. Еще вот это

А 28-0000073ba74b – это как раз герметичный датчик?

Вот это обычно значит, что у вас потенциал на линии 1-Wire ноль. Где-то КЗ.

Напишите пожалуйста идентификаторы всех датчиков, наших и ваших.

Посмотрел вашу ссылку: у вас не собственно сам датчик DS18B20, а модуль (платка), на которой есть ещё резистор (как я понял, это подтяжка 4.7КОм линии DATA к VCC), и ещё конденсатор (скорее всего, между VCC и GND).
Если это так, то четыре таких модуля дают в сумме подтяжку 1.2КОм. При этом подтяжка на линии должна быть одна - в мастере (контроллере Wiren Board), и она там уже есть - 3КОм. Итоговая подтяжка получается 0.8КОм, и наш датчик на трёхметровом кабеле не может её “перетянуть”.

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

1 лайк

Вы оказались абсолютно правы, отпаял лишние элементы и все заработало. Спасибо большое!