Autor Tema: Problema con RS485 + Pc  (Leído 4727 veces)

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

Desconectado arielo

  • PIC10
  • *
  • Mensajes: 4
Problema con RS485 + Pc
« en: 26 de Diciembre de 2008, 02:01:52 »
Hola, esta es la primera vez que escribo y queria comentarles que este foro me ha resultado de muchas ayuda a lo largo de toda mi carrera ( Ing. Electronica ).
Ahora estoy trabajando en mi tesis y estoy desarrollando un sistema de monitoreo y manejo de un vivero a travez de Internet.
La idea es realizar modulos individuales que se encarguen de tomar datos como Temperatura, Humedad, Luz y otros y transmitan estos datos a un modulo central que acumula estos datos y cada tanto tiempo transmite estos datos, via internet, a un servidor remoto donde se almacenan. Luego podran ser revisados desde cualquier lugar del mundo.
El tema es que recien estoy empezando y acabo de realizar el primer modulo que consiste en una simple llave electronica con dos fines de carrera.
El modulo es el que esta adjunto en formato PDF(output-digital), y el sistema de comunicacion entre los modulos es por RS485.
El problema empieza cuando quiero comunicarme con una PC, para comunicarme realice el modulo que tambien adjunto(RS485toPC) y que obtuve de esta pagina. Funciona por medio, segun entendi, la habilitacion/deshailitacion de RTS ( Request to Send ) El hiperterminal no permite el manejo voluntario del pin RTS (pin 7) pero consegui un programa que me permite manejarlo a voluntad y sucede que cuando pongo enviar, RTS se pone en bajo (-10V) y cuando termina de transmitir vuelve a alto (+10v) el problema es que esto en el max232( ver esquematico ) equivale a, cuando transmito se pone en bajo (0v) y cuando deja de transmitir se pone en alto (5v).
Si no entiendo mal la idea es que mientras esta en bajo el pin /RE(2) y DE(3) del integrado MAX485 transmite por medio de los pines A(6) y B(7) en forma diferencial lo que se encuentra en la entrada D(4) y Cuando esta en alto el pin /RE y DE del integrado MAX485 recibe por medio de los pines A y B en forma diferencial y lo pasa a la salida R(1) el cual va al MAX232.
Esto si interpreto lo que sucede con el pin RTS en la transmision. El punto es que en la hoja de datos del intergrado MAX485 dice todo lo contrario. Las posibilidades son 3:
1) O el integrado para hacer la conversion de RS232 a RS485 que elegi es distinto del que se usa normalmente.
2) O existe otra forma de manejar el RTS para que se ponga en alto cuando transmite y en bajo cuando deja de transmitir
3) O yo soy muy zonso y no entendi nada de nada.

A alguno de uds les paso ? alguien sabe como se puede solucionar este inconveniente ?

Desde ya muchas gracias y espero vuestras respuesas.

Gracias, gracias y gracias

PD: Feliz Navidad y Feliz Año Nuevo !!!

Desconectado DOMINGO_V

  • PIC10
  • *
  • Mensajes: 14
Re: Problema con RS485 + Pc
« Respuesta #1 en: 26 de Diciembre de 2008, 09:32:09 »
Si no te estoy interpretando mal tu idea es sustituir el micro en el esquema que nos envías por un MAX232 para comunicar con el PC utilizando como señal de control una  de las líneas de control que te viene del PC por ejemplo la RTS. Y si no te estoy interpretándo mal le señal RTS la quieres conectar directamente a la señal de control del MAX485.
Si eso es así creo que no te funcionará nunca porque las señales de control del MAX485 deben tener niveles TTL y tu le están intentando poner señales RS232.
Yo lo que intentaría es adaptar la señal RS232 del pin RTS que te viene del PC con uno de los adaptadores que lleva el MAX232 que te quedan libres ( tiene 4 de los que normalmente solo se utilizan dos , 1 uno para los datos a transmitir y otro para los datos recibidos) .

Desconectado jansuini

  • Moderadores
  • PIC24F
  • *****
  • Mensajes: 566
Re: Problema con RS485 + Pc
« Respuesta #2 en: 26 de Diciembre de 2008, 10:53:12 »
Hola:
El problema del RTS es que lo tenés que invertir con un transistor entre el max232 y la entrada de control del 485.
Jorge

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re: Problema con RS485 + Pc
« Respuesta #3 en: 26 de Diciembre de 2008, 12:30:08 »
Que tal Arielo,

Antes que nada bienvenido al foro. Una solucion sencilla es la que te propone jansuini. Pero te comento que para mi hay algo extranio en tu explicacion de funcionamiento entre los niveles RS232 y el MAX232 con la senial RTS. Segun el standard RS232 un nivel de -10 V equivale a un 1 y un nivel de 10 V equivale a un 0, o sea hay logica invertida. Esto es lo contrario a lo que tu mencionas:

RTS se pone en bajo (-10V) y cuando termina de transmitir vuelve a alto (+10v) el problema es que esto en el max232( ver esquematico ) equivale a, cuando transmito se pone en bajo (0v) y cuando deja de transmitir se pone en alto (5v).

Pero efectivamente la solucion es colocar un inversor, ya sea con un transistor o con un circuito TTL.

Saludos y espero haberte podido ayudar.

Elreypic.

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: Problema con RS485 + Pc
« Respuesta #4 en: 26 de Diciembre de 2008, 14:11:30 »
Hola, pegale una leidita a esta parte del foro, estan los circuitos, normes, diferentes configuraciones para 485 232

http://www.todopic.com.ar/foros/index.php?topic=15420.0

Suerte!

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado arielo

  • PIC10
  • *
  • Mensajes: 4
Re: Problema con RS485 + Pc
« Respuesta #5 en: 26 de Diciembre de 2008, 14:49:53 »
Les agradesco mucho toda la informacion que me facilitaron, ya me pongo en campaña y le pongo el transistor. Cuando termine les cuento como me fue.

Domingo: No quiero reemplazar nada, no es mi intencion quitar ni el max232 ni el max485, asi como esta el esquema no funciona. perdon si escribi algo mal o no me supe expresar bien. Pero muchas gracias por tu interes.

jansuini, elreypic2 y todopic: Muchas gracias !!! me voy a poner a armarlo y despues les cuento.

Desconectado DOMINGO_V

  • PIC10
  • *
  • Mensajes: 14
Re: Problema con RS485 + Pc
« Respuesta #6 en: 27 de Diciembre de 2008, 11:03:55 »
Perdona por la confusión, estaba claro y el error fue mio. No había visto el segundo esquema que tu enviabas y que es precisamente el que te daba el problema. Solo abrí el primero en el que aparecía el micro y de ahí mi confusión, precisamente lo que yo te decía era lo que tu mismo habías hecho ya en el segundo esquema con mi sugerencia no te sirve para nada.

Desconectado arielo

  • PIC10
  • *
  • Mensajes: 4
Re: Problema con RS485 + Pc
« Respuesta #7 en: 31 de Diciembre de 2008, 21:52:14 »
Bueno, les cuento que lo que me recomendaron jansuini, elreypic2 y todopic anduvo de lujo. Le puse el inversor a transistor y anda perfecto, transmite y recibe pero ahora me encuentro con otro problema.
Arme en una protoboard el mismo pic con su oscilador y un MAX232 e intento transmitir y recibir, funciona perfecto.
Luego intento hacer lo mismo pero usando el circuito que esta mas arriba y como ya les dije recibe muy bien de PC a Micro. Luego le pido al micro que haga un eco de lo que transmiti y el me envia el eco pero ademas enpieza a transmitir cualquier verdura.
Por ejemplo:

Envio: 1 ( el caracter uno )
Recibo: 1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Esto es lo que veo yo en el programa de la pc. ( No uso el hyperteminal porque no me deja manejar el RTS ) y si no le corto la corriente sigue indefinidamente.
Probe la pata del inversor, del Max 232 y del max 485 y son los valores que corresponden, es decir se pone el alto cuando tiene que ponerse en alto y en bajo cunado tiene que ponerse en bajo. en la protoboard es asi pero en la placa (Output-digital-schematic.pdf) el pin /RE(2) y DE(3) del integrado MAX485 estan en alto cuando transmite y se queda en alto, pero esto es porque el micro le manda la señal del pin RB0 que yo uso para decirle que todavia hay dato para transmitir.
Entiendo que el Hard esta perfecto y que el problema es el soft, porque es el micro el que deberia darse cuenta de que no hay mas nada para transmitir y deberia ordenarle al MAX485 que se ponga en recepcion pero esto no sucede.
Les adjunto el programa en ASM para que puedan leerlo y me digan que opinan. tambien les pongo en pantalla la parte que para mi es la que tiene problemas.
Les recuerdo que este soft que les mando anda perfecto como eco en caso de ser solo el micro y el max232 en una protoboard.

Funcion enviar:

ENVIAR
        bcf          STATUS,RP0      ; RAM Page 0       
        movlw     b'00001001'       ; Aqui enciendo el led de señalizacion y predispongo al MAX485 para la TX
        movwf     PORTB

        bsf            STATUS,RP0      ; banco 1 
        movlw     B'00100000'   
        movwf     PIE1   
        movlw     B'00100100' 
        movwf     TXSTA   
        bcf            STATUS,RP0
        movlw     B'10010000'   
        movwf    RCSTA


enciendeled         ; Aqui va una rutina que demora una fraccion de segundo para poder ver el led encendido


        bcf          STATUS,RP0      ; RAM Page 0
        movfw    DATORX            ; Aqui va el dato a transmitir previamente recibido
        movwf    TXREG              ; echo data back to sender
        bsf          STATUS,RP0     ; RAM Page 1
WtHere 
        btfss          TXSTA,TRMT      ; (1) transmission is complete if hi
        goto          WtHere
     
        bcf          STATUS,RP0      ; RAM Page 1
        movlw     b'00000000'                 ; Pongo en alta impedancia el max 485 y lo predispongo para la RX
        movwf     PORTB                        ; y apago el led de indicacion
        BCF         PORTB,0   

return


Quisiera hacer notar que una transmision satisfactoria deberia encender y apagar el LED en una fraccion de segundo, Esto sucede en el caso de la protoboard pero en la placa el led queda prendido continuamente mientras esta enviando.

Es decir:

Protoboard:

Envio: 1
              (Enter)
              (prende y apaga el led)
Recibo:1

Placa Output-digital-schematic.pdf:

Envio: 1
              (Enter)
              (prende led)
Recibo:1%%%%%%%%%%%%%%%%%%...
              (hasta que no lo desenergizo no se apaga el led y no deja de recibir simbolitos)


Desde ya muchas gracias a todos por la mano que me puedan dar.

ATTE: @rielo



 

Desconectado arielo

  • PIC10
  • *
  • Mensajes: 4
Re: Problema con RS485 + Pc
« Respuesta #8 en: 02 de Enero de 2009, 15:58:38 »
Funca, tenia problemas de delay nada mas. Cuando tenga mas avanzada la Tesis voy a empezar a subir los distintos firmware ya terminado.

Un abrazo y Feliz 2009 !!!!!


 

anything