Autor Tema: Conectar PIC a PC por puerto serial  (Leído 5160 veces)

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

Desconectado frankcr

  • PIC10
  • *
  • Mensajes: 36
Conectar PIC a PC por puerto serial
« en: 27 de Agosto de 2010, 16:19:28 »
Hola a  todos, quiero conectar un PIC 18F4550 a una PC por medio del puerto serie, yo se que tengo que poner un MAX232 o 233 en el intermedio, pero mi duda es si tengo que conectar las patillas del CTS y RTS a el PIC, o funciona normalmente sin control de flujo. Si alguien sabe donde hay un ejemplo para enviar y recibir caracteres por el puerto serie me lo puede postear, muchas gracias

Saludos cordiales

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: Conectar PIC a PC por puerto serial
« Respuesta #1 en: 27 de Agosto de 2010, 16:53:42 »
Hola amigo, para comunicar el PIC con el PC (a hyper-terminal por ejemplo o interfases visual basic) podrías hacerlo conectando sólo GND, TX y RX, los otros pines son opcionales, depende de la aplicación.

Acá en el foro hay muchos ejemplos al respecto.

saludos.

Desconectado BOSER

  • PIC10
  • *
  • Mensajes: 25
Re: Conectar PIC a PC por puerto serial
« Respuesta #2 en: 27 de Agosto de 2010, 17:02:47 »
Hola:

Yo trabajo con la serie 16F y no es necesario conectar CTS y RTS para el control de flujo. Solamente las patitas 2,3 y 5 del DB9 que son TX,RX y GND.

El control de flujo de datos lo tenes que hacer por software. En mi caso utilizo un buffer de transmisión y otro de recepcion de 8 bytes tranto en PIC como en visual basic. La transmisión al PIC comienza con un caracter de START, luego 5 bytes de datos, el septimo de control STOP y el octavo de CHKSUM. Cuando el PIC recibe los 8 datos verifica que el 1º sea START y el 7º STOP. Luego realiza un calculo de CHKSUM y si todo esta bien envía un byte ACK. El proceso para enviar del PIC al PC es igual.

Si no hay comunicacion o respuesta por algunos segundos, se detiene la transmisión. Si el caracter START o STOP están equivocados es porque la comunicación perdió un byte y estan desfasadas las transmsiones, entonces se transmite del PC a PIC 9 bytes en vez de 8, para que luego de algunas transmisiones coincidan el byte START y STOP en sus lugares correspondientes. Si el START y STOP estan correctos, pero el checksum no, se retransmite un par de veces mas, pero no deben ser demasiadas porque sino hay que informar en la pantalla que hay errores de transmision y detener el proceso.

Otro consejo: el PIC 16F877 y 887 tienen la posibilidad de modificar la memoria FLASH de programa mediante un bootloader. Éste es un pequeño programa de 100 instrucciones cargado al final del la página 3, que nunca se llega a utilizar. El Bootloader arranca con cada reset del programa y verifica que el puerto serie contenga los códigos de arranque para cargar el programa nuevo. Si no hay comunicacion, el bootloader salta a la direccion del programa que estas desarrollando. Este sistema permite utilizar el puerto Serie tanto para Bootloader como para comincar con la PC sin tener que levantar el PIC y reprogramarlo!!!!

Para poder utilizar el bootloader necesitás reiniciar el PIC apagandolo o mandando a masa MCLR. Una solucion sencilla a esto es conectar el pin MCLR a RTS a traves del max232. Si tenes un mouse viejo con ficha DB9, tenes en el mismo cable los cuatro hilos que conectan los pines TX,RX,GND y RTS solucionando el problema de fabricar un cable nuevo  :lol:

Espero que te sirva mi respuesta, Saludos


Desconectado frankcr

  • PIC10
  • *
  • Mensajes: 36
Re: Conectar PIC a PC por puerto serial
« Respuesta #3 en: 27 de Agosto de 2010, 17:37:17 »
Muchas gracias muchachos, voy a tomar en cuenta su solucion, lo probare y despues posteo lo que me paso... muchas gracias