La red RS485 falla al reemplazar el chip SP485 con MAX485

He creado una red de comunicación RS485 como se muestra a continuación.

{PC}->[FT232->RS485](120 ohm)<----par trenzado (2 hilos)------>(120 ohm)[RS485 -> MSP430]

Aquí la PC actúa como Maestro y envía los datos hacia MSP430. Los datos son un solo carácter de 8 bits. Estoy usando pines CBUS para poner los chips RS485 en modo de recepción y modo de transmisión usando el modo CBUS bitbang. Después de lo cual solo envío el personaje en formato serial.

La PC pone el chip RS485 en modo de transmisión y envía los datos.

En el lado de MSP430, MSP430 pone el chip en modo Recibir y espera a que el personaje lo reciba.

En ambos lados estoy usando una resistencia de terminación 120R.

Ahora, si estoy usando el chip SP485 de EXAR (similar a MAX485) en ambos lados, el sistema funciona maravillosamente. Sin problemas.

{PC}->[FT232->SP485](120 ohm)<----par trenzado (2 hilos)------>(120 ohm)[SP485 -> MSP430]

La transmisión del personaje sucede bien.

Por otro lado, si estoy usando SP485 en el lado de la PC y MAX485 en el lado de MSP430, el sistema simplemente no recibe el carácter.

{PC}->[FT232->SP485](120 ohm)<----par trenzado (2 hilos)------>(120 ohm)[MAX485 -> MSP430]

Tenga en cuenta que no he cambiado un poco el circuito, solo he colocado MAX485 en lugar de SP485. La longitud de la línea de transmisión es de aproximadamente 1,5 metros y estoy usando resistencias de terminación de 120 ohmios en ambos lados. No tengo ningún osciloscopio, así que conecté un LED al pin RO de MAX485 en el lado de MSP430 para verificar la recepción del carácter. Cuando envío el carácter desde el lado de la PC, el LED en el pin RO se enciende, lo que indica que están llegando algunos datos, pero el microcontrolador se niega a reconocerlos. También cambié el chip MAX485 dos veces para verificar si es un problema del ic.

Alguien tiene una solución para esto ?

¿Cuál es la impedancia característica de su cable de interconexión? ¿Qué tasa de datos estás usando? ¿Cuánto tiempo después de activar la transmisión fuerza el primer bit de datos? ¿Qué significa "simplemente no recibe el carácter"?
¿Puedes pedir prestado un osciloscopio? La prueba de LED RO no indica el cambio de señal dinámica ni muestra si hay efectos de carga o velocidad de respuesta. ¿Su prueba de RO LED pasa cuando usa Exar SP485 en ambos lados?
¿Qué tasa de datos está utilizando? Exar SP485 reclama una tasa de datos de 5 MBps, Maxim MAX485 solo reclama una tasa de datos de 2,5 MBps. Maxim MAX485 o MAX485E? (El MAX485E tiene una protección ESD más alta, pero tiene una velocidad de respuesta limitada). ¿Probó Linear Technology LTC485 (equivalente de reemplazo directo de Maxim MAX485)?
@ Andy alias: estoy usando un cable trenzado de 1,5 metros de uso general. "simplemente no recibe el carácter" significa que no se detecta ninguna interrupción de recepción en el lado MSP40G2553.
No, no conozco a nadie que tenga un osciloscopio en este momento. Estoy ejecutando el UART FT232RL a 9600 bps y transmitiendo un solo carácter. Cuando uso SP485 no se observan problemas, puedo recibir los datos perfectamente. presupuesto y las piezas que mencionas no están disponibles en el mercado local.
"¿Su prueba de RO LED pasa cuando usa Exar SP485 en ambos lados?" El LED conectado al pin RO se comporta de manera diferente para SP485 y MAXx485. 1) Cuando se usa SP485 en ambos lados, el LED RO (en el lado RX cerca de MSP430) permanece encendido continuamente. 2) cuando se usa SP485 en el lado TX y MAX485 en el lado RX, el LED RO en el lado RX parpadea Tenga en cuenta que en este caso estoy enviando ascii 'A' a 9600bps en un bucle con un intervalo de 1 segundo entre cada transmisión de 'A'

Respuestas (2)

¿Tiene resistencias de polarización pull-up/pull-down en las líneas? Estas resistencias de polarización establecen el estado de la línea cuando está inactiva, es decir, ningún dispositivo la controla. El comportamiento de los chips del controlador no está definido por el estándar si se permite que las líneas floten a cero voltios. Algunos controladores implementan una característica llamada 'a prueba de fallas' como el MAX485, con esta característica no se requieren resistencias de polarización.

Consulte la sección Resistencias de polarización a prueba de fallas en esta nota de aplicación.

Echa un vistazo a tus terrenos. Para que RS485 funcione correctamente, es necesario conectar las tierras del transceptor. Más información sobre conexiones a tierra RS485: http://www.chipkin.com/rs485-cables-why-you-need-3-wires-for-2-two-wire-rs485/

... pero solo en un extremo, o tendrás un problema de bucle de tierra.
obtienes un bucle de tierra si tienes más de una conexión a tierra. pero necesitas tener esa conexión a tierra, sin ella van a comenzar a suceder cosas raras.
por ejemplo, si dos dispositivos tienen sus conexiones a tierra conectadas a la fuente de alimentación y sus conexiones a tierra RS485 no están aisladas, entonces no se requiere una conexión a tierra separada. pero si 2 dispositivos están conectados solo con las señales RS485 A y B (como parece estar descrito en la pregunta), entonces se requiere una conexión a tierra.
Debería haber aclarado: el blindaje del cable (si se usa) solo debe conectarse en un extremo. En ciertas aplicaciones, si existe el riesgo de que el voltaje de modo común esté fuera de rango, es necesario un tercer cable (común o de tierra).
No votaré negativamente porque estoy seguro de que es técnicamente correcto, pero una gran cantidad de CCTV y otros equipos del mundo utilizan RS485 "flotante", ya sea por diseño o por instalación perezosa, generalmente sin problemas.