Proyecto: Programador para microcontroladores PIC 16F84 y 16F87x de Microchip Fecha : 25 de Setiembre de 2001 (Actualizado 11de Noviembre de 2002) Autor: TodoRobot
Introduccin:
El propsito de este proyecto fue obtener un producto simple que nos permitiese programar los principales microcontroladores con memoria Flash de la firma Microchip. Por sus similitudes en la forma de programar nos decidimos a enfocarnos en los modelos 16F84, 16F84A, 16F870, 16F871, 16F872, 16F873, 16F874, 16F876 y 16F877. La variedad nos pareci aceptable, por lo que a fin de no complicar el diseo se descartaron los dems modelos. Dentro de la Web se pueden encontrar muchos sitios dedicados a estos microcontroladores, muy famosos entre los aficionados a la electrnica y la robtica debido a su bajo costo y grandes prestaciones.
Debido a que este circuito est pensado para poder ser usado In Circuit, el mismo podra perfectamente con algunos retoques poder ser incluido dentro de un desarrollo para evitar tener que extraer el chip para su programacin. Lo nico que se debe tener en cuenta es que en ningn momento el pin MCLR/VPP debe ser conectado directo a VCC, ya que al intentar programar se daaran los transistores Q1 y Q3 al quedar estos cortocircuitando VCC y GND. Otra posibilidad muy interesante sera proveer al programador con un conector de salida tipo bornera que permita tener acceso desde el exterior a todos los puertos del micro que se est programando. De esta forma sera muy til a la hora del desarrollo al permitirnos usar el micro sin necesidad de extraerlo del programador. En el documento salida.pdf se puede apreciar una idea para realizar el conector de salida antes comentado.
Software
PicProg est preparado para programar los siguientes modelos de la familia de Microchip: 16F84 16F84A 16F870 16F871 16F872 16F873 16F874 16F876 16F877
PicProg fue diseado para trabajar en entorno Windows 9x. En el archivo ZIP picprog-v2.zip se encuentran las
instrucciones as como la DLL necesaria para su funcionamiento. Debido a que Windows NT y Windows 2000 son algo limitados a la hora de permitirnos tomar control del hardware de la PC, este software no funciona en esos S.O. El programa PicProg fue diseado para leer la configuracin a aplicar al PIC directamente desde el archivo Hexadecimal. Esta configuracin es la que indicar si el PIC trabajar con Cristal (XT) o una celda RC, si se debe activar el WatchDog, etc. Para que esto sea as, esta configuracin se debe incluir dentro del cdigo fuente (ASM) antes de compilar el mismo como se puede ver a continuacin:
Circuito de prueba:
Una vez construido el programador, lo mejor es realizar las primeras pruebas con un proyecto sencillo con el cual se tenga la certeza de su buen funcionamiento y de esa manera nos demuestre que el PIC ha sido correctamente programado. Este programa puede ser el WALK.HEX, el cual genera un sencillo efecto de secuenciador entre cuatro LED's. En el siguiente diagrama se aprecia el circuito a utilizar con el programa WALK.HEX:
D1, D2, D3 y D4 son los LED's que, si todo funciona correctamente, se prendern secuencialmente hacia un lado y hacia otro. Una vez construido, el siguiente paso es grabar en el PIC el programa WALK.HEX , y si todo ha funcionado bien los LED's deberan comenzar a prenderse secuencialmente. Si deseas analizar el cdigo fuente de este programa pods descargar WALK.ASM
Recomendaciones:
En la pgina del fabricante Microchip, se puede encontrar gran cantidad de informacin necesaria para encarar cualquier proyecto con este microcontrolador. Ah mismo se puede descargar en forma gratuita el MPLAB, que es una estacin de diseo y depuracin para plataforma Windows, la cual les permitir realizar todos los desarrollos basados en los microcontroladores PIC. Una vez instalado el MPLAB, podremos hallar en C:\Archivos de programa\MPLAB\TEMPLATE\Code los template que servirn como base para comenzar a programar. Por ejemplo el template correspondiente al PIC 16F84A es f84atemp.asm
IMPORTANTE
Se debe desconectar la alimentacin del programador antes de extraer o insertar el PIC en el zcalo para
evitar daos al chip, as como tambin al puerto paralelo de la PC. PicProg ha sido diseado para trabajar con archivos Hexadecimales en formato Intel INHX8M , si se intenta usar cualquier otro formato los resultados son impredecibles. Aunque en ningn caso es peligroso para el Chip o el Programador, simplemente el programa se cargar erroneamente o no llegar a cargarse.
PicProg
Programador para PIC 16F8xx (Versin 2.0)
(c) TodoRobot - 2002 PicProg est Microchip: preparado para programar los siguientes modelos de la familia de
PicProg le permite Programar, Verificar y Borrar todos los modelos anteriormente detallados. El archivo Hexadecimal (.hex) a grabar debe ser formato Intel INHX8M. Este es el formato estandar generado por la herramienta de desarrollo MPLAB que puede descargarse gratis en el site de Microchip.
Programar
PicProg verifica antes y despus de grabar cada direccin. De esta forma se evita grabar el mismo dato ya grabado, prolongando la vida til de la Flash Memory. Y luego realiza la verificacin posterior al grabado para asegurarse que el dato ha sido grabado adecuadamente.
Verificar
Como se dijo en el punto anterior, PicProg realiza una verificacin al grabar cada direccin, por lo tanto no es necesario ejecutar este procedimiento luego de cada
programacin. Esta funcin es ms bien til cuando no se est seguro de cual es el programa que ha sido o tiene cargado un determinado micro.
Borrar
Esta funcin es solamente necesaria cuando el PIC ha sido programado con cdigo de proteccin (CP). En estos caso la nica forma de regrabar el micro es efectuando un borrado general. Est funcin borra la memoria de programa y la de datos.
IMPORTANTE
Antes de insertar o extraer un micro del zcalo de programacin, se debe tener la precaucin de retirar la alimentacin del programador, debido a que no se ha previsto ningn circuito de aislacin y podra resultar daado el chip o el puerto paralelo de la PC. As mismo es aconsejable no alimentar el programador hasta tanto el programa PicProg no haya sido ejecutado y se encuentre activo en pantalla.