Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ds1820 на длинной линии
Форум разработчиков электроники ELECTRONIX.ru > Аналоговая и цифровая техника, прикладная электроника > Метрология, датчики, измерительная техника
astro
Посоветуйте как бороться с проблемой. Имеется avr и три датчика ds18b20, линия около 20м, pullup 2,5К. Стандартный pullup 4,7К не позволяет нормально работать с датчиками из-за эффекта, который виден на картинках, видимо линия с емкостной нагрузкой. Заменить линию нельзя. Предложите способ как избавиться от этого эффекта, причём нужно ещё добавить несколько датчиков.
zltigo
Цитата(astro @ May 25 2007, 12:29) *
Посоветуйте как бороться с проблемой.

Имеются официальные рекомендации по организации правильного паразитного питания. Просто надо их выполнять.
astro
Пардон, забыл указать что у меня не паразитное питание. Три отдельные линии на питание, землю и сигнал с датчиков. Кроме подтяжки ничего в описании не встречал.
Dima_Ag
Цитата(astro @ May 25 2007, 15:51) *
Пардон, забыл указать что у меня не паразитное питание. Три отдельные линии на питание, землю и сигнал с датчиков. Кроме подтяжки ничего в описании не встречал.


Поставьте подтягивающий резистор 1 КОм. При токе 4 мА напряжение "нуля" будет около 1 ВОльт.
Для микроконтроллера это не проблема.

Если же ёмкость линии настолько велика, что и на 1 КОм не будет работать, то можно рассмотреть
возможность установки МК и датчиков в конце линии, ( тем более, что питание у Вас есть),
а по линии передавать сигнал с микроконтроллера, например в формате USARTа.

Хотя.. это как-то странно вообще.
Сам делал 1 wire на гораздо большее расстояние, таких проблем не было.
Судя по Вашим осциллограммам и тому, что подтяжка = 2.5КОм, можно подсчитать,
что погонная ёмкость линии = 1.2 наноФарады на метр! Если это не ошибка - то лучше всё же заменить эту линию.
astro
Это не ошибка, но линию заменить нельзя. Не хотелось бы ставить дополнительный контроллер. Может применить дифференциальные приемник-передатчик?
xemul
Загадочные картинки. На каком конце линии они сняты? Единственное нелогичное объяснение для них - по земляному шнурку стоит емкость 1-2 мкФ, зашунтированная резистором 10-20 кОм.
Попробуйте на стороне слэйва закоротить все три шнурка и измерить сопротивления (и индуктивности?) каждого с каждым со стороны мастера.
astro
Первый датчик стоит рядом с avr, два других на другом конце линии. Скоп подключался к первому. Сейчас измерить все параметры не могу, только через неделю. Понятия не имею что там за линия, но физического доступа к линии нет. Смена линии связана с такими монтажными работами, что это просто нереально реализовать. Нужно другое решение.
Rst7
Цитата(xemul @ May 25 2007, 18:16) *
Загадочные картинки. На каком конце линии они сняты? Единственное нелогичное объяснение для них - по земляному шнурку стоит емкость 1-2 мкФ, зашунтированная резистором 10-20 кОм.
Попробуйте на стороне слэйва закоротить все три шнурка и измерить сопротивления (и индуктивности?) каждого с каждым со стороны мастера.


Ничего загадочного нет, просто в осциллографе закрытый вход (если присмотреться к окошечку с параметрами входа, то видно, что там AC).

Теперь по теме. Надо делать такого плана схему: NPN-транзистор, эмиттером на 0, коллектором через килоом-другой на +5 и доп. вход проца, база - через резистор килоом 10 (и резистор может еще зашунтировать конденсатором пик на 500, он будет ускоряющим) на линию, это будет компаратор с пороговым напряжением ~0.6В. Еще одну ножку с Z-состоянием тоже включаем на линию. Как только на входе процессора, подключенного к импровизированному компаратору, появляется 0 - переключаем Z-состояние на вывод 1, чем обеспечиваем быстрое нарастание до +5В. Т.е. весь процесс нарастания будет медленным до порога компаратора и быстрым далее. Естественно, в начале цикла при подаче 0 выход проца переводится в Z-состояние, дабы не произошла драка wink.gif

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

Подтягивающий резистор конечно оставляем, он обеспечивает начальное нарастание...
astro
Идея понятна, попробую.
НЕХ
рекомендую использовать ферритовое колечко с большой проницаемостью, установленное
вблизи контроллера. Кабель от датчиков несколько раз проденьте сквозь него.
использую подтягивающий резистор 1.8к, состояние линии при ожидании - 0.
Dima_Ag
Цитата(Rst7 @ May 26 2007, 09:59) *
Теперь по теме. Надо делать такого плана схему: NPN-транзистор, эмиттером на 0, коллектором через килоом-другой на +5 и доп. вход проца, база - через резистор килоом 10 (и резистор может еще зашунтировать конденсатором пик на 500, он будет ускоряющим) на линию, это будет компаратор с пороговым напряжением ~0.6В. Еще одну ножку с Z-состоянием тоже включаем на линию. Как только на входе процессора, подключенного к импровизированному компаратору, появляется 0 - переключаем Z-состояние на вывод 1, чем обеспечиваем быстрое нарастание до +5В. Т.е. весь процесс нарастания будет медленным до порога компаратора и быстрым далее. Естественно, в начале цикла при подаче 0 выход проца переводится в Z-состояние, дабы не произошла драка wink.gif

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

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



Есть ещё такой вариант:
Для ускорения переходных процессов подтягивающий резистор уменьшать до тех пор, пока время процесса не будет в допустимых рамках.

Чтобы МК нормально работал при низком подтягивающем сопротивлении - поставить NPN ключ.
Считывание уровня производить другой ножкой МК, которая ВСЕГДА работает как вход.

Для того, чтобы термометр мог работать с низким подтягивающим сопротивлением - сделать "усилитель"
по приведённой схеме. Когда термометр выдаёт "0", транзистор PNP открывается, обеспечивая необходимое падение напряжения на подтягивающем резисторе. КОгда же термометр "выдаёт 1",
то транзистор закрыт.

С такой схемой можно использовать подтягивающие резисторы очень маленького номинала,
обеспечив тем самым быстрое протекание перех. процессов.
xemul
Цитата(Rst7 @ May 26 2007, 09:59) *
Ничего загадочного нет, просто в осциллографе закрытый вход (если присмотреться к окошечку с параметрами входа, то видно, что там AC).

"А ларчик просто открывался" (с) дедушка Крылов
Упс-с... не разгляделsmile.gif.

2astro Посмотрите апноты Guidelines for Reliable 1-Wire Networks и Advanced 1-Wire Network Driver.
kolobok0
Цитата(astro @ May 25 2007, 13:29) *
Посоветуйте как бороться с проблемой. Имеется avr и три датчика ds18b20, линия около 20м, pullup 2,5К. Стандартный pullup 4,7К не позволяет нормально работать с датчиками из-за эффекта, который виден на картинках, видимо линия с емкостной нагрузкой. Заменить линию нельзя. Предложите способ как избавиться от этого эффекта, причём нужно ещё добавить несколько датчиков.



1) входные цепи некоторых пинов МК имеют отличие по характеристикам. Так например в серии 51 мк Вы не сможете "дальнобойно" работать на выходах к которым подключён компаратор.
2) когда то столкнулся с описываемой проблемой на 51 семействе. после некоторых поисков нашёл приёмлемое решение... нагрузочный резистор ставить РЯДОМ с ds18...


удачи Вам
(круглый)
namelos
Доброе время суток. Извините за глупый вопрос, а какая связь между pullup-сопротивлением и напряжением на входе контроллера? Если можно поподробнее. Заранее спасибо.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.