# Comunicacion serial PIC16F877, MAX232 es necesario?



## janvama (Nov 6, 2008)

Buen dia Amigos,

He pasado muchas horas revisando las preguntas y respuestas de este foro y no consegui algo claro.

Estoy tratando de comunicar un PIC16F877 con la PC (enviar datos) a travez del puerto serial.

Utilizo el hardware UART del PIC y los pines Tx y Rx respectivamente. Pero no consigo buenos resultados. Solo recibo puros gerogrificos (datos extraños) en la PC.

Mi pregunta es:  *ES NECESARIO USAR EL MAX232  ??????????*

Agradezco de antemano su ayuda.

Andrew.


----------



## jomainbe (Nov 6, 2008)

Normalmente sí, puesto que los niveles de voltaje en el pic varían desde 0 hasta 5 voltios, y el puerto serie del PC funciona desde +12V hasta -12V. Aunque aquí....

http://www.pablin.com.ar/electron/circuito/mc/ttl232/index.htm

...hay un montaje para no usar un max232, con un par de transistores y unas resistencias.


----------



## janvama (Nov 6, 2008)

Perfecto.

Muchas gracias.


----------



## pic-man (Nov 6, 2008)

Solo agregar que ese conversor de niveles que aparece en pablin.com si funciona, yo siempre he usado ese circuito y nunca he tenido problemas para comunicar el pic con la PC.


----------



## Moyano Jonathan (Nov 7, 2008)

No tiene problemas de ruido eléctrico ni tramas perdidas? ya que me quería armar un módulo conversor ttl a rs232 y los circuitos de pablin no son de los mejores (experiencia propia)


----------



## janvama (Nov 15, 2008)

Hola,

Probé con el MAX232 y funciona perfectamente.

Saludos,

Andrew


----------



## pic-man (Nov 15, 2008)

Moyano Jonathan dijo:
			
		

> No tiene problemas de ruido eléctrico ni tramas perdidas? ya que me quería armar un módulo conversor ttl a rs232 y los circuitos de pablin no son de los mejores (experiencia propia)


Yo nunca he tenido problema, siempre he usado comunicación asíncrona entre el pic y la pc, a velocidades de 9600 y 2400 baudios y nunca he tenido problema.


----------



## Moyano Jonathan (Nov 15, 2008)

muchas gracias pic-man , más adelante me gustaría aprender algo de lo que vos hiciste en asm (video con pic)


----------



## Victronica (May 13, 2009)

He visto la comunicacion del pc al pic 16f877 con el max232, el montaje del max232 esta en el datasheet.....
http://www.datasheetcatalog.com/datasheets_pdf/M/A/X/2/MAX232CPE.shtml

solo son unos condensadores y funciona.


----------



## atricio (Sep 17, 2009)

hola amigos quisiera usar la comunicacion serial para un 16F877A alguien me pudiera ayudar con el circuito para poder probarlo quiero utlizar el max 232...se que hay una manera de hacer con las 40106 pero la verdad no lo he encontrado por favor ayudenme para poder hacer ese circuito...gracias de antemano


----------



## mecatrodatos (Sep 18, 2009)

No es necesario ya que los niveles de tension puden ser controlador por resistencias en los pines de comunicacion serial , en mi caso utilizo la max 232 cuando tengo que realizar comunicacion que excedan los 3m de lo contrario me ha funcionado a la perfeccion.

Amigo atricio en el curso de pic bsic pro hay un ejemplo de caraterizacion de tempetatura con el lm35 a tarves de comunicacion seril y labview te recomiendo que le heches un vistazo.


----------



## Meta (Sep 19, 2009)

Se puede usar sin el MAX232 o MAX233 con sólo un transistor BC547, 2N2222 y resistencias si quieres leer datos.


----------



## fiat600ts (Ene 15, 2011)

Estuve trabajando con el max 232 y aveces suelo tener problemas con uno de los drivers del mismo, ypara solucionarlo apelo a cambiar al otro driver y sale funcionando, no se porque pero para algunas aplicaciones si utilizo solo el driver 2 y el 1 lo dejo si utilizar no obtengo comunicacion, en estos casos cambio la conexxion al driver 1 dejando el 2 al aire y logro la comunicacion de ida y vuelta sin problemas alguien me puede explicar porque?


----------



## Biotech (Ene 17, 2011)

Pudiera estar dañado tu max232 ya que el uso de un driver u otro es indistinto. Yo lo uso mucho y nunca he tenido el problema que mencionas. Últimamente, lo que hace es implementar un circuito mediante resistencias y transistores, como se ha explicado bastante en el foro.


----------



## kmiz (Ene 17, 2011)

Si utilizas solo las resistencias sin el max232 piensa que debes invertir la señal.
En PBP por ejemplo ya te da la opcion de enviar invertido. Eso si debes comunicar por soft.


----------



## seramaco (Ene 24, 2011)

Buenas tardes, si alguien me pudiera ayudar con lo siguiente le agradeceria, he tenido problemas con el max 232 en el montaje real y en la simulacion de proteus, lo que estoy hacien do es comunicar un pic18f4550 con la pc para enviarle un dato al puerto B pero lo extraño es que como  proteus no necesita el max232 para la comunicacion entonces yo utilizo un elemento llamado compin que simula el puerto serial, yo le envio los datos desde matlab y el dato que envio es el dato recibido , es decir funciona  ala perfeccion(entonces el codigo del pic debe estar bien), pero al agregar el max232 a mi montaje le envio un dato y me sale otro, y lo peor es que en el montaje real no me funciona con el max y la verdad he leido que es necesario para la comunicacion ya que el pic maneja niveles ttl, yo le envio un dato desde la pc y me muestra otro en el puerto y siempre sigue mostrando el mismo, no se si es porque estoy utilizando un cable conversor usb, serial.

Otra cosita, yo simule el circuito de pablin en proteus y no me funciona, no se si es que le faltara algo para la simulacion.¿en real si funciona?

Gracias por sus respuestas


----------



## MerLiNz (Ene 26, 2011)

El tema de recepcion de datos incorrectos puede ser fallo de la sincronizacion/velocidad del puerto. A mi me paso, y era que puse 20mhz en el proyecto cuando estaba usando 4mhz. Has verificado esto?? tambien recuerda que debes tener la misma velocidad en receptor/emisor.


----------



## ericcabellos (Feb 4, 2016)

Amigos por favor su ayuda. uso el max232 y el pic16f877, simplemente los compré, los instalé según diagramas en internet con el puerto serial y una programación en visual basic .net. mi objetivo es prender y apagar 4 lets.
La pregunta es no solo consiste en comprar los chips sino hay que programarlos para que funcionen con un programa especial, esto muy aparte de la programación de visual basic para envio y recepcion de datos?.

Eso me dejo en jake, yo lo hice antes con el puerto paralelo, pero no tuve que hacer nada con los chips solo los instalé hice mi software y prendía y apagaba los leds. 

Ayuda gracias.


----------



## ricbevi (Feb 4, 2016)

ericcabellos dijo:


> Amigos por favor su ayuda. uso el max232 y el pic16f877, simplemente los compré, los instalé según diagramas en internet con el puerto serial y una programación en visual basic .net. mi objetivo es prender y apagar 4 lets.
> La pregunta es no solo consiste en comprar los chips sino hay que programarlos para que funcionen con un programa especial, esto muy aparte de la programación de visual basic para envio y recepcion de datos?.
> 
> Eso me dejo en jake, yo lo hice antes con el puerto paralelo, pero no tuve que hacer nada con los chips solo los instalé hice mi software y prendía y apagaba los leds.
> ...



Hola...Si; debes hacer un programa que hace funcionar al micro-controlador en el lenguaje que sepas para recibir los datos que enviás desde la PC.
En el foro hay ejemplos en varios lenguajes, utiliza el buscador. 
Saludos.

Ric.


----------



## Meta (Feb 4, 2016)

Hola:

Aquí les dejo un ejemplo de Visual Basic y Visual C++ de cómo hacerlo.
http://www.slideshare.net/Metaconta/manual-interfaz-con-vc-y-vb-para-puerto-serie-y-pic16f84a

Si usas Visual C# también.
http://www.slideshare.net/Metaconta/pic-rs232-puerto-serie-con-pic16f84a-presentation

Saludos.


----------

