Programador para PIC 16F84 y 16F87x

Programador para PIC 16F84 y 16F87x Proyecto: Programador para microcontroladores PIC 16F84 y 16F87x de Microchip Fecha

Views 66 Downloads 25 File size 154KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Programador para PIC 16F84 y 16F87x Proyecto: Programador para microcontroladores PIC 16F84 y 16F87x de Microchip Fecha : 25 de Setiembre de 2001 (Actualizado 11de Noviembre de 2002) Autor: TodoRobot

Introducción: El propósito 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 diseño se descartaron los demás modelos. Dentro de la Web se pueden encontrar muchos sitios dedicados a estos microcontroladores, muy famosos entre los aficionados a la electrónica y la robótica debido a su bajo costo y grandes prestaciones.

Circuito del programador: En el documento picprog-circuit.pdf podemos apreciar el circuito a utilizar. Si observamos el circuito, se pueden apreciar los tres posibles encapsulados que se pueden hallar dentro de los modelos soportados por este programador ( PIC 16F8xx ). A pesar de sus diferencias, se puede ver que básicamente todos tienen las mismas salidas, solo que en los modelos más sencillos estas se ven reducidas. Pero a nivel programación los pines son los mismos (solo que en distinta ubicación en cuanto a número de pin). Lo ideal sería usar tres zócalos del tipo ZIF ( Inserción Cero ) para los tres modelos de encapsulado, es decir: 2x 9, 2x 14 y 2x 20. En caso que el presupuesto sea muy ajustado, se puede recurrir al uso de zócalos comunes, los cuales dan un resultado bastante aceptable. Las distintas tensiones necesarias para la programación y funcionamiento del PIC 16F8xx se controlan mediante VR1 (78L05) y VR2 (78L12). La alimentación de entrada debe ser provista mediante una fuente externa que pueda entregar 15 a 17v de corriente continua y aproximadamente 100mA. La conexión al puerto paralelo de la PC se debe realizar mediante un conector db25 macho y respetando el conexionado indicado en el circuito. Estos conectores traen el número de cada pin marcado al costado del mismo con lo que no es difícil su identificación. A su vez y para mayor seguridad, en el circuito también se hace mensión

al nombre que representa cada línea a usar en el LPT. En la siguiente figura se puede apreciar el pinout correspondiente al puerto paralelo de la PC:

Debido a que este circuito está pensado para poder ser usado In Circuit, el mismo podría perfectamente con algunos retoques poder ser incluido dentro de un desarrollo para evitar tener que extraer el chip para su programación. Lo único que se debe tener en cuenta es que en ningún momento el pin MCLR/VPP debe ser conectado directo a VCC, ya que al intentar programar se dañarían los transistores Q1 y Q3 al quedar estos cortocircuitando VCC y GND. Otra posibilidad muy interesante sería 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 sería 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 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.

PicProg fue diseñado 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 diseñado para leer la configuración a aplicar al PIC directamente desde el archivo Hexadecimal. Esta configuración 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 configuración se debe incluir dentro del código fuente (ASM) antes de compilar el mismo como se puede ver a continuación:

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC El ejemplo anterior corresponde a la configuración para un PIC 16F84. En este caso se está indicando que no se usará Código de Protección (CP), no se usará WatchDog (WDT), se usará Power Up Timer (PWRTE) y se usará oscilador a crital (XT). (según nomenclatura de Microchip). En caso que el archivo Hexadecimal (.hex) no posea embebida la configuración, esta podrá ser realizada manualmente mediante el botón CONFIGURACION . Así mismo PicProg tiene la capacidad de autodetectar el PIC instalado o bien también se puede realizar la selección manualmente.

Utilizando el software PicProg: Para ejecutar el software, simplemente se debe debe hacer click sobre el ejecutable PicProg.exe o bien crear un acceso directo al mismo. Una vez cargado, el funcionamiento es muy simple y se encruentra explicado en la ayuda provista con el mismo. Es importante aclarar que no es necesario borrar el PIC antes de reprogramarlo, ya que PicProg verifica cada sector de memoria a programar y solo regraba aquellos que son diferentes al actual. De esta manera se favorece la vida útil de la memoria Flash del PIC. Por consiguiente solo es recomendable el borrado total cuando se debe regrabar un micro que fue grabado anteriormente utilizando Código de Protección (CP).

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 prenderán 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 deberían comenzar a prenderse secuencialmente. Si deseas analizar el código fuente de este programa podés descargar WALK.ASM

Errores: Consulta las Preguntas Frecuentes

Recomendaciones: En la página del fabricante Microchip, se puede encontrar gran cantidad de información necesaria para encarar cualquier proyecto con este microcontrolador. Ahí mismo se puede descargar en forma gratuita el MPLAB, que es una estación de diseño y depuración 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 servirán como base para comenzar a programar. Por ejemplo el template correspondiente al PIC 16F84A es f84atemp.asm.