1

Тема: Есть ли какое то физическое ограничение по числу DS18B20?

Всем доброго дня!
Имеется прибор CANNY-7, мной реализован проект по подключению 26ти датчиков DS18B20 к устройству по шине 1-wire.
И не работает.
Точнее работает стабильно при подключении 18ти датчиков.
Стоит подключить ещё один (заведомо рабочий датчик) начинается непонятная дичь из которой я понимаю, что логика работы моей диаграммы сильно нарушена. Читай как - не работает.
Родился вопрос, а есть ли какое то физическое ограничение по количеству подключаемых датчиков?
Хочется услышать чёткую цифру. Размытые формулировки на подобии "несколько" или "довольно много" пожалуйста не пишите.
Так же предвижу ваши вопросы:
Интервал опроса одного датчика - 1 секунда, пробовал увеличивать до 2х, не помогло.
Адреса всех 26ти датчиков заведомо разведаны ардуиной и они правильные.
Скрин диаграммы выложу чуть позже.
Саму диаграмму выложу чуть позже.

Модераторское: вынесено в отдельную тему (см.правила)

2

Re: Есть ли какое то физическое ограничение по числу DS18B20?

Ну и вуаля, моё творение для ознакомления. Это главная программа.

Вложений в сообщении

Иконка вложения Главная прога.png 368.53 кб, скачивался 22 раз, последний раз 2023-01-19 

3 (19-01-2023 14:20:40 отредактировано kolchin_mv)

Re: Есть ли какое то физическое ограничение по числу DS18B20?

А это составной блок, который можно увидеть внизу слева.

Вложений в сообщении

Иконка вложения Составной блок5.png 1.02 мб, скачивался 21 раз, последний раз 2023-01-19 

4 (19-01-2023 14:23:02 отредактировано kolchin_mv)

Re: Есть ли какое то физическое ограничение по числу DS18B20?

А это собственно сама диаграмма.
Просьба не судить строго))).
Как смог так и сделал....

Вложений в сообщении

Иконка вложения Test_portov.cfd 108.57 кб, скачивался 59 раз, последний раз 2023-01-19 

5

Re: Есть ли какое то физическое ограничение по числу DS18B20?

Напишу нечетко но постараюсь не размывать формулировки. Не сочтите за дичь: Какой номинал подтяжки линии? Где осциллограммы?

6

Re: Есть ли какое то физическое ограничение по числу DS18B20?

kolchin_mv пишет:

Родился вопрос, а есть ли какое то физическое ограничение по количеству подключаемых датчиков?

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

Некоторые рекомендации по организации и диагностике линии 1-Wire можно найти в документации производителя, Maxim Integrated Products, Inc, например:

TUTORIAL 148 GUIDELINES FOR RELIABLE LONG LINE 1-WIRE NETWORKS (AN148)

Применение в качестве 1-Wire Master контроллера CANNY не накладывает каких-либо дополнительных ограничений на число DS18B20 на одной линии.

7

Re: Есть ли какое то физическое ограничение по числу DS18B20?

AlexN пишет:

Напишу нечетко но постараюсь не размывать формулировки. Не сочтите за дичь: Какой номинал подтяжки линии? Где осциллограммы?

В документации на CANNY-7 имеется специальный раздел посвящённый 1-wire.
Его я прочитал в первую очередь.
Так вот подтягивающий резистор должен быть в диапазоне от 3 до 7 КОм.
Мною это исполнено в полном объёме, установил резистор=4,7КОм.
Осциллограммы это Вы конечно завернули. Если бы у меня была возможность протыкать всё осциллографом, то наверное я бы сюда и писать не стал.
По этому я тут, что бы получить для начала простые и понятные ответы без применения дорогостоящего сверх-космического оборудования.

8

Re: Есть ли какое то физическое ограничение по числу DS18B20?

Константин, CANNY пишет:
kolchin_mv пишет:

Родился вопрос, а есть ли какое то физическое ограничение по количеству подключаемых датчиков?

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

Некоторые рекомендации по организации и диагностике линии 1-Wire можно найти в документации производителя, Maxim Integrated Products, Inc, например:

TUTORIAL 148 GUIDELINES FOR RELIABLE LONG LINE 1-WIRE NETWORKS (AN148)

Применение в качестве 1-Wire Master контроллера CANNY не накладывает каких-либо дополнительных ограничений на число DS18B20 на одной линии.

Вас понял. Ваш ответ конечно вмещает в себя всё и сразу, но примерно такого я и ожидал. Датчики DS18B20 сугубо китайские "за очень дёшево", по этому сопротивление линии, ёмкости и всё втекающее и вытекающее там может быть в полном объёме. Буду думать как обойти этот барьер.
Спасибо за ответ.

9 (19-01-2023 15:28:43 отредактировано AlexN)

Re: Есть ли какое то физическое ограничение по числу DS18B20?

kolchin_mv пишет:

Так вот подтягивающий резистор должен быть в диапазоне от 3 до 7 КОм.
Мною это исполнено в полном объёме, установил резистор=4,7КОм.
Осциллограммы это Вы конечно завернули. Если бы у меня была возможность протыкать всё осциллографом, то наверное я бы сюда и писать не стал.
По этому я тут, что бы получить для начала простые и понятные ответы без применения дорогостоящего сверх-космического оборудования.

Снизьте до 1-1.5 кОм

Удачного полета в космос за 1500 рублей: https://aliexpress.ru/wholesale?SearchText=DSO138

10

Re: Есть ли какое то физическое ограничение по числу DS18B20?

kolchin_mv пишет:

Датчики DS18B20 сугубо китайские "за очень дёшево", по этому сопротивление линии, ёмкости и всё втекающее и вытекающее там может быть в полном объёме. Буду думать как обойти этот барьер.
Спасибо за ответ.

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

Снижение сопротивление подтягивающего резистора, как справедливо заметил АlexN, тоже может помочь. Но я бы рекомендовал ограничиться снизу номиналом 1200 Ом. Экранирование линии так же может сыграть положительную роль.

11

Re: Есть ли какое то физическое ограничение по числу DS18B20?

kolchin_mv пишет:

А это собственно сама диаграмма.
Просьба не судить строго))).
Как смог так и сделал....

И получилось очень хорошо!

12

Re: Есть ли какое то физическое ограничение по числу DS18B20?

AlexN пишет:

Снизьте до 1-1.5 кОм

Удачного полета в космос за 1500 рублей: https://aliexpress.ru/wholesale?SearchText=DSO138

И Вам спасибо за совет.
Произвёл целую серию испытаний подтягивающего резистора.
Начал со стартовой цифры 4,7 КОм повторюсь, она работает с 18ю датчиками.
Была серия 4,5-4-3,5-3-2,5-2-1,5-1,2 КОм.
Резюме - не помогло(((.
А по поводу осциллографа, я с Вами полностью согласен - штука может и не дорогая, но есть нюанс.
Старая поговорка гласит - хороша ложка к обеду.
Но выводы сделаны, осталось сделать вводы и возможно теперь у нас появится осциллограф.

13

Re: Есть ли какое то физическое ограничение по числу DS18B20?

Константин, CANNY пишет:

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

Снижение сопротивление подтягивающего резистора, как справедливо заметил АlexN, тоже может помочь. Но я бы рекомендовал ограничиться снизу номиналом 1200 Ом. Экранирование линии так же может сыграть положительную роль.

Провёл работу по вашим советам. Наверное Вы удивитесь, но почему то я в самый последний момент рассматривал ситуацию при которой я задействую дополнительный канал устройства CANNY-7. Хоть они и есть в резерве.
Я реализовал переключатель каналов Dallas, но как всегда у меня не достаёт теоретических знаний и есть сомнения, что это заработает. Не затруднит ли Вас посмотреть на мою диаграмму и может дать совет?

Вложений в сообщении

Иконка вложения Каналы 1-wire.png 104.78 кб, скачивался 20 раз, последний раз 2023-01-19 

14

Re: Есть ли какое то физическое ограничение по числу DS18B20?

И вот еще диаграмма.
Я её отстроил, вроде бы работает.
Единственный вопрос, не нужно ли делать дополнительную паузу при переключении каналов?
Диаграмма работает так, адреса датчиков с 1-13 опрашиваются по каналу №0.
Как только с ШИМ генератора прилетает адрес №14 я сразу переключаюсь на канал №1.
Может необходимо пропустить один цикл выполнения программы и лишь затем активировать канал №1?

Вложений в сообщении

Иконка вложения Forum.cfd 3.74 кб, скачивался 54 раз, последний раз 2023-01-19 

15

Re: Есть ли какое то физическое ограничение по числу DS18B20?

В приложенной диаграмме не указаны адреса датчиков 19...26, т.е. отправляются запросы с адресами, у которых все регистры установлены нулями. Также, после окончания цикла опроса всех 26 датчиков, при переходе к первому, происходит отправка запроса с адресом, у которого все регистры установлены нулями. Это трактуется как запрос к датчику с неизвестным ROM (любому датчику на шине). В этом случае, на запрос контроллера могут попытаться ответить все датчики одновременно. Если устройств на шине больше 1, необходимо обращаться к ним по ROM-адресам.
Во вложении вариант исправленной диаграммы: устранена отправка пустых запросов на границе циклов опроса датчиков, небольшая оптимизация.
Задайте любое значение адресов для датчиков 19...26 или измените количество опрашиваемых датчиков изменением константы блока №4 "Равенство".
Используйте симулятор для отладки диаграмм.

Вложений в сообщении

Иконка вложения c7_Test_portov_revA.cfd 109.36 кб, скачивался 55 раз, последний раз 2023-01-19 

16

Re: Есть ли какое то физическое ограничение по числу DS18B20?

kolchin_mv пишет:

... не нужно ли делать дополнительную паузу при переключении каналов?..

См. примечания: https://canny.ru/docs/c7/1-wire/#sec--c … era-1-wire

Используя динамическое переключение между шинами 1-Wire, подключенными к разным каналам контроллера, в процессе выполнения функциональной диаграммы, необходимо деактивировать драйвер (записать в регистр конфигурации Dallas значение 0), указать номер канала контроллера, подключенного к следующей шине 1-Wire и снова активировать драйвер (записать в регистр его конфигурации значение соответствующей константы).

17

Re: Есть ли какое то физическое ограничение по числу DS18B20?

Денис, CANNY пишет:

В приложенной диаграмме не указаны адреса датчиков 19...26, т.е. отправляются запросы с адресами, у которых все регистры установлены нулями. Также, после окончания цикла опроса всех 26 датчиков, при переходе к первому, происходит отправка запроса с адресом, у которого все регистры установлены нулями. Это трактуется как запрос к датчику с неизвестным ROM (любому датчику на шине). В этом случае, на запрос контроллера могут попытаться ответить все датчики одновременно. Если устройств на шине больше 1, необходимо обращаться к ним по ROM-адресам.
Во вложении вариант исправленной диаграммы: устранена отправка пустых запросов на границе циклов опроса датчиков, небольшая оптимизация.
Задайте любое значение адресов для датчиков 19...26 или измените количество опрашиваемых датчиков изменением константы блока №4 "Равенство".
Используйте симулятор для отладки диаграмм.

Денис, доброго времени суток! Огромное при огромное спасибо, что так глубоко погрузились в мою диаграмму и ещё большая благодарность за то, что внесли правки и дали ценные советы. Действительно проявилась ситуация при опросе датчиков 19-26, датчики присылали температуру равную нулю. Честно сказать я не понимал, по чему так происходит. Поборолся я с этим явлением весьма тупым способом. В составном блоке №28 я произвожу выборку температур не от нуля и выше, а от единицы. То есть если один из датчиков присылает ноль градусов, то мы попросту как бы не видим эту температуру. Понимаю, что это не совсем верно. Но так же наблюдается другой эффект. Если один из рабочих датчиков 1-18 неожиданно отваливается или превращается в нерабочий - он так же начинает присылать ноль. Для нашего проекта важна небольшая отказоустойчивость. И мы готовы пожертвовать несколькими датчиками, но работа остальных должна продолжиться. Именно по этому я так всё и сделал.

18 (23-01-2023 11:36:17 отредактировано kolchin_mv)

Re: Есть ли какое то физическое ограничение по числу DS18B20?

Доброго дня!
Я заранее извиняюсь за свою глупость, но как то, чтение документации на слух у меня не воспринимается.
Вроде бы всё понятно, но одновременно остаются вопросы.
Набросал последовательность шагов для смены канала Dallas.
Всё ли верно я понял?

Вложений в сообщении

Иконка вложения Драйвер Dallas.png 58.31 кб, скачивался 19 раз, последний раз 2023-01-23 

19

Re: Есть ли какое то физическое ограничение по числу DS18B20?

В принципе, верно.
Подобный вопрос обсуждался тут: https://forum.canny.ru/viewtopic.php?id=352

20

Re: Есть ли какое то физическое ограничение по числу DS18B20?

Модераторское: Готовое решение перенесено в отдельную тему: https://forum.canny.ru/viewtopic.php?id=1101