TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado 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.
-
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.
-
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:
-
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.
-
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?
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.
-
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.
-
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.
-
Ivan: Parece que hasta en eso estamos de acuerdo. :mrgreen:
(http://picmania.garcia-cuervo.net/images/RS485_Foto_01.GIF)
-
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
-
¡¡¡ 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.
-
No me digáis que esto no se merece también unos cuantos bichos saltarines .... :-/ :-/ :-/ :-/
Muy bien Pocher. :mrgreen:
-
:-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/
-
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.
-
Bárbaro!!! :-/ :-/ :arrow: :arrow: :arrow: :arrow: :arrow: :arrow: :arrow: :arrow: :arrow: :oops: :oops: :D :D :D :D :-/ :-/
-
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
-
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:
-
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?
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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