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

 
 
> AVR и ADM485, правильное использование линий RE#, DE
korobov_michael
сообщение Dec 18 2008, 21:43
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 118
Регистрация: 11-03-07
Из: Украина, Харьков
Пользователь №: 26 059



Добрый день.
Суть вопроса в следующем. Работаю с 485 интерфейсом. Линии RE#, DE соединены вместе, контроллер управляет этой парой ножек. Когда я перевожу ножку контроллера из 0 в 1 (т.е. перевожу ADM485 из приемника в передатчик), то по УАРТу получаю прерывание по приходу символа (обычно это 0). Обойти решил изуверским способом. Перед переключением ПРМ->ПРД запретить приемник (RXEN = 0). Но чую, что что-то неправильно. Кто-нибудь сталкивался с подобным? Подскажите, как бороться с проблемой?

P.S. Еще слышал решение (в документации на FTDI232BL), что можно линию DE устанавливать в 1 на время передачи, после чего снимать, а линию RE# держать все время в нуле. При это на линию RxD контроллера заводить логическое ИЛИ от сигнала RO и DE. Практикуется ли подобное и является ли такое решение более правильным?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
defunct
сообщение Dec 19 2008, 23:47
Сообщение #2


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(korobov_michael @ Dec 18 2008, 23:43) *
P.S. Еще слышал решение (в документации на FTDI232BL), что можно линию DE устанавливать в 1 на время передачи, после чего снимать, а линию RE# держать все время в нуле. При это на линию RxD контроллера заводить логическое ИЛИ от сигнала RO и DE. Практикуется ли подобное и является ли такое решение более правильным?

Я бы так не стал делать - лишняя зависимость от некой сущности "логического ИЛИ".

Поступаю как и Вы - соединяю RE/DE вместе и управляю одной ногой контроллера. Мусор в момент переключения приемника/передатчика меня не особо беспокоит в силу защищенности протокола, хотя также отмечу, что ни разу с такой проблемой как у вас не столкнулся... Всмысле лишнего "0" после переключения ни разу не словил. И с пул-апом и без оного.

Может у Вас что-то фонит на плате излишне? Или с линией что-то не так (проверьте появляется ли этот "0" если поставить терминатор 120om между A и B )?

Цитата
Заодно можно и детектор конфликтов сделать.

Можно-то можно. Вопрос зачем? При идеологии шины "1" мастер "много" слейвов. Конфликт ловить бесполезно - т.к. слейв все равно не может делать перепосылку "по собственному хотению", а мастер и так всегда прав.

Как по мне, с позиции Rs485 мастера - удобно делать так:
- очистить приемный буфер
- послать запрос
- спать
- проверить приемный буфер (и вот чего в этом месте точно не нужно, так это получить собственный же запрос в начале буфера)

слейву как бы тоже все ясно:
- спать
- проверить приемный буфер
- ответить.

В обоих случаях RX спам своми же сообщениями бесполезен и только будет мешать.
Go to the top of the page
 
+Quote Post
Baser
сообщение Dec 20 2008, 15:03
Сообщение #3


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Цитата(defunct @ Dec 20 2008, 01:47) *
Поступаю как и Вы - соединяю RE/DE вместе и управляю одной ногой контроллера. Мусор в момент переключения приемника/передатчика меня не особо беспокоит в силу защищенности протокола, хотя также отмечу, что ни разу с такой проблемой как у вас не столкнулся... Всмысле лишнего "0" после переключения ни разу не словил. И с пул-апом и без оного.

Я думаю, что на самом деле вы не проверяли, ловите вы лишние нули при переключении RO в высокоимпедансное состояние или нет smile.gif
Без подтяжки (внешней или внутренней в МК) все зависит только от наводок на эту линию.
Я вот тоже никогда этим вопросом не "заморачивался" по двум причинам, о которых уже было сказано:
- наличием подтяжек (если позволяет МК, то только внутренних - зачем лишняя детать);
- "правильным" софтом. Ну, словит обработчик приемника лишний байт - "понюхает его, пожует и выплюнет" - есть же протокол передачи данных, есть защитные таймауты. Я про это событие даже и не узнаю smile.gif

Если связь рушиться из-за парочки паразитных переходов на RxD, то нужно что-то в обработчике менять... sad.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- korobov_michael   AVR и ADM485   Dec 18 2008, 21:43
- - aaarrr   Цитата(korobov_michael @ Dec 19 2008, 00...   Dec 18 2008, 22:44
|- - korobov_michael   Цитата(aaarrr @ Dec 19 2008, 00:44) Повес...   Dec 19 2008, 06:00
||- - demiurg_spb   Цитата(korobov_michael @ Dec 19 2008, 09...   Dec 19 2008, 09:23
||- - korobov_michael   Цитата(demiurg_spb @ Dec 19 2008, 11:23) ...   Dec 19 2008, 15:21
||- - demiurg_spb   Цитата(korobov_michael @ Dec 19 2008, 18...   Dec 19 2008, 15:36
||- - aaarrr   Цитата(korobov_michael @ Dec 19 2008, 18...   Dec 19 2008, 15:49
||- - korobov_michael   Цитата(aaarrr @ Dec 19 2008, 17:49) Да, н...   Dec 19 2008, 20:20
||- - aaarrr   Цитата(korobov_michael @ Dec 19 2008, 23...   Dec 19 2008, 20:36
||- - demiurg_spb   Цитата(aaarrr @ Dec 19 2008, 23:36) Нет, ...   Dec 19 2008, 21:54
|- - swisst   Цитата(aaarrr @ Dec 19 2008, 00:44) Повес...   Dec 19 2008, 07:22
- - aaarrr   Цитата(korobov_michael @ Dec 19 2008, 09...   Dec 19 2008, 08:51
- - swisst   Цитата(aaarrr @ Dec 19 2008, 10:51) Работ...   Dec 19 2008, 12:22
|- - aaarrr   Цитата(defunct @ Dec 20 2008, 02:47) Можн...   Dec 20 2008, 08:50
||- - Dog Pawlowa   Цитата(aaarrr @ Dec 20 2008, 12:50) Хм, а...   Dec 20 2008, 10:35
|||- - korobov_michael   Цитата(Dog Pawlowa @ Dec 20 2008, 12:35) ...   Dec 20 2008, 13:14
||- - defunct   Цитата(aaarrr @ Dec 20 2008, 10:50) Хм, а...   Dec 20 2008, 23:39
- - Makki   Была у меня абсолютно такая же проблема. При выход...   Feb 6 2009, 02:50


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

 


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


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