Аппаратная борьба с драйверами RS-485. Кто сталкивался - подскажите, плз !
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
|
Отправлено
Oldmanoff 07 декабря 2003 г. 18:37
|
|
|
|
Имеем: витая пара,терминирована с каждой стороны резисторами 120 Ом, на концах - 2 полудуплексных драйвера типа ADM485 ST485, MAX485 и т.п. С одной стороны - обычный UART (AT89C4051), с другой - специальный коммутатор, предназначенный для ветвления магистрали в "звезду" (клиенту нужна "звезда").
Очевидно, что для двустороннего обмена нужно менять направления обоих драйверов. При этом смена направления происходит, строго говоря, несинхронно, поэтому неизбежно возникает ситуация (когда слейв ждет мастера, а мастер еще не хочет им стать), когда на линии висит только 2 приемника (про 2 передатчика - не рассматриваем, это конфликт).
Вот в этот-то момент и возникают следующие глюки:
Линия фактически в пассивном состоянии, и логично было бы ожидать, что на КМОП/ТТЛ-выходе приемника каждого драйвера тоже пассивное состояние канала, т.е. логическая ЕДИНИЦА. Ан нет! У разных экземпляров даже одной фирмы и одной партии это выходное состояние может быть и нулем и единицей.
Для RX-входа UARTa это иногда лечится переключением направления линии на несколько мкс раньше начала старт-бита, а вот для коммутатора - смертельно (он ловит любой отрицательный фронт как старт-бит, а если выход валяется уже в нуле - то старт-бит пропускается). То же самое может наблюдаться и при оторванной вообще линии.
ВОПРОС. Существует ли какой-нибудь АППАРАТНЫЙ способ приведения выхода приемника в ИЗВЕСТНОЕ заранее состояние?
Спасибо !
Oldmanoff
Составить ответ
|||
Конференция
|||
Архив
Ответы
- У Тексаса вычитал в апликейшенах... — Baser (08.12.2003 12:19, 368 байт)
- Ответ: мастер активирут цикл обмена и соотвественно линию 485 мастер во времни разделяет устройства! поэтому проблем нет — igor_q (08.12.2003 11:42, пустое)
- Это так. Используйте драйверы из серий MAX3088(до 10 Mbit) или MAX3082(с ограничением скорости нарастания выходного сигнала). Там этот вопрос разрешен аппаратно. По ногам совместимы с Вашими. — Savelev (08.12.2003 06:00, пустое)
- Ответ: — И убрать нужно эти терминаторы, если скорость невысокая...Повысит эффективность растяжки. (08.12.2003 03:24, пустое)
- Еще один вариант. Есть драйверы со встроенными резисторами подтяжки. Например, 75LBC184. — Bill (07.12.2003 22:25, пустое)
- мы ставили резисторы подтяжки около 1.5 кОм на обе А и В к питанию +5, переводящие линию в состояние неактивности, когда все на приеме. Все прекрасно работало, но у нас 5-6 приемников только. Для Вас, думаю, имеет смысл увеличить эти сопротивления — Desenchantee (07.12.2003 19:17, пустое)
- В линии 485 нет пассивного состояния, нужно ставить подтягивающие резисторы 1,5к (на линию), чтобы развести дифференциальные уровни в "1". — CanFujitsu (07.12.2003 19:09, пустое)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru