Autor Tema: Problema con comunicación RS485  (Leído 1762 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1937
    • Sicoy
Problema con comunicación RS485
« en: 04 de Abril de 2016, 14:41:17 »
Hola.

Estoy trabajando con el PIC16F1512.
 
He configurado el UART para trabajar en 9 bits y utilizo el transceptor SN75ALS176B. (Comunicación RS485)
 
El maestro envía una trama al esclavo y el esclavo entiende y procesa muy bien la trama.
 
Entonces, el esclavo envía una trama de respuesta al maestro, pero la trama no llega al maestro. (aparentemente).
 
He revisado los regsitros asociados con la UART en ambos dispositivos y  están configurados correctamente.
 
Cuando estoy de depuración del esclavo, yo pong un punto de ruptura antes de enviar la trama de respuesta, y luego al continuar con la depuración, la trama llega al maestro. (Hay un LED que se enciende, confirmando que hay una respuesta del esclavo).

Esto implica que debe haber un retraso antes de enviar la trama de respuesta desde esclavo al maestro.
 
He utilizado un analizador lógico para tratar de determinar lo que sucede y aparentemente todo está bien, por favor mire la imagen adjunta:




Tal vez el único problema está en el punto de transición entre terminales DE / RE en el esclavo y el maestro.
 
En ese instante (marcados con una letra A en la imagen de arriba) por un momento, los pines RX de ambos microcontroladoresestán vinculados por el transceptor.
 
Tal vez ese es el problema.
 
¿Alguna sugerencia o idea?
 
Gracias

« Última modificación: 05 de Abril de 2016, 00:18:35 por DominusDRR »
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado AG1

  • PIC16
  • ***
  • Mensajes: 105
Re:Problema con comunicación RS485
« Respuesta #1 en: 04 de Abril de 2016, 16:52:11 »
Hola DominusDRR:
Puedes controlar las señales RE y DE tanto en el maestro como en esclavo con un solo pin (uniendo RE y DE). Puedes utilizar una resistencia pull-down en las señales RE y DE tanto en el maestro como en esclavo, de esta forma los trasceptores irán facilmente a modo recepción.



Realiza las pruebas a una velocidad no muy elevada por ejemplo a 9600BPS  y con un cable corto.

Salu2
 
« Última modificación: 04 de Abril de 2016, 16:55:11 por AG1 »

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1937
    • Sicoy
Re:Problema con comunicación RS485
« Respuesta #2 en: 04 de Abril de 2016, 16:56:51 »
Saludos.

Gracias por responder.

Voy a realizar las pruebas sin los transceptores, es decir voy interconectar los microcontroladores entre sí (RXs con TXs).

De esa manera pienso determinar si existe un error de latencia con los SN75ALS176B.

Estoy trabajando a 9600, y como mencioné antes, la trama desde el maestro llega al esclavo sin problemas (una trama de 5 bytes con LRC para descartar errores en la trama).
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado AG1

  • PIC16
  • ***
  • Mensajes: 105
Re:Problema con comunicación RS485
« Respuesta #3 en: 04 de Abril de 2016, 18:11:58 »
Tienes que controlar bien el flujo de la comunicación.
Ten en cuenta que RS485 solamente utiliza una sola línea (diferencial) para transmitir y recibir.

Con las pruebas que vas a hacer, vas a utilizar con 2 líneas (una para transmitir y otra para recibir).

Salu2.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1937
    • Sicoy
Re:Problema con comunicación RS485
« Respuesta #4 en: 04 de Abril de 2016, 18:13:58 »
Tienes que controlar bien el flujo de la comunicación.
Ten en cuenta que RS485 solamente utiliza una sola línea (diferencial) para transmitir y recibir.

Con las pruebas que vas a hacer, vas a utilizar con 2 líneas (una para transmitir y otra para recibir).

Salu2.


Sí, eso se ve claramente en la imagen adjunta, cuando el maestro transmite, el esclavo está en modo de recepción y viceversa.
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1937
    • Sicoy
Re:Problema con comunicación RS485
« Respuesta #5 en: 05 de Abril de 2016, 00:17:51 »
He descubierto el problema.

Conecté los dos microcontroladores directamente y la comunicación mejoró de alguna manera (a veces llegaba la trama desde el esclavo al maestro y otra veces no, yo diría 50/50).

Ahora utilicé un osciloscopio y descubrí que el nivel lógico en alto en RX erá aproximadamente de 2,5V a 3,5V (Los micros trabajan a 5V).

Cambié el microcontrolador por uno nuevo y ahora todo funciona de lujo. (Los niveles de voltaje en alto de RX son 4.87V)

 :-/
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32


 

anything