Проблемы с сетью 1-wire
Аааа. Это вы порты МК экономите? 
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Реклама
Пока просто набираю возможные варианты решения проблемы
И пока не могу остановиться ни на одном из них....
Побороть то, что есть. Попробуйте на каждый кабель повесить ферритовых колец, хуже не будет.Gerik_PP писал(а):Пока просто набираю возможные варианты решения проблемы.
Чем вам не нравится вариант с паразитным включением по одной витой паре?
И, да, что у вас стоит около МК в качестве восстановителя фронтов?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
В моём случае переход на паразитное питание увеличит протяжённость линий в два раза (~200m) - это не нравится. Но может быть так и сделаю, пока не решил.Gudd-Head писал(а):Чем вам не нравится вариант с паразитным включением по одной витой паре?
И, да, что у вас стоит около МК в качестве восстановителя фронтов?
Активное восстановление фронтов у меня никак не реализовано. Восстановление только через подтягивающий резистор на 1k.
Да ё-моё, с чего оно увеличится? Вытянет порт МК датчик.Gerik_PP писал(а):В моём случае переход на паразитное питание увеличит протяжённость линий в два раза (~200m) - это не нравится.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Реклама
С того, что свободных портов нет, провода уже заложены, и чтобы уйти от "звезды" нужно будет идти к датчику, а потом обратно и так цепочкой по каждому проводу. Вернее по трём из четырёх (выше Kavka уже приводил пример)Gudd-Head писал(а):Да ё-моё, с чего оно увеличится? Вытянет порт МК датчик.Gerik_PP писал(а):В моём случае переход на паразитное питание увеличит протяжённость линий в два раза (~200m) - это не нравится.
1-Wire у вас ведь куда-то подключен к МК? Вот и использовать этот порт и для питания (strong pull-up), и для передачи данных.Gerik_PP писал(а):С того, что свободных портов нет, провода уже заложены
Ну тогда вообще пипец, общая ёмкость возрастёт в 2 раза.Gerik_PP писал(а):и чтобы уйти от "звезды" нужно будет идти к датчику, а потом обратно и так цепочкой по каждому проводу.
Если у вас есть 2 свободных пина, можно посредством мультиплексора и сдвигового регистра по очереди подключать каждый датчик к МК.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Про сдвиговый регистр как-то не подумал. Спасибо за подсказку! 
Вот вам ещё подсказка: как управлять сдвиговым регистром по одному проводу: http://easyelectronics.ru/upravlenie-se ... ovodu.htmlGerik_PP писал(а):Про сдвиговый регистр как-то не подумал. Спасибо за подсказку!
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
ха-ха
)) Круто!!! голь на выдумки хитра))
Слегка доработал схему (вложение) добавив сдвиговый регистр и по два резистора на каждую DS9503. Выше схему уже описывал, но для удобства чтения ещё раз здесь: Сопряжение с линией сделал на U2 – логика с тремя состояниями на выходе. Приемник U3 - аналоговый компаратор позволяющий микроконтроллеру определить, превысило ли напряжение в сети 1-Wire пороговое значение 0.98 В (AN132). Для активной подтяжки вниз использую U2.1. При подаче на него «0» выход переходит из третьего состояния в «0». Для активной подтяжки вверх использую U2.2. При подаче на него «0» выход переходит из третьего состояния в «1». Четыре отвода моей злополучной "звезды" через DS9503 подключены к коммутаторам U4-7 и управляются тоже с МК через сдвиговый регистр U13. При опросе коммутируется всегда только 1 из 4-х датчиков, по очереди. Измеренные значения температуры передаются на главный МК по I2CGudd-Head писал(а):Если у вас есть 2 свободных пина, можно посредством мультиплексора и сдвигового регистра по очереди подключать каждый датчик к МК.
Прокомментируйте, please, схему. Может что-то надо добавить или изменить?
- Вложения
-
- Microlan (схема)_v3.pdf
- (95.71 КБ) 296 скачиваний
- Сообщения: 244
- Зарегистрирован: Чт авг 13, 2015 09:58:43
Всех приветствую!
Собрал термометр на датчиках 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
Попобовал подключить шину данных последовательно без ответвлений, та же самая ерунда получается...
В общем не пойму что за бред такой....
HELP!!!
Собрал термометр на датчиках 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
Попобовал подключить шину данных последовательно без ответвлений, та же самая ерунда получается...
В общем не пойму что за бред такой....
HELP!!!
нарисуйте нормально вашу схему - что куда подключено, а то нифига не понятно
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 244
- Зарегистрирован: Чт авг 13, 2015 09:58:43
я так понимаю, у вас получается большая емкость линий, если все 3 ветки подключены. раз возникают проблемы при этом, есть несколько предположений о причинах и методов борьбы с ними:
1. уменьшить подтягивающий резистор. иногда приходится до 500 Ом уменьшать, хоть и не совсем это правильно. но попробовать можно (уменьшение подтягивающего резистора может усугубить эффект саморазогрева датчика, т.е. может повысить погрешность измерения температры)
2. если МК без кварца, то он может отрабатывать длительности тайм-слотов не точно. можно попробовать собрать проект под кварц
3. возможно, код сам по себе не совсем правильный - надо разбираться с ним. встречал немало "библиотек", в которых длительности тайм-слотов прописывались чуть ли не от фонаря, а не так, как прописано в стандарте 1-wire
1. уменьшить подтягивающий резистор. иногда приходится до 500 Ом уменьшать, хоть и не совсем это правильно. но попробовать можно (уменьшение подтягивающего резистора может усугубить эффект саморазогрева датчика, т.е. может повысить погрешность измерения температры)
2. если МК без кварца, то он может отрабатывать длительности тайм-слотов не точно. можно попробовать собрать проект под кварц
3. возможно, код сам по себе не совсем правильный - надо разбираться с ним. встречал немало "библиотек", в которых длительности тайм-слотов прописывались чуть ли не от фонаря, а не так, как прописано в стандарте 1-wire
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 244
- Зарегистрирован: Чт авг 13, 2015 09:58:43
Ок. Попробую поставить поменьше резистор. Доложу что получилось. МК кстати с кварцем, на счет тайм слотов сказать не могу, писал прошивку не я, исходник достать могу если надо. (на си)
Добавлено after 2 hours 54 minutes 42 seconds:
Замена резистора на 560 Ом (до этого стоял 4к7) ничего не дала...Все то же самое...
Добавлено after 2 hours 54 minutes 42 seconds:
Замена резистора на 560 Ом (до этого стоял 4к7) ничего не дала...Все то же самое...


