Я создал коммуникационную сеть 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, чтобы проверить, не является ли это проблемой микросхемы.
Есть ли у любого тела решение для этого?
Есть ли на линиях подтягивающие/подтягивающие резисторы смещения? Эти резисторы смещения устанавливают состояние линии, когда она простаивает, т. е. никакие устройства не управляют ею. Поведение чипов драйвера не определено стандартом, если обеим линиям разрешено плавать до нуля вольт. Некоторые драйверы реализуют функцию, называемую «отказоустойчивостью», например MAX485, с этой функцией резисторы смещения не требуются.
См. раздел «Отказоустойчивые резисторы смещения» в этих указаниях по применению.
Посмотрите на свои земли. Для правильной работы RS485 заземление трансивера должно быть подключено. Дополнительная информация о заземлении RS485: http://www.chipkin.com/rs485-cables-why-you-need-3-wires-for-2-two-wire-rs485/
Энди ака
МаркУ
МаркУ
Рохкумардж
Рохкумардж
Рохкумардж