Перейти к содержанию
    

Длина линии 1-Wire

С датчиками DS18B20+AVR работаю на расстоянии до 3 м. Появилась необходимость увеличить дальность до 30-40 м. Разработчик датчиков гарантирует до 300 м. А как в реалии, по помехозащищённость? Может стоит подстраховаться и поставить драйвера линии? Читал, что лучше применить витую пару и активную подтяжку. Где про такие подробности почитать?

Или мои расстояния вовсе не расстояния?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Где про такие подробности почитать?

начните отсюда

Guidelines for Reliable Long Line 1-Wire® Networks

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

DS18B20+AVR ...до 3 м. увеличить до 30-40 м...А как в реалии, по помехозащищённость? Может стоит подстраховаться и поставить драйвера линии?...

 

обычная телефонная лапша уже должна протащить ваши растояния в пром. зоне.

из многолетнего опыта работы с 1-Wire датчиками (правда с 21 - они пошустрее, точнее, менее подвержены разогреву) можно выдать короткое резюме:

1) тупо, строго по даташиту на датчики (временные параметры - очень строго)

2) схемы подключения - по даташиту (обратите внимание на подтягивающий резистор _возле_ датчика (это когда совсем завалы по фронтам идут)

3) из защит - тупо, строго от далласа (ds9503)

4) ну и витая пара, если вам сотни метров...

 

помехи обычно типа пром. шумов - лечатся на ура.

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

 

 

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

 

удачи вам

(круглый)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

... 1 не успевает дойти до требуемого уровня..

 

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

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

 

 

(круглый)

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Использую 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 нФ получается на грани работоспособности.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дааа... хорош мастер-контроллер. Нечего сказать. Смысл было далласу такой городить? Только ради облегчения формирования таймингов? Постфактум заметил в Примечаниях даташита:

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? На чём строили?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дааа... хорош мастер-контроллер. Нечего сказать. Смысл было далласу такой городить? Только ради облегчения формирования таймингов?

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

В то же время, для DS2480B

Дороже, но (по мне) удобнее DS2482 (не люблю I2C).

А вы имели опыт работы с длинными линиями на 1-Wire? На чём строили?

Сегментами до 70 м на DS2409 и UTP-5. (правда, работало только на столе, к моменту натурных испытаний заказчику стало не до инноваций)

Навешивать кучку слэйвов, да ещё паразитами, на 300 м шнурок у меня бы наглости не хватило.:)

Вам, имхо, по-любому, придётся где-то осетра урезать - или разбивать сеть на сегменты (но для DS2409 у производителя уже почти год объявлен EOL; хотя, судя по комментам, могут вернуть in production), или выбирать другую физику (н-р, RS-485). Но и то, и другое не уложится в 2-хпроводное соединение.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

xemul

Удивляюсь просто! Бывают же достойные развёрнутые ответы на форуме!

В общем, более-менее, решил задачу. Поскольку партия пока опытная, можно было экспериментировать. Поднял питание до +5В, помогло как применительно к фронтам, так и, естественно, к просадке по питанию датчиков. Экспериментально получено, что, в зависимости от смотки бухты, кабель UTP-5e имеет от 37 до 55пФ/м. Оконцованные датчики (с 1,5м кабеля) имеют ёмкость около 140пФ. Если делать общую конфигурацию, не выходящую за рамки 7нФ, то всё ведёт себя достаточно стабильно, т.е. с одним датчиком пробиваются 130м витухи (на том и останавливаюсь). На 30м - 32 датчика и на 130м - 17 датчиков работают :) Ограничусь суммарным допуском в 5нФ в серии, сегменты делать не стану, т.к. вполне можно удовлетвориться сейчас полученным результатом. 300м - мечта в текущей конфигурации... На будущее учту свои грабли.

За приведение таймингов - ещё раз спасибо.

 

(не люблю I2C).

Не вы один такой ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

можно было экспериментировать...

Проведите такой эксперимент:

1 датчик на расстоянии 1,5 метров от мастера и 2 датчик в конце линии на расстоянии ~100 метров.

т.е. так
[мастер]---->[Д1:1,5м]------------>[Д2:100м]

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проведите такой эксперимент:

1 датчик на расстоянии 1,5 метров от мастера и 2 датчик в конце линии на расстоянии ~100 метров.

Провёл такой: 1 датчик на расстоянии 1,5м от мастера, затем 130м, в конце линии - 7 датчиков. Всё работает.

Единственное, на осциллограмме ответа ближнего датчика заметны провалы ниже земли до -0,7..-0,6В (судя по всему это он был, т.к. на остальных 7 блоках такого не наблюдалось), когда мастер формирует фрейм, а слэйв удерживает 0 (спад из 1 в 0). Длительность провала около 2мкс, сам переходный процесс - около 5мкс. Это если осцилл стоит возле 7 датчиков. Если возле одного датчика, то такие провалы у семи. Если измерения проводить у самого мастера, то там ещё интереснее, естественно :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте. Чтобы не плодить лишние темы, спрошу здесь. В спецификации 1-wire сказано, что время семплирования мастера должно быть где-то в районе 13-15мкс от начала тайм слота. Но сам тайм слот размером 60мкс. Понятно, что ранее 13мкс семплировать плохо из-за емкости линии, но почему нельзя позже? В даташите написано, что свыше 15мкс значение на линии не валидно. Хотя на википедии, например, (http://en.wikipedia.org/wiki/1-Wire) приведена осцилограмма, где явно видно, что устройство держит сигнал на линии около 30мкс от начала тайм слота. Насколько плохо будет, если мой мастер будет семплировать через 22мкс после начала тайм-слота на прием? Это как-то связано с длиной линии?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

.. Хотя на википедии...приведена осцилограмма...Насколько плохо будет..связано с длиной линии?

 

1) никому плохо не будет.

2) с длиной линии не связано.

3) если вы уверены что для любого разработчика википедия а не даташит последняя инстанция - делайте :)

 

(круглый)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...