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

    

вопрос по 1 Wire: длинная линия, количество датчиков, помехи

Здравствуйте.

Необходимо подрубить несколько (в районе 5 шт.) датчиков температуры ds18b20 к МК (система отопления). Однако возник вопрос в ходе гугления.

Народ пишет, что топология звезда не применима и при общей шине максимальная длина отвода не больше 30 см. Неоходимо использовать UTP кабель.

Дополнительно вешают кондеры у каждого датчика и т.д.

Если не соблюдать эти требования, то все начинает сбоить и датчики шлют черти что.

В общем сильно отличается от красивости в даташите на 18b20.

 

 

Кто уже делал такое дело? Может даже лучше 1 датчик = 1 нога микроконтроллера стыковать? 

Какие подводные камни? Что посоветуете по реализации для надежности?

 

 

 

 

 

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


Ссылка на сообщение
Поделиться на другие сайты
21 минуту назад, skilful сказал:

Что посоветуете по реализации для надежности?

Для начала отказаться от идеи что длинная линия плюс открытый коллектор может как то равняться надёжности.

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


Ссылка на сообщение
Поделиться на другие сайты
14 minutes ago, MegaVolt said:

Для начала отказаться от идеи что длинная линия плюс открытый коллектор может как то равняться надёжности.

ну 50 метров не смогу победить?

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


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

Делал около сотни датчиков на 300 метров кабеля. У Максима есть довольно подробная статья (и еще одна) на эту тему. Использовал витую пару, по трем парам проводов подавал питание (параллельно, чтобы уменьшить потери), по одной - сигнал (естественно, один провод пары был сигналом, второй-землей).

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


Ссылка на сообщение
Поделиться на другие сайты
39 минут назад, Сергей Борщ сказал:

Делал около сотни датчиков на 300 метров кабеля. У Максима есть довольно подробная статья (и еще одна) на эту тему. Использовал витую пару, по трем парам проводов подавал питание (параллельно, чтобы уменьшить потери), по одной - сигнал (естественно, один провод пары был сигналом, второй-землей).

Хех! А можно было по 4-м передавать.  :)

А данные передавать током по питанию изменяя ток потребления устройств (коммутируя на передатчике питание ключом на малое сопротивление). Так будет надёжно. :)

 

1 час назад, skilful сказал:

Кто уже делал такое дело? Может даже лучше 1 датчик = 1 нога микроконтроллера стыковать? 

Да. Добавить к каждому датчику самый дешёвый МК. А уже с него передавать любым помехоустойчивым способом. Например - токовой петлёй.

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


Ссылка на сообщение
Поделиться на другие сайты
14 минут назад, jcxz сказал:

Хех! А можно было по 4-м передавать.  :)

Передавайте, кто ж запрещает?

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


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

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

"Шина" и "звезда" совершенно разные топологии.

Делал шину из одного датчика на 100 метров, но нужен резистор на 1 кОм между VCC и DQ.

Делал шину метров на 5 на 9 датчиков - работало без каких-либо особенностей.

Цитата

Если не соблюдать эти требования, то все начинает сбоить и датчики шлют черти что.

Если датчики дешевые с АлиЭкспресса, то сбоить будет и в идеальных условиях.

Цитата

Что посоветуете по реализации для надежности?

Подтяжку DQ вверх на конце линии в районе датчика.

Осциллографом проконтролировать форму сигналов.

Закупать оригинальные датчики.

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


Ссылка на сообщение
Поделиться на другие сайты
2 hours ago, jcxz said:

Да. Добавить к каждому датчику самый дешёвый МК. А уже с него передавать любым помехоустойчивым способом. Например - токовой петлёй.

Именно так и делал, но не по токовой петле, а по RS485. Работало очень долго (лет 10) и надежно, пока система не утратила актуальности и не была демонтирована ...

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


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, kovigor сказал:

пока система не утратила актуальности и не была демонтирована ...

Вследствие глобального потепления?  :-D

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


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

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

1. Посмотреть осциллографом на фронты и выбрать подтягивающий резистор, обеспечивающий фронты.

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

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


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

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

Дык, CRC не должно совпадать при сбоях на линии. И пакеты с неверной CRC должны отбрасываться.

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


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

Абсолютно правильные рекомендации дал Сергей Борщ. На длинных линиях с большой емкостью проводов нужно ставить специальные драйверы с активной "1". У Максима есть несколько таких драйверов. Активную подтяжку можно сделать программно на дискретных элементах. Реально получается прокачать линию до 15 нФ (300 метров витой пары). Дальше сказываются малые выходные токи датчиков. Но если и со стороны датчиков ставить драйверы или контроллеры - тогда стоит подумать о другом интерфейсе, хотя бы RS485...

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


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

Не понимаю, зачем в наше время нужен этот садомазохизм с 1-wire? Есть же современное и недорогое средство - однопроводной UART.

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


Ссылка на сообщение
Поделиться на другие сайты
7 hours ago, adnega said:

Дык, CRC не должно совпадать при сбоях на линии. И пакеты с неверной CRC должны отбрасываться.

Есть проблемы с конверсией видимо, при этом CRC совпадает, но температура будет считана +85С. 

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


Ссылка на сообщение
Поделиться на другие сайты
9 минут назад, Михась сказал:

Есть проблемы с конверсией видимо, при этом CRC совпадает, но температура будет считана +85С. 

Ааа. Была такая тема.

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти