Цитата(Сергей Борщ @ Oct 20 2009, 18:34)

Какие именно проблемы?
Проблема на самом деле комплексная. На счет вины обычных драйверов я погорячился. Здесь вина скорее Linux и нашей схемы.
И самая важная ее часть программная. Linux виноват тем что не мониторит завершение передачи по RS485. Происходит так - включил передачу, плюнул данные и ... пошел заниматься другими делами. Потом вспомнил и выключил передачу. За это время после данных в ту трубу улетело еще много "мусора". А устройство на другом конце значительно более медленное и заточено строго на задачу "услышать и ответить". Переписывать драйвер для нас тяжело.
Вторая половина вины на нашей схеме - мы управляем 5 вольтовым драйвером ногами 3.3 вольтового процессора. Все сигналы идут через делители. Мы забыли подтянуть вход приемника на +5.
Сразу хочу сказать что это исправимо, но ввиду первой половины проблемы уже не актуально. Когда процессор начинает "дуть" данные в драйвер RS485, на своем входе приемника (на все время, пока идет передача) видит 0, который ему (процессору) кажется полезной информацией. Почему: потому что вместе с передатчиком дергаем сигналом /RE, т.е. переводим пин R в Z-состояние. Но!!! Делителем этот сигнал притягивается к нулю, поэтому на процессоре видим ноль.
Если есть интерес могу выложить кусок схемы.