Programador para PIC 16F84 y 16F87x

 

Proyecto: Programador para microcontroladores  PIC 16F8x , 16F6xx y 16F87x  de Microchip

Fecha : 25 de Setiembre de 2001 (Actualizado 6 de Mayo de 2011)

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, 16F87, 16F88, 14G627, 16F628, 16F648, 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.

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 se obtienen desde VR1 (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:

 

Software

 

PicProg está  preparado para programar los siguientes modelos de la familia de Microchip:

  • 16F84A

  • 16F87

  • 16F88

  • 16F627A

  • 16F628A

  • 16F648A

  • 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.  En el archivo ZIP  picprog-v4.zip se encuentran las instrucciones así como la DLL necesaria para su funcionamiento. 

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.

 

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

 

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

 


IMPORTANTE


  • Se debe desconectar la alimentación del programador antes de extraer o insertar el PIC en el zócalo para evitar daños al chip, así como también al puerto paralelo de la PC.
  • PicProg ha sido diseñado para trabajar con archivos Hexadecimales en formato Intel  INHX8M , si se intenta usar cualquier otro formato los resultados son impredecibles. Aunque en ningún caso es peligroso para el Chip o el Programador, simplemente el programa se cargará erroneamente o no llegará a cargarse.

 

.