He estado atascado en este tema durante bastante tiempo. Estoy tratando de usar un arduino para comunicarme con otro dispositivo usando RS485. El problema es que puedo ver los datos que se envían, pero el dispositivo no responde en absoluto. Aquí está el desglose hasta ahora:
-
Estoy usando un puerto serial de hardware y un transceptor rs485 Max487 que se adjunta a un sheild personalizado.
-
Puedo hacer que el dispositivo funcione a través de RS232 usando una biblioteca que tengo escrito así, no creo que sea un problema de software.
-
También he podido comunicarme con el dispositivo usando un usb para convertidor rs485. Esto no estaba adjunto a mi arduino, envié los datos. utilizando realterm. Entonces, no creo que sea un problema con el dispositivo.
-
Estoy usando un cable plano con 2 pares trenzados. Un par que estoy usando para tierra, el otro para las señales que no invierten / invierten. El cable tiene una impedancia de 120Ohms. Mi cable mide unos 11 m de largo.
-
Tengo una resistencia de terminación de 120 ohmios en mi PCB y he habilitado la terminación de polarización en el dispositivo. (La línea de desvío tiene una polarización de 5V, la no inversión está en 0v).
-
Cuando miro las huellas, puedo ver que se están enviando todos los datos, junto con la paridad y los bits de parada. He adjuntado una imagen de las 2 trazas y el resultado de (línea no invertida - línea invertida)
-
¡Estoy escribiendo! (Habilitar receptor) y los pines de Habilitación del controlador están altos cuando se transmite, y baja tan pronto como se complete la transmisión.
-
Cuando no pude hacer que funcionara con mi primer sheild, hice otra. Desafortunadamente, todavía estoy teniendo problemas.
En resumen, no creo que sea un problema de software. He leído mucho pero no he podido encontrar nada que haya ayudado. ¿Alguien tiene alguna sugerencia sobre lo que podría estar impidiendo que el dispositivo responda? Cualquier ayuda sería muy apreciada
Gracias de antemano