реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Необычная работа 1-wire, что это может значить?, Когда подключены на общий клемник работают, а если расстояние 2м нет.
Santy
сообщение Jul 20 2014, 13:32
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 30-10-07
Пользователь №: 31 879



Здравствуйте.
Реализовал на AVR небольшую сеть(10м) из датчиков DS18B20 (все условия протокола соблюдены и тщательно проверены, схема подключения стандартная 3-х проводная с подтяжкой 4,7 кОм). Кабель витая пара FTP (даже ПВС 3х1 пробывал, но нечего не изменилось). Сеть работает, когда датчики подключены на общий клемник ( т.е в непосредственной близости друг от друга). Проблема возникает когда расстояние между датчиками более 0,5м. Причём один из датчиков работает нормально (даже если его поменять местом подключения с неработающим), а при работе с другим возникает авария контрольных сумм. Датчики все новые. Всё повторяется на других экземплярах датчиков.
Место где находится сеть обычное, без серьёзных помех. Подскажите пожалуйста в чём может быть проблема?
Go to the top of the page
 
+Quote Post
Myron
сообщение Jul 20 2014, 14:13
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 849
Регистрация: 6-02-05
Пользователь №: 2 451



Цитата(Santy @ Jul 20 2014, 08:32) *
Здравствуйте. Реализовал на AVR небольшую сеть(10м) из датчиков DS18B20 (все условия протокола соблюдены и тщательно проверены, схема подключения стандартная 3-х проводная с подтяжкой 4,7 кОм). Кабель витая пара FTP (даже ПВС 3х1 пробывал, но нечего не изменилось). Сеть работает, когда датчики подключены на общий клемник ( т.е в непосредственной близости друг от друга). Проблема возникает когда расстояние между датчиками более 0,5м. Причём один из датчиков работает нормально (даже если его поменять местом подключения с неработающим), а при работе с другим возникает авария контрольных сумм. Датчики все новые. Всё повторяется на других экземплярах датчиков. Место где находится сеть обычное, без серьёзных помех. Подскажите пожалуйста в чём может быть проблема?


Влияет паразитная емкость соединения. Скрупулезно проверьте временную диаграмму взаимодействия с датчиками на коротком расстоянии и длинном, особенно симметричность фронтов. Начните с одного датчика. Проверьте работу на той же длине, но не с кабелем, а с отдельными прводами. На расстоянии до пары-тройки метров проблем с наводками еще нет. Прстепенно увеличивайте длину кабеля и проверяйте работу. Постраивая временную диаграмму мне удавалось обеспечить работу до 100 метров. Причем после этого те же датчики не работали на коротком расстоянии. Использовал те же DS18B20. Изделие в серии.

Я на этой же проблеме 10 лет назад чуть работу не потерял, никому ничего объяснить не удалось, пока не заставил программистов сделать как надо в соответствии с ДШ. Причем учтите, общий 1-Wire стандарт и его реализация у разных производителей (Maxim, TI, и т.д.) отличается в деталях. Мне, например, не удалось заставить работать надежно компоненты от Maxim и TI друг с другом.
Go to the top of the page
 
+Quote Post
Santy
сообщение Jul 20 2014, 15:18
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 30-10-07
Пользователь №: 31 879



В литературе и статьях 1-wire хвалят. Реализация протокола сделана у меня в соответствии с datasheet. Попробую там где можно увеличу временные задержки. Когда в сети работает 1 датчик, то проблем нет (проверял на 10м). На датчиках DS18B20, которые я применяю на корпусе написано Dallas. Производитель видимо Mахim. Есть ли DS18B20 производства TI?
Go to the top of the page
 
+Quote Post
adnega
сообщение Jul 20 2014, 17:29
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Может, отражения от несогласованной линии?
Go to the top of the page
 
+Quote Post
Santy
сообщение Jul 20 2014, 17:56
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 30-10-07
Пользователь №: 31 879



Цитата(adnega @ Jul 20 2014, 20:29) *
Может, отражения от несогласованной линии?


Т.е Вы хотите сказать, что данный экранированный кабель излучает и принимает? Экран соединён с GRND (в одной точке). Один из датчиков подключен на самый конец кабеля, а другой посредине с помощью проводов длиной 1см. Как только отключаю работающий датчик, то сразу же начинает работать тот , который не работал. Несколько увеличил временные задержки, но картина не изменилась. Попробую использовать обычную телефонную лапшу. Если же не поможет придётся осциллографом импульсы смотреть.
Go to the top of the page
 
+Quote Post
adnega
сообщение Jul 20 2014, 20:10
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Осциллографом обязательно нужно посмотреть.
Попробовать, на концах линии по 4.7k с DATA на +5В.
Может и в софте проблемы. Вы работу 1-wire поверх UART делаете?
Не стоит забывать, что тайминги меняются от экземпляра к экземпляру и зависят от температуры.
Go to the top of the page
 
+Quote Post
Myron
сообщение Jul 20 2014, 20:32
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 849
Регистрация: 6-02-05
Пользователь №: 2 451



Цитата(Santy @ Jul 20 2014, 10:18) *
В литературе и статьях 1-wire хвалят. Реализация протокола сделана у меня в соответствии с datasheet. Попробую там где можно увеличу временные задержки. Когда в сети работает 1 датчик, то проблем нет (проверял на 10м). На датчиках DS18B20, которые я применяю на корпусе написано Dallas. Производитель видимо Mахim. Есть ли DS18B20 производства TI?


Да, задержки, длительность импульсов, фронтов и их симметрия.

Mахim купил фирму Dallas лет этак 15-20 назад и все их (Dallas) барахло идет под маркой Mахim. Это были, в основном, чипы зарядки, чипы ID с 1-wire, и другие чипы с 1-wire. Остались от Dallas только буквы в названиях, да и то в старых изделиях. Чипы ID с 1-wire до сих пор использую в новой аппаратуре когда надо, проблем не было до сих пор. Чипы зарядки и сопутсвующие для батарей всегда вызывают проблемы и вопросы, хотя и не плохи.

О DS18B20 производства TI не знаю, и, слава богу, знать не хочу (не нужно). Знаю только, что TI и Dallas трактуют 1-wire interface несколько по разному с чем и столкнулся с 10-ок лет назад.
Go to the top of the page
 
+Quote Post
Jury093
сообщение Jul 20 2014, 21:14
Сообщение #8


Знающий
****

Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050



Цитата(Santy @ Jul 20 2014, 17:32) *
Место где находится сеть обычное, без серьёзных помех. Подскажите пожалуйста в чём может быть проблема?

почитайте статью производителя:
http://www.maximintegrated.com/en/app-notes/index.mvp/id/148
внизу страницы есть линки на аппноты..

как вариант, попробуйте вместо трехточки сделать двупроводку с паразитным питанием..
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Jul 20 2014, 22:59
Сообщение #9


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(Santy @ Jul 20 2014, 17:32) *
...Подскажите пожалуйста в чём может быть проблема?


при правильной схемотехнике (от производителя) - практически всегда хромает софт - тайминги.
если совсем плохие условия (пром линия, сотни метров) - то перенести резистор рядом с датчиком, можно снизить практически до сотен Ом.
Протокол как лом - работает на ура.

Go to the top of the page
 
+Quote Post
DmitryM
сообщение Jul 21 2014, 05:24
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840



Присоединяюсь к Jury093.
Внимательно изучаем AN148. Как говорится, "все уже украдено до нас" biggrin.gif
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Jul 21 2014, 05:45
Сообщение #11


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(kolobok0 @ Jul 21 2014, 01:59) *
при правильной схемотехнике (от производителя) - практически всегда хромает софт - тайминги.

Вот-вот. Пусть ТС притащит в студию процедуру чтения бита. sm.gif
Go to the top of the page
 
+Quote Post
kovigor
сообщение Jul 21 2014, 09:43
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(Santy @ Jul 20 2014, 16:32) *
Подскажите пожалуйста в чём может быть проблема?

Проблема может быть в том, что вы прерываете тайм-слот при обмене с датчиком. Например, стандартная библиотека, поставляемая с CodeVision, так и построена - ее функции можно прерывать, в результате данные от датчика (к датчику) могут приходить с ошибками. Нужно обязательно запрещать прерывания на время работы функций библиотеки, но это далеко не всегда приемлемо. Я для себя эту проблему решил, полностью отказавшись от библиотеки и написав свою реализацию получения температуры от датчика (кому надо, могу поделиться) ...
Go to the top of the page
 
+Quote Post
Santy
сообщение Jul 21 2014, 19:06
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 30-10-07
Пользователь №: 31 879



Цитата(kovigor @ Jul 21 2014, 12:43) *
Проблема может быть в том, что вы прерываете тайм-слот при обмене с датчиком. Например, стандартная библиотека, поставляемая с CodeVision, так и построена - ее функции можно прерывать, в результате данные от датчика (к датчику) могут приходить с ошибками. Нужно обязательно запрещать прерывания на время работы функций библиотеки, но это далеко не всегда приемлемо. Я для себя эту проблему решил, полностью отказавшись от библиотеки и написав свою реализацию получения температуры от датчика (кому надо, могу поделиться) ...


При работе с сетью у меня все прерывания запрещены. Для приёма и передачи использую 1 и тот же пин не UART (хотя возможно лучше использовать 2 пина и транзистор, один из пинов включает и выключает ключ, а другой работает на приём), причём этот пин всегда включен на выход.
Приём и передача бита в соответствии с datasheet.
Приём:
Код
PRIEM_BIT_CIKL:
     rcall ZA60MKS
         cbi PORTE,0
     rcall ZA2MKS
         sbi PORTE,0
     rcall ZA2MKS
PROV_BIT:
         sbic PINE,0;
     rjmp BIT_1;ВЫПОЛНИТЬ КОМАНДУ ПЕРЕХОДА ЕСЛИ ПРИНИМАЕМЫЙ БИТ=1
         rjmp BIT_0


Передача:
Код
UST1_BIT_CIKL:
         dec vspom_reg
         lsr bait
         cbi PORTE,0
     rcall ZA5MKS      
         sbi PORTE,0
     rcall ZA60MKS      
     rjmp PEREDACHA_BIT_CIKL
UST0_BIT_CIKL:
         dec vspom_reg
         lsr bait
         cbi PORTE,0
     rcall ZA60MKS
         sbi PORTE,0
     rcall ZA5MKS


Пришёл к выводу , что влияют паразитные ёмкости да и кабель имеет значение. Заменил FTP кабель на телефонную лапшу так даже хуже стало.

Сообщение отредактировал Santy - Jul 22 2014, 16:16
Go to the top of the page
 
+Quote Post
kovigor
сообщение Jul 21 2014, 19:27
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(Santy @ Jul 21 2014, 22:06) *
Пришёл к выводу , что влияют паразитные ёмкости да и кабель имеет значение. Заменил FTP кабель на телефонную лапшу так даже хуже стало.

Сейчас нет времени вникать в ваш код. Могу на 99% утверждать, что ошибка чисто программная. Это если питание не шумит и БП не возбуждается и МК исправен.
При такой длине кабеля, думаю, совершенно все равно, что у вас за кабель. Я каких только кабелей и проводов не перепробовал. До примерно пяти метров все было в порядке, а больше мне и не требовалось ...
Go to the top of the page
 
+Quote Post
Santy
сообщение Jul 21 2014, 19:58
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 30-10-07
Пользователь №: 31 879



Цитата(kovigor @ Jul 21 2014, 22:27) *
Сейчас нет времени вникать в ваш код. Могу на 99% утверждать, что ошибка чисто программная. Это если питание не шумит и БП не возбуждается и МК исправен.
При такой длине кабеля, думаю, совершенно все равно, что у вас за кабель. Я каких только кабелей и проводов не перепробовал. До примерно пяти метров все было в порядке, а больше мне и не требовалось ...


На 100% БП исправен да и контроллер тоже. На двух устройствах одно и то же происходит. То, что я привел кодом то считать нельзя так несколько строчек. Задержки все выдержаны правильно. Длина сети 10м. Все контакты надёжно подключены, подключал подтяжку в конце сети (разные номиналы) при 200 Ом сеть работает, но изредка сбоит.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 20:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.01529 секунд с 7
ELECTRONIX ©2004-2016