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

 
 
> Необычная работа 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
 
Start new topic
Ответов
kovigor
сообщение Jul 21 2014, 09:43
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 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
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 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
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 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   Необычная работа 1-wire, что это может значить?   Jul 20 2014, 13:32
- - Myron   Цитата(Santy @ Jul 20 2014, 08:32) Здравс...   Jul 20 2014, 14:13
- - Santy   В литературе и статьях 1-wire хвалят. Реализация п...   Jul 20 2014, 15:18
|- - Myron   Цитата(Santy @ Jul 20 2014, 10:18) В лите...   Jul 20 2014, 20:32
- - adnega   Может, отражения от несогласованной линии?   Jul 20 2014, 17:29
|- - Santy   Цитата(adnega @ Jul 20 2014, 20:29) Может...   Jul 20 2014, 17:56
|- - DmitryM   Присоединяюсь к Jury093. Внимательно изучаем AN148...   Jul 21 2014, 05:24
- - adnega   Осциллографом обязательно нужно посмотреть. Попроб...   Jul 20 2014, 20:10
- - Jury093   Цитата(Santy @ Jul 20 2014, 17:32) Место ...   Jul 20 2014, 21:14
- - kolobok0   Цитата(Santy @ Jul 20 2014, 17:32) ...Под...   Jul 20 2014, 22:59
|- - _Pasha   Цитата(kolobok0 @ Jul 21 2014, 01:59) при...   Jul 21 2014, 05:45
||- - Santy   Цитата(kovigor @ Jul 21 2014, 22:27) Сейч...   Jul 21 2014, 19:58
|- - Сергей Борщ   Цитата(Santy @ Jul 21 2014, 22:06) Код......   Jul 21 2014, 20:32
|- - _Pasha   Цитата(Сергей Борщ @ Jul 21 2014, 23:32) ...   Jul 21 2014, 21:19
- - adnega   Для поднятия оптимизма сообщаю: тестировал линию с...   Jul 21 2014, 20:22
- - Павлик   CODEсbi porte,0 ; pull down ; ...   Jul 22 2014, 04:20
- - Santy   Спасибо за помощь и критику. Внесу изменения и учт...   Jul 22 2014, 16:04


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

 


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


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