Problema de comunicación RS485

He diseñado una placa con microcontrolador (NXP, K64) para controlar las E/S. El puerto uart del uC está conectado a Maxim 3362, que convierte la señal en comunicación semidúplex RS485. Usando el protocolo modbus en el uController, la comunicación fluye hacia el conector de la derecha en el esquema, desde allí a un dongle externo rs-485 a USB (que se conecta a una PC maestra).

E:\Xilinx

Estoy experimentando problemas de comunicación y usando una sonda diferencial y un osciloscopio para muestrear las líneas Rx y Tx de la comunicación diferencial rs485 (en el conector de salida de la placa, pines 4 y 5 en el dibujo) He visto la siguiente imagen:mensaje con ruido

mensaje con ruido, alejar

La imagen muestra un mensaje enviado desde la PC al uController, antes de que el uCOntroller respondiera, y respondiera incorrectamente (con RTS alto, como se esperaba).

Como puede ver dentro del mensaje enviado, hay unos y ceros. La lógica cero tiene mucho ruido oscilante y la lógica uno parece silenciosa.

Además, antes de que comience el mensaje, el cero parece estar bien. Esto parece un poco extraño porque si el suelo tuviera ruido, habría sospechado que la lógica cero dentro del mensaje y la lógica cero antes de que comience el mensaje tendrían ruido (también '1' tendría ruido, supongo) y no el cero lógica dentro del mensaje solo...

Además, tuve una vez durante todos mis experimentos que funcionó como se esperaba (estuvo funcionando bien durante unos días hasta ahora), vea lo siguiente:ingrese la descripción de la imagen aquí

Como puede ver en la segunda imagen, el '0' y el '1' parecen estar bien y estas imágenes son del mismo tablero.

¿Se trata de un problema de la placa o de un componente?

Supongo que no se trata del firmware... ¿Alguna idea?

¿Estás conectando el GND entre las dos partes?
¿Qué quieres decir con GND entre 2 partes?
Se necesitan dos para bailar tango... err comunicación. Su suelo tiene que ser común.
La ruta de mi sistema es la siguiente: PC->Dongle USB->RS485->conector integrado. ¿Dónde no está conectado GND aquí?
en la parte RS485.
Hmm... en el Maxim 3362? Así que tal vez sea un componente malo... Podría ser. Intentaré reemplazarlo. Porque funcionó correctamente durante varios días.
OK... Creo que no entiendes el punto. Entre los dos nodos que comunican RS485 deben pasar tres cables: TX/RX+, TX/RX- y tierra. ¿Tienes los tres entre tu dongle y la placa?

Respuestas (2)

Me parece que ha perdido la conexión de 0 voltios entre ambos sistemas. No puede hacer esto con RS485 sin usar interfaces aisladas especiales. También estoy un poco preocupado por las dos series de resistencias de 165 ohmios en las líneas de datos.

¿Puedes explicar qué quieres decir? ¿Cómo puedo perder los 0 voltios? La ruta de mi sistema es la siguiente: PC->USB dongle->RS485->conector integrado, etc...
Mida los 0 voltios en un extremo en relación con los 0 voltios en el otro usando un osciloscopio y mida durante una transmisión. No voy a dejarme llevar por las innumerables formas posibles de perder 0 voltios, así que mi consejo es probarlo.
Al referirse a un extremo y al otro extremo, ¿te refieres a la placa y al suelo en el mundo exterior? Además, algunas palabras sobre cómo se perderían los 0 voltios serían agradables... Gracias por su ayuda, de todos modos: 0)
Entre chip maxim y dongle.

Perdón por la respuesta tardía, tonto de mí, estaba usando una sonda activa que causó todo este lío. Después de cambiar a un modo normal, todo funciona bien.