Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Длина линии 1-Wire
Форум разработчиков электроники ELECTRONIX.ru > Аналоговая и цифровая техника, прикладная электроника > Метрология, датчики, измерительная техника
Oleg_IT
С датчиками DS18B20+AVR работаю на расстоянии до 3 м. Появилась необходимость увеличить дальность до 30-40 м. Разработчик датчиков гарантирует до 300 м. А как в реалии, по помехозащищённость? Может стоит подстраховаться и поставить драйвера линии? Читал, что лучше применить витую пару и активную подтяжку. Где про такие подробности почитать?
Или мои расстояния вовсе не расстояния?
Владивольт
Цитата(Oleg_IT @ Apr 8 2010, 12:09) *
Где про такие подробности почитать?

начните отсюда
Guidelines for Reliable Long Line 1-Wire® Networks
kolobok0
Цитата(Oleg_IT @ Apr 8 2010, 13:09) *
DS18B20+AVR ...до 3 м. увеличить до 30-40 м...А как в реалии, по помехозащищённость? Может стоит подстраховаться и поставить драйвера линии?...


обычная телефонная лапша уже должна протащить ваши растояния в пром. зоне.
из многолетнего опыта работы с 1-Wire датчиками (правда с 21 - они пошустрее, точнее, менее подвержены разогреву) можно выдать короткое резюме:
1) тупо, строго по даташиту на датчики (временные параметры - очень строго)
2) схемы подключения - по даташиту (обратите внимание на подтягивающий резистор _возле_ датчика (это когда совсем завалы по фронтам идут)
3) из защит - тупо, строго от далласа (ds9503)
4) ну и витая пара, если вам сотни метров...

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


собственно вы и сами можете поиграться на "кошках". Бухта лапши, на неё(возле неё) что нить пусковое высоковольтное, осцил на линию и сразу всё станет понятно, куда и что подправлять.

удачи вам
(круглый)
Altemir
А кто какие расстояния смог пробить? Использую DS2482S-100 в качестве мастера и DS18B20 - слэйвы. У мосфета мастера в истоке - 10Ом. Линия 300м витой пары с одним датчиком на конце не пробивается. Явно проблема в ёмкости линии, она равна ~15нФ. Если без удлинения подключить параллельно датчику 10нФ - связи нет, с 6.8нФ - есть. Фронты завалены, ессно, для больших емкостей. По осциллограммам видно, что от мастера фронты и времянки более-менее соответствуют, а от слэйва лог. 1 не успевает дойти до требуемого уровня. И ещё - мастер сидит на +3,3В. Подключение двухпроводное.
kolobok0
Цитата(Altemir @ Jun 14 2011, 13:16) *
... 1 не успевает дойти до требуемого уровня..


проверьте - считывание ответа у мастера находится в зоне указанной в даташите?
подтяжку резистором сделайте возле датчика. питание до +5. должно полегчать.


(круглый)

xemul
Цитата(Altemir @ Jun 14 2011, 13:16) *
Использую DS2482S-100 в качестве мастера и DS18B20 - слэйвы. У мосфета мастера в истоке - 10Ом. Линия 300м витой пары с одним датчиком на конце не пробивается. Явно проблема в ёмкости линии, она равна ~15нФ. Если без удлинения подключить параллельно датчику 10нФ - связи нет, с 6.8нФ - есть. Фронты завалены, ессно, для больших емкостей. По осциллограммам видно, что от мастера фронты и времянки более-менее соответствуют, а от слэйва лог. 1 не успевает дойти до требуемого уровня. И ещё - мастер сидит на +3,3В. Подключение двухпроводное.

Задачка не решается. При 15 нФ и 1675 Ом (RWPU) время нарастания до 0.9 В (включение ключа APU) составит 8 мкс, + 8.4 мкс tW1L + 2.7 мкс tAPUOT> 13.3 мкс tMSR. (везде взяты худшие случаи ДШ-ных параметров DS2482S-100)
С 6.8 нФ получается на грани работоспособности.
Altemir
Дааа... хорош мастер-контроллер. Нечего сказать. Смысл было далласу такой городить? Только ради облегчения формирования таймингов? Постфактум заметил в Примечаниях даташита:
DS2482-100
Цитата
Note 2: With standard speed the total capacitive load of the 1-Wire bus should not exceed 1nF, otherwise the passive pullup on
threshold VIL1 may not be reached in the available time. With Overdrive speed the capacitive load on the 1-Wire bus must not
exceed 300pF.


В то же время, для DS2480B
Цитата
Note 15. With regular and flexible speed the total capacitive load of the 1-Wire bus should not exceed 20nF,
otherwise the active pullup on threshold VIAPO may not be reached in the available time. With
Overdrive speed the capacitive load on the 1-Wire bus must not exceed 1nF.


kolobok0
Да, проверял, не дотягивает. Сегодня буду делать доработку до +5В, т.к. обнаружил, что на проходном защитном элементе (22Ом, блин) может падать напряжение до 1,1В при максимальной нагрузке со стороны датчиков. Подтяжку резистором можно делать только при трёхпроводной схеме, у меня - однопроводная, датчики распределены по зданию.

xemul
Отличный и понятный ответ! Огромное спасибо вам за разъяснения!
А вы имели опыт работы с длинными линиями на 1-Wire? На чём строили?
xemul
Цитата(Altemir @ Jun 16 2011, 10:01) *
Дааа... хорош мастер-контроллер. Нечего сказать. Смысл было далласу такой городить? Только ради облегчения формирования таймингов?

Вполне нормальный мастер с понятными ограничениями из-за отсутствия Flexible Timings.
Цитата
В то же время, для DS2480B

Дороже, но (по мне) удобнее DS2482 (не люблю I2C).
Цитата
А вы имели опыт работы с длинными линиями на 1-Wire? На чём строили?

Сегментами до 70 м на DS2409 и UTP-5. (правда, работало только на столе, к моменту натурных испытаний заказчику стало не до инноваций)
Навешивать кучку слэйвов, да ещё паразитами, на 300 м шнурок у меня бы наглости не хватило.sm.gif
Вам, имхо, по-любому, придётся где-то осетра урезать - или разбивать сеть на сегменты (но для DS2409 у производителя уже почти год объявлен EOL; хотя, судя по комментам, могут вернуть in production), или выбирать другую физику (н-р, RS-485). Но и то, и другое не уложится в 2-хпроводное соединение.
Можете, конечно, если есть свободное время, попробовать пляски с бубнами (типа пары шотткиных диодов в земляной провод шины, терминатор на её конце, свой APU, ...).
Altemir
xemul
Удивляюсь просто! Бывают же достойные развёрнутые ответы на форуме!
В общем, более-менее, решил задачу. Поскольку партия пока опытная, можно было экспериментировать. Поднял питание до +5В, помогло как применительно к фронтам, так и, естественно, к просадке по питанию датчиков. Экспериментально получено, что, в зависимости от смотки бухты, кабель UTP-5e имеет от 37 до 55пФ/м. Оконцованные датчики (с 1,5м кабеля) имеют ёмкость около 140пФ. Если делать общую конфигурацию, не выходящую за рамки 7нФ, то всё ведёт себя достаточно стабильно, т.е. с одним датчиком пробиваются 130м витухи (на том и останавливаюсь). На 30м - 32 датчика и на 130м - 17 датчиков работают sm.gif Ограничусь суммарным допуском в 5нФ в серии, сегменты делать не стану, т.к. вполне можно удовлетвориться сейчас полученным результатом. 300м - мечта в текущей конфигурации... На будущее учту свои грабли.
За приведение таймингов - ещё раз спасибо.

Цитата(xemul @ Jun 16 2011, 17:18) *
(не люблю I2C).

Не вы один такой wink.gif
_3m
Цитата(Altemir @ Jun 17 2011, 00:32) *
можно было экспериментировать...

Проведите такой эксперимент:
1 датчик на расстоянии 1,5 метров от мастера и 2 датчик в конце линии на расстоянии ~100 метров.
Код
т.е. так
[мастер]---->[Д1:1,5м]------------>[Д2:100м]

Altemir
Цитата(_3m @ Jun 17 2011, 09:48) *
Проведите такой эксперимент:
1 датчик на расстоянии 1,5 метров от мастера и 2 датчик в конце линии на расстоянии ~100 метров.

Провёл такой: 1 датчик на расстоянии 1,5м от мастера, затем 130м, в конце линии - 7 датчиков. Всё работает.
Единственное, на осциллограмме ответа ближнего датчика заметны провалы ниже земли до -0,7..-0,6В (судя по всему это он был, т.к. на остальных 7 блоках такого не наблюдалось), когда мастер формирует фрейм, а слэйв удерживает 0 (спад из 1 в 0). Длительность провала около 2мкс, сам переходный процесс - около 5мкс. Это если осцилл стоит возле 7 датчиков. Если возле одного датчика, то такие провалы у семи. Если измерения проводить у самого мастера, то там ещё интереснее, естественно sm.gif
Belerafon
Здравствуйте. Чтобы не плодить лишние темы, спрошу здесь. В спецификации 1-wire сказано, что время семплирования мастера должно быть где-то в районе 13-15мкс от начала тайм слота. Но сам тайм слот размером 60мкс. Понятно, что ранее 13мкс семплировать плохо из-за емкости линии, но почему нельзя позже? В даташите написано, что свыше 15мкс значение на линии не валидно. Хотя на википедии, например, (http://en.wikipedia.org/wiki/1-Wire) приведена осцилограмма, где явно видно, что устройство держит сигнал на линии около 30мкс от начала тайм слота. Насколько плохо будет, если мой мастер будет семплировать через 22мкс после начала тайм-слота на прием? Это как-то связано с длиной линии?
kolobok0
Цитата(Belerafon @ Jul 19 2011, 13:53) *
.. Хотя на википедии...приведена осцилограмма...Насколько плохо будет..связано с длиной линии?


1) никому плохо не будет.
2) с длиной линии не связано.
3) если вы уверены что для любого разработчика википедия а не даташит последняя инстанция - делайте sm.gif

(круглый)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.