Jump to content

    

Recommended Posts

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

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

Share this post


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

 

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

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

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

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

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

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

 

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

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

 

 

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

 

удачи вам

(круглый)

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
... 1 не успевает дойти до требуемого уровня..

 

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

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

 

 

(круглый)

 

 

Share this post


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

Share this post


Link to post
Share on other sites

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

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

Share this post


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

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

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

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

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

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

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

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

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

Share this post


Link to post
Share on other sites

xemul

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

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

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

 

(не люблю I2C).

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

Share this post


Link to post
Share on other sites
можно было экспериментировать...

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

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

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

 

Share this post


Link to post
Share on other sites
Проведите такой эксперимент:

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

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

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

Share this post


Link to post
Share on other sites

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

 

Share this post


Link to post
Share on other sites
.. Хотя на википедии...приведена осцилограмма...Насколько плохо будет..связано с длиной линии?

 

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

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

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

 

(круглый)

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this