Проблемы с сетью 1-wire

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить
Друг Кота
Аватара пользователя
Сообщения: 20093
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

Аааа. Это вы порты МК экономите? :)
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 59
Зарегистрирован: Вт ноя 07, 2006 14:14:16
Откуда: пос. Правдинский

Сообщение Gerik_PP »

Пока просто набираю возможные варианты решения проблемы :) И пока не могу остановиться ни на одном из них....
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 20093
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

Gerik_PP писал(а):Пока просто набираю возможные варианты решения проблемы.
Побороть то, что есть. Попробуйте на каждый кабель повесить ферритовых колец, хуже не будет.
Чем вам не нравится вариант с паразитным включением по одной витой паре?
И, да, что у вас стоит около МК в качестве восстановителя фронтов?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Открыл глаза
Аватара пользователя
Сообщения: 59
Зарегистрирован: Вт ноя 07, 2006 14:14:16
Откуда: пос. Правдинский

Сообщение Gerik_PP »

Gudd-Head писал(а):Чем вам не нравится вариант с паразитным включением по одной витой паре?
И, да, что у вас стоит около МК в качестве восстановителя фронтов?
В моём случае переход на паразитное питание увеличит протяжённость линий в два раза (~200m) - это не нравится. Но может быть так и сделаю, пока не решил.
Активное восстановление фронтов у меня никак не реализовано. Восстановление только через подтягивающий резистор на 1k. :? Но интерфейс порта МК буду переделывать, это уже решено! И надо уйти от "звезды" - на каком либо варианте здесь пока не остановился. Думаю... )
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 20093
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

Gerik_PP писал(а):В моём случае переход на паразитное питание увеличит протяжённость линий в два раза (~200m) - это не нравится.
Да ё-моё, с чего оно увеличится? Вытянет порт МК датчик.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 59
Зарегистрирован: Вт ноя 07, 2006 14:14:16
Откуда: пос. Правдинский

Сообщение Gerik_PP »

Gudd-Head писал(а):
Gerik_PP писал(а):В моём случае переход на паразитное питание увеличит протяжённость линий в два раза (~200m) - это не нравится.
Да ё-моё, с чего оно увеличится? Вытянет порт МК датчик.
С того, что свободных портов нет, провода уже заложены, и чтобы уйти от "звезды" нужно будет идти к датчику, а потом обратно и так цепочкой по каждому проводу. Вернее по трём из четырёх (выше Kavka уже приводил пример)
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 20093
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

Gerik_PP писал(а):С того, что свободных портов нет, провода уже заложены
1-Wire у вас ведь куда-то подключен к МК? Вот и использовать этот порт и для питания (strong pull-up), и для передачи данных.
Gerik_PP писал(а):и чтобы уйти от "звезды" нужно будет идти к датчику, а потом обратно и так цепочкой по каждому проводу.
Ну тогда вообще пипец, общая ёмкость возрастёт в 2 раза.

Если у вас есть 2 свободных пина, можно посредством мультиплексора и сдвигового регистра по очереди подключать каждый датчик к МК.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Открыл глаза
Аватара пользователя
Сообщения: 59
Зарегистрирован: Вт ноя 07, 2006 14:14:16
Откуда: пос. Правдинский

Сообщение Gerik_PP »

Про сдвиговый регистр как-то не подумал. Спасибо за подсказку! :solder:
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 20093
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

Gerik_PP писал(а):Про сдвиговый регистр как-то не подумал. Спасибо за подсказку!
Вот вам ещё подсказка: как управлять сдвиговым регистром по одному проводу: http://easyelectronics.ru/upravlenie-se ... ovodu.html
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Открыл глаза
Аватара пользователя
Сообщения: 59
Зарегистрирован: Вт ноя 07, 2006 14:14:16
Откуда: пос. Правдинский

Сообщение Gerik_PP »

ха-ха :-))) Круто!!! голь на выдумки хитра))
Контактная информация:
Открыл глаза
Аватара пользователя
Сообщения: 59
Зарегистрирован: Вт ноя 07, 2006 14:14:16
Откуда: пос. Правдинский

Сообщение Gerik_PP »

Gudd-Head писал(а):Если у вас есть 2 свободных пина, можно посредством мультиплексора и сдвигового регистра по очереди подключать каждый датчик к МК.
Слегка доработал схему (вложение) добавив сдвиговый регистр и по два резистора на каждую DS9503. Выше схему уже описывал, но для удобства чтения ещё раз здесь: Сопряжение с линией сделал на U2 – логика с тремя состояниями на выходе. Приемник U3 - аналоговый компаратор позволяющий микроконтроллеру определить, превысило ли напряжение в сети 1-Wire пороговое значение 0.98 В (AN132). Для активной подтяжки вниз использую U2.1. При подаче на него «0» выход переходит из третьего состояния в «0». Для активной подтяжки вверх использую U2.2. При подаче на него «0» выход переходит из третьего состояния в «1». Четыре отвода моей злополучной "звезды" через DS9503 подключены к коммутаторам U4-7 и управляются тоже с МК через сдвиговый регистр U13. При опросе коммутируется всегда только 1 из 4-х датчиков, по очереди. Измеренные значения температуры передаются на главный МК по I2C
Прокомментируйте, please, схему. Может что-то надо добавить или изменить?
Вложения
Microlan (схема)_v3.pdf
(95.71 КБ) 296 скачиваний
Контактная информация:
Открыл глаза
Аватара пользователя
Сообщения: 59
Зарегистрирован: Вт ноя 07, 2006 14:14:16
Откуда: пос. Правдинский

Сообщение Gerik_PP »

Всем доброго здравия. В общем на том датчике где были проблемы глючили защитные диоды (D1 на схеме во вложении). Выкинул их и всё заработало нормально.

Изображение
Контактная информация:
Прорезались зубы
Аватара пользователя
Сообщения: 244
Зарегистрирован: Чт авг 13, 2015 09:58:43

Сообщение Phaeton »

Всех приветствую!
Собрал термометр на датчиках ds18b20. Всего их три штуки подключено, вывод на двухстрочный индикатор. Разводку сделал витой парой, одна пара проводов +5,-, вторая пара образует шину данных (скручены вместе). Схема разводки получилась звездой, тобишь на каждый датчик свои питающие провода и своя шина данных, подтягивающи й резистор на шину данных 4к7, рядом с ножкой контроллера. Длина каждой из трех линий: 1,1 м, 2,5 м и 3 м. Беда в следующем:
По отдельности если подключать датчики, то показания считываются нормально. Соединяю шину данных датчика с длинной кабеля 1,1 м с 2,5 м данные читаются нормально, подключаю третий с длинной провода 3 м, контроллер выводит показания непонятные и виснет, либо на дисплее мура какаято начинает высвечиваться.
В общем показания выводятся только в следующих случаях:
1) 1,1 + 2,5
2) 2,5 + 3
3) По отдельности
Показания не выводяться и контроллер виснет:
1) 1,1+2,5+3
2)1,1 + 3
Попобовал подключить шину данных последовательно без ответвлений, та же самая ерунда получается...
В общем не пойму что за бред такой.... :dont_know:
HELP!!!
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

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

Мой уютный бложик... заходите!
Контактная информация:
Прорезались зубы
Аватара пользователя
Сообщения: 244
Зарегистрирован: Чт авг 13, 2015 09:58:43

Сообщение Phaeton »

Вот на скорую руку набросал...
Вложения
Безымянный.jpg
(31.68 КБ) 465 скачиваний
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

я так понимаю, у вас получается большая емкость линий, если все 3 ветки подключены. раз возникают проблемы при этом, есть несколько предположений о причинах и методов борьбы с ними:
1. уменьшить подтягивающий резистор. иногда приходится до 500 Ом уменьшать, хоть и не совсем это правильно. но попробовать можно (уменьшение подтягивающего резистора может усугубить эффект саморазогрева датчика, т.е. может повысить погрешность измерения температры)
2. если МК без кварца, то он может отрабатывать длительности тайм-слотов не точно. можно попробовать собрать проект под кварц
3. возможно, код сам по себе не совсем правильный - надо разбираться с ним. встречал немало "библиотек", в которых длительности тайм-слотов прописывались чуть ли не от фонаря, а не так, как прописано в стандарте 1-wire
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Прорезались зубы
Аватара пользователя
Сообщения: 244
Зарегистрирован: Чт авг 13, 2015 09:58:43

Сообщение Phaeton »

Ок. Попробую поставить поменьше резистор. Доложу что получилось. МК кстати с кварцем, на счет тайм слотов сказать не могу, писал прошивку не я, исходник достать могу если надо. (на си)

Добавлено after 2 hours 54 minutes 42 seconds:
Замена резистора на 560 Ом (до этого стоял 4к7) ничего не дала...Все то же самое...
Друг Кота
Аватара пользователя
Сообщения: 15693
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Возможно неверная адресация датчиков в программе.
:roll:
Ответить

Вернуться в «Периферия»