Tutorial PIC UART

Después de un largo parón (por mi parte, ya que Alejandro subió ya algunos tutoriales al canal de youtube), en este nuevo tutorial mostramos como poder hacer una comunicación con el PC y el Pic, algo que muchos ya nos habéis preguntado últimamente. El tutorial se divide en tres partes como de costumbre. Teoría, explicación del codigo y ejemplo práctico.

En esta primera parte, podréis encontrar una breve explicación del concepto de funcionamiento de la Uart (explicación del bit de Start/Stop). Detalles a tener en cuenta como por ejemplo un fallo típico que tienen muchos al empezar a utilizar la comunicación con microcontroladores, es que conectan el tx(emisor) con tx(receptor) , cuando debería ser el tx(emisor) con Rx(receptor), en el caso de este tipo de comunicación asíncrona .
También aconsejamos a todos aquellos que desconocen la tabla ASCII a que leáis un poco sobre ella, la cual os ayudara a entender mejor el tutorial.
Y como no falta en ninguna explicación, es un repaso a la hoja de características, que nos explica a fondo el modulo interno, el cual como repito y seguiré repitiendo siempre, nunca debemos de dejar de mirar (en este caso usamos el datasheet del Pic 16f877).
Veremos el significado de los baudios (velocidad de trasmisión) y los bloques de trasmisión y recepción del modulo Usart.

Descarga: Código y Esquemático

Una vez comprendida la teoría, hay que pasarlo a la práctica. Explicamos un poco el código realizado mediante CSS, usando la configuración rápida gracias a la opción Wizard que nos facilita el compilador (aconsejable mirar después el código asociado a dicha configuración).

Y por último, la construcción del circuito expuesto en el esquemático y comprobación de que funciona correctamente.


Si surge alguna duda, no dudéis comentarla en el foro.

26 Comentarios

  1. juan garcia

    quisiera descargar el codigo de programar el puerto RS232, del tuturial q vi en youtube sobre encender LED con el PC y leer el valor del ADC gracias

  2. Twistx77

    Buenas,

    ya he puesto un Link en el post.

    Saludos!

  3. Moises| Gorgu

    hola, mm una pregunta, como se llama el convertidor usb serial que usas? cual es su numero de parte?

  4. Twistx77

    Buenas,

    yo tengo el que pone Virtual Village de esta página, http://shop.ebay.es/i.html?_nkw=ttl+usb&_sacat=0&_odkw=rs232+usb&_osacat=0&_trksid=p3286.c0.m270.l1313 pero cualquier otro de esos te sirve.

    También puedes hacértelo tu mismo, solo necesitas un integrado de FTDI que se llama FT232 http://www.ftdichip.com/Products/ICs.htm y algunos componentes.

    Saludos!

  5. juan garcia

    puedo usarlo asi tal y como esta para un pic 16f877a ? …. en caso que NO … podrian decrmie como modificarlo :S estoy teniendo problemas, y si tuvieran algun esquema de como montar el max232 … ya comprobado por ustedes de q funciona…. se los agradeceria 😀 gracias de todas formas 😀
    a por ultimo … rebice y a se refieren con q en la descarga viene un esquematico ?
    q pena las molestias
    hasta luego

  6. Twistx77

    Buenas,

    por lo genera es dificil que encuentres amplificadores que funcionen con esa tensión, puedes usar un conversor DC/DC para elevar la tensión de tu batería o poner dos baterías en serie pero no esperes demasiada potencia en cualquier caso.

  7. shinseiky

    buenas,

    tengo un problema y necesito que me ayuden, resulta que recien me estoy iniciando en ccs antes ya habia programado en asm y en mikro c pero bueno mi problema es que he hecho el mismo proyecto del tutorial pero con el pic18f4550 y bueno cuando lo simulo la interrupcion int RB0 me sale bien pero no me funciona la interrupcion del uart, el proteus me dice “LOGIC CONTENTIOS EN EL PIN RX ” osea como que hay un corto circuito pero en realidad no es asi, y eso no me deja que el programa funcione al 100 % ademas cuando compilo el programa me sale un warning :

    interrupts disabled during call to prevent re-entrancy (@PSTRINGC_9600_31766_31767)

    y nose si eso afecte tambien al programa. a ver si alguien me ayuda.

  8. Twistx77

    Buenas,

    en el problema que tienes no se cual puede ser el error, estás seguro de tus conexiones? En cualquier caso , no te puedes fiar 100% del proteus ya que es un simulador. Has probado a montarlo?

    El warning solo te dice que se están desactivando las interrupciones mientras hay una “llamada” es decir mientras que está en una interrupción para evitar que “reentre”.

    Saludos!

  9. dxtro

    buenas amigos. soy un navato en esto de los pics, y de la transmision serial pc. la cuestion es que estoy muestreando una señar de 100 hz y necesito envariarla al pc. entonces puedo muestrear desde 200 hz en adelate, elegi 1 ms (1 khz)., que tanto me limita si transmito a 19200 baudios?, al parecer estoy perdiendo informacion, puesto que no solo transmito la conversion, sino un par de caracteres mas. A cuantos baudios debo transmitir para no peder nadaa, y porque?

  10. Twistx77

    Buenas,

    para empezar ten en cuenta una cosa, dependerá si usas la conversión de 8 bits o 10bits del adc. Ya que si usas 10bits, necesitarás el doble de velocidad porque cada muestra son 2 bytes en vez de uno. Si has elegido 1K/Sample, tendrás que enviar 1000 bytes por segundo usando 8 bits sino, si usas 10bits 2000 bytes por segundo. Por lo tanto, si usas 19200bps ( lo cual es Baudios por segundo o bits por segundo) si divides 19200 por 8bits que tiene un byte, resulta una velocidad terica de 2400 Byte por segundo por lo cual teóricamente sería suficiente para incluso enviar dos bytes para el adc 10bits. Ahora si envias a parte de cada muestra, dos caracteres mas, serían 4000 bytes por segundo, con lo cual, necesitarás 4000 bytes x 8 bits = 32000bps minimo, con lo cual en teoría con una velocidad de 38400 sería suficiente pero si quieres estar seguro usa 57600bps.

    Saludos!

  11. HIEPPIEFUSARO

    Hola Soy novato en lo que a pic’s respecta (hace un mes no sabia ni lo que era XD), pues bien se que hay muchísimos diseños por ahi pero lo que me interesa es construir un programador de pic’s que realmente funcione (y que se consiga soft). Pues nose si esta en sus posibilidades hacer un tutorial a respecto o por lo menos dejar algún link con info precisa al respecto. Tengo 17 años estoy estudiando electrónica en en la secundaria y todo esto es realmente nuevo para mi, así que sus tutoriales me son imprescindibles. Desde ya muchísimas gracias por dedicar este espacio a todos aquellos a los que les guste la electrónica y por hacer todo en español XDD (Soy de Argentina). Weno sin mas que decir espero una respues y sino gracias de todas formas 😀

  12. antonio

    buena noche.. me gustaria que me ayudaras a programar desde el principio con un PIC..
    por favor 🙂

  13. Roberto (Publicaciones Autor)

    Hola antonio,

    En el blog, tienes algunos tutoriales básicos que te pueden ayudar.

    http://www.tutoelectro.com/tutoriales/microcontroladores/guia-pic/

    un saludo.

  14. ANDREA

    HOla mira, tengo que hacer un programa utilizando el puerto USBUART conectado a

    unos xbee, mi pregunta es que si lo puedo hacer en visual basic 6.0 tengo que mandar l

    los datos para que se inicie el circuito, para que se apague y que a determinada hora

    surga un evento, es posible hacerlo con timer del VB?? la verdad no tengo ni idea de como hacerlo por eso pense en VB y lo tengo que presentar dentro de 2 semanas :S

    muchas gracias 🙂

  15. Twistx77

    Comunicarte con el XBee, lo podrás hacer con VB supongo, yo nunca he trabajado con VB pero hasta donde se, posee, librerias para comunicación con el puerto serie. Con lo del timer no se a que te refieres y por eso no te puedo ayudar. Saludos!

  16. miguel

    ¿Cuantas veces se puede programar un PIC?, me refiero a cunatos proyectos puedo realizar con un pic si cargo y borro codigos??

  17. Twistx77

    Depende del pic, los que tienen flash no se si pueden tener 10,000 o 100,000 ciclos de escritura. En el datasheet lo pone.

  18. omar juarez

    hola en primera quiero darte las gracias ya que con tu tutorial ahora si comprendo y ya puedo mandar los datos por lo menos simulado en proteus. ahora quisiera pedirte de favor si pudieras subir el programa de terminal que ocupas ya que hasta ahora he visto que es el mas facil de usar de antemano muchísimas gracias y saludos desde México!!!!!!!!

  19. Twistx77

    Busca en google bray++ terminal y lo encontrarás. Saludos!

  20. omar juarez

    oye otro favorsote me podrias pasarl el esquematico ya que quisiera hacerlo por favor

  21. jhon

    podrias subir el esquematico por favor ya que no esta :/

  22. Rub

    Tienes el esquematico ? en el zip no viene

  23. luvhines

    Excelente amigo, los tutoriales son muy buenos, aunque seria genial que hicieras alguno sobe la comunicación SPI

  24. Zai

    Hola que tal ,disculpen, perdón por la pregunta pero en donde está el esquemático?
    no lo encuentro, en la carpeta UART solo vienen los archivos del compilador. 🙁
    Muchas gracias.

  25. Twistx77

    Mira el segundo vídeo minuto 6. Saludos

  26. Zai

    Eres la onda Twistx77!!
    Gracias!!! 😀 😀
    Saludos!!

Dejar un comentario