Autor Tema: RS-485 problema de comunicación entre PICs (HSERIN,HSEROUT)  (Leído 7446 veces)

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

Desconectado ra2ven

  • PIC10
  • *
  • Mensajes: 29
RS-485 problema de comunicación entre PICs (HSERIN,HSEROUT)
« en: 12 de Junio de 2009, 10:43:16 »
Hola, he estado intentando simular una comunicación por RS-485 entre PICs con malos resultados.
Si alguien pudiera ayudarme le estaría muy agradecido. Aqui adjunto mi esquema de simulación.



El programa es el mismo para los dos PICS
La simulación anterior es con los dos PICs en modo maestro (TXSTA.7=1) y comunicación síncrona (half-duplex).
Tal y como esta el programa se transmite algo ("x" en el virtual terminal) pero no puedo recibir nada ya que si habilito el bloque de código donde esta HSERIN los PICs no responden.

He intentado poner uno como maestro y el otro como esclavo, los dos esclavos... pero nada.
Tambien he intentado poner las lineas tx/rx de los PICs con "tris" a entradas o salidas pero lo único que consigo son conflictos lógicos como el de la imagen.

Un saludo y gracias de antemano.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: RS-485 problema de comunicación entre PICs (HSERIN,HSEROUT)
« Respuesta #1 en: 12 de Junio de 2009, 11:08:44 »
Segun el warm, hay un choque de logicas en los pines (donde esta el cuadro amarillo, indica una especie de corto) en la vida real hay un consumo alto de corriente. Veo ademas que los dos habilitadores estan a ceros, cuando uno de ellos debe estar en 1.

Antes de la transmision habilita al master para enviar y el slave tenlo siempre en recepcion.

Saludos
El papel lo aguanta todo

Desconectado ra2ven

  • PIC10
  • *
  • Mensajes: 29
Re: RS-485 problema de comunicación entre PICs (HSERIN,HSEROUT)
« Respuesta #2 en: 12 de Junio de 2009, 11:42:31 »
Gracias por responder.

Haciendo pruebas me he dado cuenta de una cosa:

Yo en mi código sustituyo   "Define HSER_TXSTA 24H"   por   "TXSTA=%00100100"  pensando que eran equivalentes (24h es 00100100 en hexadecimal) pero he hecho una prueba simple de HSERIN asincrona en una nueva simulación y he visto que no causan la misma respuesta en el virtual terminal. (24H sale bien y con %00100100 sale un caracter raro).

Po lo tanto supongo que mis registros TXSTA y RCSTA están mal configurados. ¿Hay que configurarlos siempre en hexadecimal y con DEFINE?

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: RS-485 problema de comunicación entre PICs (HSERIN,HSEROUT)
« Respuesta #3 en: 12 de Junio de 2009, 15:25:47 »
Hola.

En el terminal virtual vas a ver caracteres ASCII unicamente, si quieres puedes configurarlo en visualizacion de hexadecimales dandole click derecho al terminal virtual y seleccionado la opcion correspondiente.
El papel lo aguanta todo

Desconectado ra2ven

  • PIC10
  • *
  • Mensajes: 29
Re: RS-485 problema de comunicación entre PICs (HSERIN,HSEROUT)
« Respuesta #4 en: 15 de Junio de 2009, 12:18:28 »

He intetado hacer una prueba alternativa sin los drivers RS-485 y no consigo nada, ni siquiera recibo nada por el virtual terminal. En modo asincrono funciona bien.
Quizas estoy poniendo mal las conexiones o nose, apenas he encontrado informacion sobre la forma de interconexion entre PICs de forma sincrona.
Entiendo que la linea Tx lleva la señal de reloj y la Rx lleva los datos.

Aqui esta el esquema:



Un saludo.

Desconectado ra2ven

  • PIC10
  • *
  • Mensajes: 29
Re: RS-485 problema de comunicación entre PICs (HSERIN,HSEROUT)
« Respuesta #5 en: 15 de Junio de 2009, 16:20:20 »
He probado el formato asíncrono con transmisión RS-485 y tampoco va bien, ya empiezo a creer que hay algun problema con este bus en proteus.....

La lógica en teoría es muy simple, pero no funciona. Aquí esta el esquema (el programa del pic derecho es igual que el del izquierdo mostrado pero transmitiendo "sl" y recepcionando "rp" (para descartar fallos por rebote del bus):



Con permiso de los moderadores voy a pasar esta última respuesta a la sección Pic Basic porque quizá allí álguien sepa algo.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: RS-485 problema de comunicación entre PICs (HSERIN,HSEROUT)
« Respuesta #6 en: 15 de Junio de 2009, 21:23:39 »
Hola.

El RS485 funciona bien en proteus, mira AQUI.

Lo que dices sobre el modo sincrono de la comunicacion serial, no se si sea del todo cierto ... habrá que revisar mejor la teoria.

Saludos
El papel lo aguanta todo

Desconectado ra2ven

  • PIC10
  • *
  • Mensajes: 29
Re: RS-485 problema de comunicación entre PICs (HSERIN,HSEROUT)
« Respuesta #7 en: 16 de Junio de 2009, 04:57:45 »
Hola, en ese esquema de proteus no veo los integrados para el bus 485 y es que precisamente el problema esta ahí, ya que si conecto directamente los pics me funcionan bien.

Un saludo.

Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4919
Re: RS-485 problema de comunicación entre PICs (HSERIN,HSEROUT)
« Respuesta #8 en: 16 de Junio de 2009, 05:09:38 »
Hola, en ese esquema de proteus no veo los integrados para el bus 485 y es que precisamente el problema esta ahí, ya que si conecto directamente los pics me funcionan bien.

Un saludo.

el integrado ese mismo no, pero otro si y con las misma caracteristica, mirar bien la Libreria, y te aconsejo que modere tus preguntas ya que temas de simulaciones no van aqui, y por favor no repita mensaje, gracias
Saludo

Desconectado ra2ven

  • PIC10
  • *
  • Mensajes: 29
Re: RS-485 problema de comunicación entre PICs (HSERIN,HSEROUT)
« Respuesta #9 en: 16 de Junio de 2009, 06:13:47 »
Ok, pueden eliminar el post.

Disculpen las molestias.

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: RS-485 problema de comunicación entre PICs (HSERIN,HSEROUT)
« Respuesta #10 en: 16 de Junio de 2009, 06:46:49 »

He intetado hacer una prueba alternativa sin los drivers RS-485 y no consigo nada, ni siquiera recibo nada por el virtual terminal. En modo asincrono funciona bien.
Quizas estoy poniendo mal las conexiones o nose, apenas he encontrado informacion sobre la forma de interconexion entre PICs de forma sincrona.
Entiendo que la linea Tx lleva la señal de reloj y la Rx lleva los datos.

Aqui esta el esquema:



Un saludo.

No puedes conectar TX con TX porque creas corto y cuando tengan niveles diferentes bummm calientito tu circuito.

rx-tx
tx-rx

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: RS-485 problema de comunicación entre PICs (HSERIN,HSEROUT)
« Respuesta #11 en: 16 de Junio de 2009, 06:55:40 »
En tu primer post tambien hay corto y una diferencia de niveles por eso el color amarillo.

Esta bien la conexión , pero lo más seguro es que en tu programa no tienes definido el pin RX como entrada.

Con eso deberia andar , xD segun mis intuiciones xD

bueno dejo las intuiciones y he pegado el ojo en el código que pones , veo el 'TRIsC = 1000 0000 comentado y abajo pones

TRISC = 0. <--- Aqui el error porque defines todo el puerto C como salida y RX lo estas usando como entrada o porlo menos le conectas ahi el TX del otro micro.

Lo tenías bien. trisc = 1000 0000



Saludos!


Desconectado ra2ven

  • PIC10
  • *
  • Mensajes: 29
Re: RS-485 problema de comunicación entre PICs (HSERIN,HSEROUT)
« Respuesta #12 en: 19 de Junio de 2009, 08:39:53 »
Ya probe la conexion rx-tx y viceversa pero no me responde el pic de la derecha segun lo que reciba HSERIN. Los datos a mi parecer se envian bien como se puede apreciar en el osciloscopio:



Creo que hay algo que configurar a mayores para la recepción sincrona que se me escapa.

Un saludo.

Desconectado Dicxio

  • PIC10
  • *
  • Mensajes: 2
Re: RS-485 problema de comunicación entre PICs (HSERIN,HSEROUT)
« Respuesta #13 en: 19 de Junio de 2009, 16:56:32 »
Ya probe la conexion rx-tx y viceversa pero no me responde el pic de la derecha segun lo que reciba HSERIN. Los datos a mi parecer se envian bien como se puede apreciar en el osciloscopio:

Hola ra2ven:
             Creo que lo que te faltan son las resistencia a pull up en los TX del pic. En la practica tambien debes poner una resistencia de 120 ohm entre A y B como final de linea.

             Yo logré realizar la comunicación de un PIC con un PLC convirtiendo de RS232 a rs485 mediante el 76175. Si necesitas más información solo publícalo.

Saludos cordiales.
Ing. Rodrigo Ramirez

Desconectado ra2ven

  • PIC10
  • *
  • Mensajes: 29
Re: RS-485 problema de comunicación entre PICs (HSERIN,HSEROUT)
« Respuesta #14 en: 22 de Junio de 2009, 06:46:11 »

Hola ra2ven:
             Creo que lo que te faltan son las resistencia a pull up en los TX del pic. En la practica tambien debes poner una resistencia de 120 ohm entre A y B como final de linea.

             Yo logré realizar la comunicación de un PIC con un PLC convirtiendo de RS232 a rs485 mediante el 76175. Si necesitas más información solo publícalo.

Saludos cordiales.
Ing. Rodrigo Ramirez


Hola, he intentado lo de las resistencias pull-up pero tampoco funciona. Yo creo que falta algo en el programa del pic de la derecha para recepción síncrona.

Asíncronamente funciona bien incluso a traves de una red RS-485.

Toda la información que tengas será bienvenida.

Un saludo.