Сбой сети RS485 при замене чипа SP485 на MAX485

Я создал коммуникационную сеть RS485, как показано ниже.

{ПК}->[FT232->RS485](120 Ом)<----витая пара(2 провода)------>(120 Ом)[RS485 -> MSP430]

Здесь ПК действует как Мастер и отправляет данные на MSP430. Данные представляют собой один 8-битный символ. Я использую контакты CBUS, чтобы перевести микросхемы RS485 в режим приема и режим передачи, используя режим битового взрыва CBUS. После чего я просто отправляю персонажа в серийном формате.

ПК переводит микросхему RS485 в режим передачи и отправляет данные.

На стороне MSP430 MSP430 переводит чип в режим приема и ожидает получения символа.

С обеих сторон я использую согласующий резистор 120R.

Теперь, если я использую чип SP485 от EXAR (аналог MAX485) с обеих сторон, система работает прекрасно. Без вопросов.

{PC}->[FT232->SP485](120 Ом)<----витая пара(2 провода)------>(120 Ом)[SP485 -> MSP430]

Передача персонажа происходит нормально.

С другой стороны, если я использую SP485 на стороне ПК и MAX485 на стороне MSP430, система просто не сможет получить символ.

{PC}->[FT232->SP485](120 Ом)<----витая пара(2 провода)------>(120 Ом)[MAX485 -> MSP430]

Обратите внимание, что я немного не изменил схему, я просто вставил MAX485 вместо SP485. Длина линии передачи составляет около 1,5 метра, и я использую согласующие резисторы по 120 Ом с обеих сторон. У меня нет осциллографа, поэтому я подключил светодиод к выводу RO MAX485 на стороне MSP430, чтобы проверить прием символа. Когда я отправляю символ со стороны ПК, загорается светодиод на выводе RO, указывая на то, что некоторые данные поступают, но микроконтроллер отказывается их подтверждать. Я также дважды менял микросхему MAX485, чтобы проверить, не является ли это проблемой микросхемы.

Есть ли у любого тела решение для этого?

Каково волновое сопротивление вашего межблочного кабеля? Какую скорость передачи данных вы используете? Через какое время после активации передачи вы форсируете первый бит данных? Что значит "просто не получается получить символ"?
Можешь одолжить осциллограф? Проверка светодиода RO не указывает на динамическое переключение сигнала и не показывает наличие эффектов нагрузки или скорости нарастания. Пройден ли ваш тест светодиодов обратного осмоса при использовании Exar SP485 с обеих сторон?
Какую скорость передачи данных вы используете — Exar SP485 заявляет скорость передачи данных 5 МБ/с, Maxim MAX485 заявляет только скорость передачи данных 2,5 МБ/с. Максим MAX485 или MAX485E? (MAX485E имеет более высокую защиту от электростатического разряда, но имеет ограниченную скорость нарастания). Вы пробовали Linear Technology LTC485 (эквивалентную замену Maxim MAX485)?
@ Andy aka - Я использую многожильный кабель общего назначения длиной 1,5 метра. «просто не удается получить символ» означает, что прерывание приема не обнаружено на стороне MSP40G2553.
Нет, я не знаю никого, у кого сейчас есть осциллограф. Я использую FT232RL UART @9600bps и передаю один символ. При использовании SP485 проблем не наблюдается, я могу получать данные идеально. Бюджет и детали, которые вы упомянули, недоступны на местном рынке.
«Проходит ли ваш тест светодиодов обратного осмоса при использовании Exar SP485 с обеих сторон?» Светодиод, подключенный к выводу RO, ведет себя по-разному для SP485 и MAXx485. 1) При использовании SP485 с обеих сторон светодиод RO (на стороне RX рядом с MSP430) горит постоянно. 2) при использовании SP485 на стороне TX и MAX485 на стороне RX мигает светодиод RO на стороне RX. Обратите внимание, что в этом случае я отправляю ascii 'A' со скоростью 9600 бит/с в цикле с интервалом в 1 секунду между каждой передачей «А»

Ответы (2)

Есть ли на линиях подтягивающие/подтягивающие резисторы смещения? Эти резисторы смещения устанавливают состояние линии, когда она простаивает, т. е. никакие устройства не управляют ею. Поведение чипов драйвера не определено стандартом, если обеим линиям разрешено плавать до нуля вольт. Некоторые драйверы реализуют функцию, называемую «отказоустойчивостью», например MAX485, с этой функцией резисторы смещения не требуются.

См. раздел «Отказоустойчивые резисторы смещения» в этих указаниях по применению.

Посмотрите на свои земли. Для правильной работы RS485 заземление трансивера должно быть подключено. Дополнительная информация о заземлении RS485: http://www.chipkin.com/rs485-cables-why-you-need-3-wires-for-2-two-wire-rs485/

... но только на одном конце, иначе у вас возникнет проблема с контуром заземления.
вы получаете заземляющий контур, если у вас есть более одного заземляющего соединения. но вам нужно иметь это единственное заземление, без него начнут происходить странные вещи.
например, если заземление двух устройств подключено к источнику питания, а их заземление RS485 не изолировано, то отдельное заземление не требуется. но если 2 устройства подключены только к сигналам RS485 A и B (как это вроде бы описано в вопросе), то требуется заземление.
Я должен был уточнить - экран кабеля (если он используется) должен быть подключен только с одного конца. В некоторых приложениях, если существует риск выхода синфазного напряжения из допустимого диапазона, необходим третий (общий или заземляющий) провод.
Я не буду понижать голос, так как уверен, что вы технически правы, но чертовски много мирового видеонаблюдения и другого оборудования использует «плавающий» RS485 либо по дизайну, либо в результате ленивой установки, обычно без проблем.