TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: pocher en 28 de Noviembre de 2007, 15:14:01

Título: Comunicación PC-PIC con RS485
Publicado por: pocher en 28 de Noviembre de 2007, 15:14:01
Estoy usando un conversor RS232-RS485 para pasar del PC a la red 485 basado en el siguiente circuito:

(http://img258.imageshack.us/img258/6255/rs232rs485ih2.jpg)

El caso es que no me va.

Diego (RedPic) usaba un conversor de tienda ya hecho. ¿Como conectas las entradas de control del RS485, con el PC con este conversor comercial? En el dibujo anterior que os muestro estan cortocircuitadas y conectadas a la línea RTS (pin 7) del conector DB9 (para efectuar el control con algún programa desde el PC). Yo las he puesto así: RE=0 (siempre recibiendo), DE=1 (siempre transmitiendo) ¿está mal hecho?

Los condesadores que he puesto son de 10uF en vez de 1uF del dibujo, pero no creo que sea eso.

Todas las masas unidas y conectadas al pin 5 del conector.

El programa de prueba es el de Diego.

A ver que opinais.
Título: Re: Comunicación PC-PIC con RS485
Publicado por: maunix en 28 de Noviembre de 2007, 22:54:37
Antes que nada te aclaro que he usado circuitos similares a ese, en incontables ocasiones sin ningún problema.  El único problema es que la PC y Windows no te permitirán hacer un cambio 'de inmediato' en el pin RTS o el DTR.

Yo que tu pruebo primero en un solo sentido, ver si recibes o si transmites.  Pero no hagas la conmutación hasta no comprobar que eso anda bien.

Los condesadores que he puesto son de 10uF en vez de 1uF del dibujo, pero no creo que sea eso.
Eso a lo sumo te cambiará la velocidad máxima que puedas lograr, aunque si los colocas mal directamente no funcionará jeje.

Tienes un tester o voltímetro para medir qué tension tienes en el pin 2 y 3 del max485?   

Tienes un osciloscopio? con eso lo sacas rápido.
Título: Re: Comunicación PC-PIC con RS485
Publicado por: RedPic en 29 de Noviembre de 2007, 02:52:13
Amigo Pocher, yo nunca he realizado ese esquema en concreto, como bien has dicho uso para el PC un conversor 232-485 comercial, pero la idea es exactamente esa y así lo hubiese hecho yo. Aunque como te digo hubiera obtenido tus mismos resultados y tendría que empezar a ver en qué me he equivocado.  :mrgreen:
Título: Re: Comunicación PC-PIC con RS485
Publicado por: Nocturno en 29 de Noviembre de 2007, 03:05:02
Quizás poniendo un PIC detrás del MAX232 podrías comprobar si el circuito está bien hasta ese punto. Si es así tendrías que buscar la avería en la parte del MAX485.
Supongo que lo habrás revisado ya, pero es muy habitual cagarla con el condensador C3, que va al revés que el resto.
Título: Re: Comunicación PC-PIC con RS485
Publicado por: pocher en 29 de Noviembre de 2007, 03:10:19
Citar
Tienes un tester o voltímetro para medir qué tension tienes en el pin 2 y 3 del max485?   

El pin 2 y 3 del max485 los tengo permanentemente a 0 y a 1 permanentemente (comprobado con tester que hay esas tensiones).

Diego ¿como se controlan estas señales DE y RE con el conversor comercial?

Citar
Quizás poniendo un PIC detrás del MAX232 podrías comprobar si el circuito está bien hasta ese punto

Sí eso también lo he hecho, he efectuado una comunicación PC-PIC RS232 y va bien.

Le pegaré otra repasada a ver si lo veo.
Título: Re: Comunicación PC-PIC con RS485
Publicado por: Azicuetano en 29 de Noviembre de 2007, 04:32:20
El que yo utilizo es el IC485SN

(http://img227.imageshack.us/img227/187/rs485ly6.jpg)

Para que me funcione bien lo conecto así:

(http://img206.imageshack.us/img206/850/rs485esquemamu2.jpg)

La parte de los optoacopladores es para aislar electricamente, se puede omitir.

El conversor RS232/RS485 (ver foto) lo configuro poniendo el botoncito de la derecha en DCE y el de la izquierda T1ON, R1ON

El serial port monitor lo tengo así:

(http://img206.imageshack.us/img206/2252/rs485ccsar4.jpg)

Si cambio el botón de la derecha del conversor (lo pongo en DTE en lugar de ponerlo en DCE) la lucecita verde que se ve en la imagen DSR se apaga y no me funciona. En el mismo instante que lo cambio todo vuelve a ir bien.

El datasheet del conversor lo puedes ver aquí por si te da algo de luz:

http://www.cablematic.com/index.php?_sect=search&_cl_id=1&_lang=esp&menu=&searchthis=aten&_photo_magnify=1&mode=1&id=20&fam=&pag=5&p=


Un saludo desde Alicante.
Título: Re: Comunicación PC-PIC con RS485
Publicado por: umalrovi en 29 de Noviembre de 2007, 06:03:46
Buenas Pocher,

Yo utilizo uno comercial, esactamente es este (http://www.patton.com/products/pe_printable.asp?category=152). Veo que en el circuíto has puesto condensadores electrolíticos. En un principio debe de funcionar, pero en mi curro me pasó una cosa muy extraña con unos aparatos que controlava a través de un PIC por el puerto de comunicaciones RS232. En mi trabajo trabajamos con altos campos magnéticos entre 1 y 2 Tesla, jeje. Pues de la noche a la mañana una tarjeta dejó de funcionar, me la llevaba al laboratorio y a veces funcionaba. Al final el problema que tuve era en el MAX232 con los condensadores, los puse electrolíticos. Todo relució cuando puse los condensadores de Tántalo (tiene una corriente de fugas muy pequeña con respecto a los electrolíticos). Prueba primero aponer un PIC detras a ver si te funciona como dijo Redpic si no te funciona prueba a cambiar los condensadores del MAX232.

Un saludo.
Título: Re: Comunicación PC-PIC con RS485
Publicado por: RedPic en 29 de Noviembre de 2007, 11:40:43
Ivan: Parece que hasta en eso estamos de acuerdo.  :mrgreen:

(http://picmania.garcia-cuervo.net/images/RS485_Foto_01.GIF)
Título: Re: Comunicación PC-PIC con RS485
Publicado por: pocher en 29 de Noviembre de 2007, 14:08:34
Gracias Maunix, RedPic, Nocturno, Azicuetano y Umalrovi por la info aportada.

Voy a transmitir solo en un sentido como me indicó Maunix y a ver que pasa, si no sale me compraré uno comercial.

Bloquearé un Enable y habilitaré al otro, no como lo tengo ahora que estan los dos habilitados. Voy a probar.

Un saludo
Título: Re: Comunicación PC-PIC con RS485
Publicado por: pocher en 29 de Noviembre de 2007, 15:21:18
¡¡¡ FUNCIONA !!! la comunicación PC ---> PIC, estaba tan contento que he tenido que postear. Lo único que he hecho es poner los 2 enables de la parte del PC a 1 (transmisión activada, recepción bloqueada) y en la parte del PIC al revés.

Ahora voy a provar la comunicación PIC ---> PC.
Título: Re: Comunicación PC-PIC con RS485
Publicado por: RedPic en 29 de Noviembre de 2007, 15:33:44
No me digáis que esto no se merece también unos cuantos bichos saltarines ....  :-/ :-/ :-/ :-/

Muy bien Pocher.  :mrgreen:
Título: Re: Comunicación PC-PIC con RS485
Publicado por: Nocturno en 29 de Noviembre de 2007, 17:04:51
 :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/
Título: Re: Comunicación PC-PIC con RS485
Publicado por: pocher en 29 de Noviembre de 2007, 17:09:16
También FUNCIONA la comunicación PIC-PC. ¡ Viva, viva, oé, oé, oé !

Sí Diego alla van:  :-/ :-/ :-/ :-/ :-/ :-/ :D :D :D :D :D :D :-) :-) :-) :-) :-) :-)

Mañana a probar la comunicación bidireccional, a ver porqué no funcionaba.

Manolo cuando le iba a dar a botoncito de publicar mensaje he visto tus ranas, vaya ejército.
Título: Re: Comunicación PC-PIC con RS485
Publicado por: MGLSOFT en 29 de Noviembre de 2007, 18:16:59
Bárbaro!!!  :-/ :-/ :arrow: :arrow: :arrow: :arrow: :arrow: :arrow: :arrow: :arrow: :arrow: :oops: :oops: :D :D :D :D :-/ :-/
Título: Re: Comunicación PC-PIC con RS485
Publicado por: pocher en 30 de Noviembre de 2007, 01:49:11
Resultados de todas las pruebas:

a) Comunicación PC ---> PIC:

FUNCIONA con los 2 Enables de la parte del PC a 1 (transmisión activada, recepción bloqueada) y en la parte del PIC al revés. Si en la parte del PC ponemos RE=0 (siempre recibiendo), DE=1 (siempre transmitiendo) también FUNCIONA.

b) Comunicación PIC ---> PC:

FUNCIONA con los 2 Enables de la parte del PC a 0 (transmisión bloqueada, recepción activada) y en la parte del PIC al revés. Si embargo, si en la parte del PC ponemos RE=0 (siempre recibiendo), DE=1 (siempre transmitiendo)  NO FUNCIONA.

c) Comunicación bidireccional PC ---> PIC + PIC ---> PC:

Obiamente por lo expuesto en el último párrafo del apartado b) ¡NO FUNCIONA!, necesitamos el pin de control de flujo RTS del dibujo del primer post para que cuando la comunicación sea PIC ---> PC poder poner los dos Enables de la parte del PC a 0.

Un saludo

Título: Re: Comunicación PC-PIC con RS485
Publicado por: MGLSOFT en 30 de Noviembre de 2007, 08:45:46
El estandar RS485 no permite comunicacion bidireccional al mismo instante, para eso esta el estandar RS422, que usa dos conversores y permite enviar y recibir... :mrgreen: :mrgreen:
Título: Re: Comunicación PC-PIC con RS485
Publicado por: pocher en 30 de Noviembre de 2007, 09:44:17
No Marcos, no me refiero a enviar y recibir al mismo tiempo que ya sé que no se puede debido a que habría colisión de datos en las 2 líneas. Me refiero a comunicación unidireccional:

b) Comunicación PIC ---> PC:

FUNCIONA con los 2 Enables de la parte del PC a 0 (transmisión bloqueada, recepción activada) y en la parte del PIC al revés. Sin embargo, si en la parte del PC ponemos RE=0 (siempre recibiendo), DE=1 (siempre transmitiendo)  NO FUNCIONA.

Pero si la comunicación es PC ---> PIC:

Si en la parte del PC ponemos RE=0 (siempre recibiendo), DE=1 (siempre transmitiendo) también FUNCIONA [apartado a)]

Esto no lo tengo claro. ¿Porqué en un caso, habilitar los dos Enables a la vez FUNCIONA y en el otro NO FUNCIONA?
Título: Re: Comunicación PC-PIC con RS485
Publicado por: valdorre en 03 de Diciembre de 2007, 21:06:28
hola, yo para la comunicación rs485 con la pc uso este circuito
http://rapidshare.com/files/74123379/modulo_04.pdf
y me anda bien, solo usa tx y rx del 232.

saludos
Osvaldo
Título: Re: Comunicación PC-PIC con RS485
Publicado por: huichoman en 04 de Diciembre de 2007, 01:59:19
Hola Pocher. Estoy ahora mismo con el proyecto del invernadero, utilizando lo comunicación RS485,  el circuito que utilizo es el que muestro.

(http://img118.imageshack.us/img118/533/232485hxu7.png)


También tuve el mismo  problema al tratar de implementar la comunicación Half-Duplex,  para ello utilicé de parte de la PC un programa en visual Basic, me funcionó pero  de repente se apendejaba.  Como  tenía que mostrar el  monitoreo de la temperatura del  invernadero,  pues  hice lo más  fácil,  por  el  momento solo necesitaba mostrar  la  temperatura y humedad, así que  coloqué el  circuito del  sensor  con  el enable  en  alto para enviar  datos y el conversor de la  pc en bajo para solo recibir dichos datos. Si te fijas  en el  esquemático,  coloqué un switch con  el que  puedo elegir  poner en bajo  el  pin de enable  del max485, pero cuando desee implementar la comunicación  half-duplex simplemente switcheo y  tengo el control  del enable  mediate el pin  rts  del puerto serie.  Tengo  el diseño de la placa  pcb por si te interesa y el programa en visual basic. Deja busco las fotos  para mostrarte el circuito  ya hecho y armado.  Saludos

Título: Re: Comunicación PC-PIC con RS485
Publicado por: pocher en 04 de Diciembre de 2007, 10:42:40
Hola Valdorre. El problema viene cuando el PIC, ó el PC envia datos y el otro tiene que responder automáticamente, sin intervención humana que cambie el "puente".

Hola huichoman. Déjame que le pegue un vistazo al programita en V.B. con el control RTS.

Un saludo
Título: Re: Comunicación PC-PIC con RS485
Publicado por: valdorre en 04 de Diciembre de 2007, 13:31:17
hola pocher, conectando el sn76175 con esa configuración no necesitas cambiar ningún puente, al menos yo lo uso para enviar y recibir datos entre la pc y un pic y no tengo que cambiar nada (fisicamente), en el pic uso el "enable" para cambiar de tx a rx y en el rs232 lo hace automaticamente el transistor que esta con el sn...

saludos
Osvaldo
Título: Re: Comunicación PC-PIC con RS485
Publicado por: dhmejia en 04 de Diciembre de 2007, 15:00:23
He trabajado con comunicación RS-485 y no he tenido problemas con el circuito que adjunto.  En este circuito el 75176 mantiene habilitado solo para recibir pero cuando se transmite el 74123 cambia las habilitaciones y mantiene este estado hasta un tiempo despues de que se deje de transmitir.

El circuito lo copie de un displays electrónico con conexión RS-485 "Adaptive (http://www.adaptivedisplays.com/)". Realmente me ha funcionado muy bien.  Este circuito también tiene una protección contra picos en las líenas de datos, los suiches son para seleccionar si se usan o no las resistencias de fin de linea.

saludos
Título: Re: Comunicación PC-PIC con RS485
Publicado por: pocher en 06 de Diciembre de 2007, 06:01:52
Valdorre perdona pero no entiendo el circuito.

El Enable de recepción RE del SN75176 está a 0 permanentemente (siempre recibiendo) y a su vez también está a 0 el pin4 D de transmisión. No entiendo como con esta configuración fija se pueda transmitir y recibir. Con el transistor controlas el Enable de transmisión DE ¿para qué si su pin de transmisión D está permanentemente a 0?

El T1OUT del MAX232 lo conectas al pin 3 (TXD) del DB9 que va al PC ¿No tendría que conectar con el pin 2 (RXD) ?

Serías tan amable de explicarme estas cosillas.

dhmejia tu circuito lo entiendo perfectamente, el monoestable redisparable 74LS123 es el que se encarga durante 15ms de habilitar la transmisión para luego volver al estado de recepción. Pero no sería mejor eliminarlo y efectuar el control de los Enables cortocircuitados desde Visual Basic a través del pin RTS.

Por cierto como se hace para poner a 0 o a 1 el pin7 del DB9 (RTS) desde Visual Basic?

Un saludo

Un saludo
Título: Re: Comunicación PC-PIC con RS485
Publicado por: valdorre en 06 de Diciembre de 2007, 08:59:10
hola pocher, la verdad no se bien como funciona, pero que funciona... funciona..
esta siempre recibiendo, esto hace que cuando uno transmite desde la pc se genere un eco, y esta transmisión trabaja sobre el pin de habilitación del sn75176, como el pin tx esta a masa, genera la transmisión habilitando y deshabilitando DE...
asi es como creo que trabaja :?

saludos
Osvaldo
Título: Re: Comunicación PC-PIC con RS485
Publicado por: RedPic en 06 de Diciembre de 2007, 10:06:20
Atentos y ojo al parche: Cuidado con los ecos en el RS485.

El eco es algo que siempre esta presente en una red RS485 cuando está mal balanceada. La inmensa mayoría de los Firmware's están preparados, o deberían estarlo, para bregar (luchar) y no tomar en cuenta los ecos, para que funcionen "incluso" con ecos.

Pero cuando una red RS485 se adapta canonicamente a la norma: distancias máximas entre dispositivos, impedancias de entrada de los mismos, impedancias de red (finalizaciones de red), etc. el eco no se presenta, os lo juro por las patillas de mi PIC.

Basar algo en el eco es adaptar su funcionamiento a una topología determinada que no tiene por qué funcionar con otras condiciones distintas.

Ea, ahí queda eso. ja, ja, ja  :D :D :D


 
Título: Re: Comunicación PC-PIC con RS485
Publicado por: valdorre en 06 de Diciembre de 2007, 13:09:47
hola Diego, estoy usando siow de ccs que al parecer transmite y recibe al mismo tiempo (full duplex), y como con esa configuración el sn75176 esta recibiendo siempre, cuando uno transmite desde la pc la recepcion no se corta y se genera un eco, o sea que la pc recibe lo que esta transmitiendo, el resto funciona bien.
no se si me explique bien...

saludos
Osvaldo