Anda di halaman 1dari 8

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

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.

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 bsicamente todos tienen las mismas salidas, solo que en los modelos ms sencillos estas se ven reducidas. Pero a nivel programacin los pines son los mismos (solo que en distinta ubicacin en cuanto a nmero de pin). Lo ideal sera usar tres zcalos del tipo ZIF ( Insercin 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 zcalos comunes, los cuales dan un resultado bastante aceptable. Las distintas tensiones necesarias para la programacin y funcionamiento del PIC 16F8xx se controlan mediante VR1 (78L05) y VR2 (78L12). La alimentacin de entrada debe ser provista mediante una fuente externa que pueda entregar 15 a 17v de corriente continua y aproximadamente 100mA. La conexin 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 nmero de cada pin marcado al costado del mismo con lo que no es difcil su identificacin. A su vez y para mayor seguridad, en el circuito tambin se hace mensin al nombre que representa cada lnea 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 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 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 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:

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC


El ejemplo anterior corresponde a la configuracin para un PIC 16F84. En este caso se est indicando que no se usar Cdigo de Proteccin (CP), no se usar WatchDog (WDT), se usar Power Up Timer (PWRTE) y se usar oscilador a crital (XT). (segn nomenclatura de Microchip). En caso que el archivo Hexadecimal (.hex) no posea embebida la configuracin, esta podr ser realizada manualmente mediante el botn CONFIGURACION . As mismo PicProg tiene la capacidad de autodetectar el PIC instalado o bien tambin se puede realizar la seleccin 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 Cdigo de Proteccin (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 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

Errores: Consulta las Preguntas Frecuentes

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

16F84 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.

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.

Poner el PIC en Modo RUN


Esta funcin haced qued la lnea MCLR/VPP pase a 5v y por lo tanto el PIC salgo del modo Reset para pasar al modo de ejecucin normal. Est funcionalidad solo es til cuando se est usando la modalidad In-Circuit o bien se est trabajando en un diseo usando el PIC instalado en el Programador.

Programando Paso por Paso


A continuacin se detallan los pasos a seguir para realizar un proceso de grabacin normal: 1) Seleccionar el puerto LPT a usar mediante el men desplegable correspondiente. Si por algn motivo no se pudiese detectar el Hardware del programador, aparecer un mensaje en rojo indicando el error y se bloquearn todos los controles hasta tanto no se resuelva el problema. Generalmente la direccin 0x378 corresponde al LPT1 y 0x278 al LPT2. Pero en contados casos, puede darse que el LPT1 tenga la direccin 0x3BC, en cuyo caso el LPT2 asume la direccin 0x378. 2) Seleccionar el modelo de Microcontrolador que se desea programar. Esta funcin puede dejarse tambin en Autodetectar para permitir que PicProg lo detecte automticamente. 3) Ingresar el archivo Hexadecimal (.hex) que contiene el programa a descargar al PIC. Puede usarse el botn BUSCAR para encontrar el archivo a grabar o bien escribirlo directamente en la ventana. 4) Pulsar el botn CONFIGURAR para establecer la configuracin deseada para el PIC (Watchdog, Power Up Timer, etc). Todas las configuraciones estn por defecto seteadas para detectar estos parmetros directamente desde el archivo hexadecima (.hex), para que esto funcione se debieron haber colocado previamente en el cdigo fuente a fin de que el compilador genere el cdigo necesario en el archivo hexadecimal. En ese caso este punto puede ser salteado y pasar directamente al punto siguiente. 5) Pulsar el boton PROGRAMAR para iniciar la descarga hacia el PIC. Aparecer una ventana pidiendo confirmacin de los parmetros que se usarn en la programacin y, una vez aceptado, si todo ha funcinado correctamente, aparecer una ventana indicando la finalizacin del proceso.

Errores y Preguntas Frecuentes


Por qu PicProg no funciona con Windows NT ,Windows 2000 y Windows Xp? En esta nueva versin (2.0) ya estn soprtados NT, 2000 y XP. As tambin como los anterios 95 y 98. Intent descargar la ltima versin disponible desde nuestro sitio. Aparece el mensaje en rojo "Hardware no detectado" - Asegurece que el programador est conectado en el puerto paralelo seleccionado. - Intent seleccionando diferentes puertos, puede que la direccin que est seleccionando no sea la correcta. - Revise cudadosamente la contruccin del cable de conexin y sobre todo asegurese que los pines 11, 12, 13 y 15 del db25 macho estn conectados a GND (pines 18 a 25) como se indica en el circuito. Cuando intento programar me aparece un mensaje de error: "Direccin 0x0000 no pudo ser borrada" o "Error al programar Program Memory" o "Error al programar Data Memory" Este error se produce generalmente debido a que la tensin de programacin VPP en el pin MCLR (pin 4 en PIC 16F84 o 16F84A, y pin 1 en lo otros modelos). Realizar la siguiente prueba: - Sin cerrar la ventana de error, medir con un voltmetro la tensin presente en el pin MCLR. Esta debera ser de aproximadamente 13,2v. - De no ser as, medir en la salida del regular de voltaje VR2, donde la tensin debera ser tambin de 13,2v aproximadamente. - Si la salida del regulador es correcta, pero an as la tensin en MCLR es baja, se recomienda reemplazar los transistores Q1 y Q2 por BC547 o bien BC548 de otras marcas, ya que se han detectado BC548 que no responden correctamente. - En el caso que la tensin en MCLR sea correcta (13,2v) pero se sigue produciendo el error, entonce es muy comn que se deba a problemas en el oscilador a cristal X1. Este debe estar instalado lo mas cerca posible del micro y con sus dos capacitores C4 y C5 de 27pf c/u conectados entre cada terminal del cristal X1 y GND para funcionar correctamente, ya que el micro al entrar al modo programacin necesita correr un programa interno para lo cual necesita la seal de clock generada por este oscilador. No me detecta automticamente el PIC 16F84 Esto no es un error y es completamente normal, debido a que este modelo de PIC no tiene grabado internamente el byte leido para realizar esta operacin. Esta posibilidad si est habilitada en el 16F84A y dems modelos soportados por este programador. An no logras hacerlo funcionar Te recomendamos revisar todas las conexiones cuidadosamente e intentar armar el programador lo mas prolijamente posible, esto evita errores de construccin.

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.

Anda mungkin juga menyukai