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 ?
¿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/
Andy alias
MarkU
MarkU
rohkumarj
rohkumarj
rohkumarj