Цитата(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 спам своми же сообщениями бесполезен и только будет мешать.