You are on page 1of 11

Programador de

PIC’s.

Nombre: Ivo Ampuero Ríos.

Fecha: 10 – Diciembre – 2010.


Índice. Página

Introducción………………………………………………………………………………………
……………………………… 3

Programador
PIPO2…………………………………………………………………………………………………
………… 4

El
circuito………………………………………………………………………………………………
………………. 4

Diagrama
circuital………………………………………………………………………………………………
…. 5

Principio de
Funcionamiento………………………………………………………………………………….
6

Realización
práctica………………………………………………………………………………………………
.. 7

Uso del
programador………………………………………………………………………………………
…………………. 9

Bibliografía…………………………………………………………………………………………
……………………………… 10
Introducción.

El presente informe busca dar a conocer el trabajo práctico realizado, el


cual consistió en un cargador o programador de PIC’s. EL programador
realizado corresponde a la versión “PIPO2”, basado en la versión “Ludipipo”,
el cual tiene un principio de funcionamiento muy parecido al del “JDM2”.

A modo de introducción, y como ya es sabido, tenemos que un


microcontrolador es un circuito integrado programable que contiene todos los
componentes necesarios para controlar el funcionamiento de una tarea
determinada. Este dispositivo dispone de una memoria de programa interna
donde se almacena el programa que lo controla y que consiste realmente en
una serie de números hexadecimales.
El programa de control se graba en la memoria de programa mediante
un equipo físico denominado grabador o programador. El grabador se
conecta a un ordenador normalmente a través de un puerto serie COM1 o
COM2 mediante el cable de conexión adecuado (algunos grabadores utilizan el
puerto paralelo de la impresora). En el computador se ejecuta un software que
controla la grabación de la memoria de programa del microcontrolador. Este
proceso se denomina grabar o programar el microcontrolador.

Con respecto al grabador, vemos que es el equipo físico donde se


procede a grabar la memoria del microcontrolador con las instrucciones del
programa de control. Tiene un zócalo libre sobre el que se inserta el circuito
integrado a grabar, el cual debe orientarse adecuadamente siguiendo la señal
de la cápsula del chip. Como quien escribe pudo comprobarlo, en Internet
pueden localizarse múltiples grabadores, dentro de un rango de precios
bastante amplio, dentro de los cuales algunos pueden ser adquiridos a través
de la compra o sencillamente, como fue en mi caso, comprar los componentes
necesarios y montarlo físicamente.
Al insertar un chip en el programador, hay que cerciorarse de que todos
los pines o patillas del dispositivo estén rectos y que entren bien en el zócalo.
Hay que tener mucho cuidado porque estos pines se doblan y rompen con
extrema facilidad.

En relación al software de grabación, el ICProg es uno de los


software más populares para la grabación de microcontroladores PIC. Permite
la programación de muchos dispositivos y está probado en numerosos
programadores, entre ellos todos los compatibles con JDM. Es de libre
distribución y en la página web www.ic-prog.com se puede descargar y recoger
toda la información de uso.
Una vez descargado, la instalación de este software es muy sencilla,
basta con descomprimir el fichero icprog.zip y seguir el procedimiento usual en
Windows. Este archivo consta del fichero icprog.exe, que contiene todo el
código necesario para su funcionamiento con versiones para los sistemas
operativos Windows 95/98/NT/2000/ME/XP/VISTA. Para las cuatro últimas
versiones es necesario descargar el archivo icprog.sys de la misma web y
situarlo en la misma carpeta, junto con el icprog.exe.

Debido a que el lenguaje máquina utilizado por los microcontroladores


es difícil de utilizar por el hombre ya que se aleja de su forma natural de
expresarse, es por ello que se utiliza el lenguaje ensamblador, que es la
forma de expresar las instrucciones de una forma más natural al hombre y que,
sin embargo, es muy cercana al microcontrolador porque cada una de sus
instrucciones se corresponde con otra en código de máquina que el
microcontrolador es capaz de interpretar.
El lenguaje ensamblador utiliza nemónicos que son grupos de
caracteres alfanuméricos que simbolizan las órdenes o tareas a realizar con
cada instrucción. Los nemónicos se corresponden con las iniciales del nombre
de la instrucción en inglés, de forma que “recuerdan” la operación que
realiza la instrucción, lo que facilita su memorización.

El programa ensamblador es un software que se encarga de traducir


los nemónicos y símbolos alfanuméricos del programa escrito en ensamblador
por el usuario a código de máquina, para que pueda ser interpretado y
ejecutado por el microcontrolador.
El programa escrito en lenguaje ensamblador recibe la denominación de
código fuente, archivo fuente o fichero fuente. Suele tener la extensión
*.asm. El archivo fuente debe ser traducido a código máquina, de lo cual se
encarga el programa ensamblador. La mayoría de los ensambladores
proporcionan a su salida un fichero que suele tener la extensión *.hex. Este
fichero puede ser grabado en la memoria de programa mediante la utilización
de un grabador de microcontroladores.
El ensamblador más utilizado para los PIC es el MPASM, que trabaja
dentro de un entorno de software denominado MPLAB. Este entorno de
trabajo, que por lo demás fue utilizado por quien escribe para las pruebas al
cargar los PIC’s, es puesto a libre disposición de los usuarios por Microchip
Technology en su página web www.microchip.com.

Programador PIPO2.
El circuito.

Como se ha dicho en la introducción, este programador está basado en


el “Ludipipo”; y fue seleccionado para su construcción debido a su sencillez y
bajo precio (alrededor de $2500-.) y permite programar a través del puerto
serie de cualquier PC de sobremesa una cantidad considerable de PIC’s
distintos, y todo ello utilizando software de programación estándar, e nuestro
caso “ICProg 1.06A”.

En palabras del diseñador, se ha probado con éxito a programar los


siguientes PIC’s:

16F627, 16F628,
16C84, 16F83, 16F84,
16F873, 16F874, 16F876, 16F877.

[Los remarcados en negrita fueron probados por el autor del informe]

Y, al menos en teoría, el programador debería funcionar con los


siguientes:

16C62, 16C63, 16C64, 16C65, 16C66, 16C67,


16C71, 16C72, 16C73, 16C74, 16C75, 16C76, 16C77, 16C715,
16C620, 16C621, 16C622, 16C623, 16C624, 16C625,
16F870, 16F871, 16F872,
16C923, 16C924.

Diagrama Circuital.
Figura 1.

Principio de Funcionamiento.

En primer lugar, vemos en el esquema que la masa del puerto serie no


aparece conectada a la masa del programador, sino a VCC.

Con respecto al puerto serie, a nivel eléctrico, podemos apreciar que las
señales de este puerto no pueden considerarse como fuentes de tensión
ideales, porque no entregan una corriente ilimitada. Por el contrario, se
comportan como fuentes de +10 V o -10 V (aproximadamente) limitadas en
corriente. Por lo que si cortocircuitamos una de esas señales a masa (o sea, al
pin 5 del DB9), la corriente no superará unos pocos miliamperios.
Esta limitación es necesaria, ya que el puerto RS232 se pensó como un
puerto muy robusto, que permite incluso que se cortocircuiten señales sin
dañarse, y eso obliga a que el transceiver limite la corriente máxima de salida.
Por tanto, al colocar un zener inversamente polarizado entre una salida
del puerto serie y masa, ni el zener ni el puerto serie tienen por qué sufrir
daños, y el único efecto es que la tensión de esa señal respecto a masa queda
limitada a la tensión zener del diodo.

Hablando del circuito propiamente tal, en lo referido a su alimentación,


cuando en los pines 3, 4 o 7 del puerto serie la tensión es negativa respecto al
pin 5, los diodos D2, D4 o D3 quedan directamente polarizados, de manera que
en el ánodo de esos diodos aparece una tensión negativa respecto al pin 5. El
diodo zener D7 limita esa tensión a aproximadamente -5 V.
Por tanto, en esas condiciones, la masa del programador está a una
tensión de -5 V respecto al pin 5 del puerto serie. O sea, la masa del puerto
serie (pin 5) está a +5 V respecto a la masa del programador, y por tanto, la
tensión de todas las señales del puerto serie será 5 V superior respecto a la
masa del programador que respecto a la masa del puerto serie.

De esta manera, el pin 5 del puerto serie está ahora a +5 V, y por lo


tanto la puedo utilizar como alimentación para el PIC (VCC). En el resto de los
pines, ahora las tensiones posibles no son +10 V y -10 V, sino +15 V y -15 V.
Es muy necesario crear una masa virtual 5 V menor que la masa del
puerto serie, ya que para programar un PIC, necesitamos una señal VPP de +12
V, y en un puerto serie las señales positivas sólo alcanzan los +10 V. Haciendo
este “truco”, conseguimos tener señales de +15 V, con las que podemos
obtener +12 V para VPP.

También es importante notar, que todas las señales tienen algún diodo
conectado a su masa, de tal manera que cualquier señal negativa polariza
directamente su diodo, haciendo que la tensión no pueda ser inferior a -0.6 V.
Por tanto, de cara al circuito, las tensiones posibles de las señales son +15 V y
-0.6 V.
Con todo esto en mente, vemos que la señal VPP queda limitada a 12 V
por D5 Y LA SEÑAL Clock queda limitada a +5 V por D6. El conjunto T1-R1-R2-
D1 conforma una salida triestado, para convertir una señal de entrada y una de
salida salida (pines 8 y 4 del puerto serie, respectivamente) en una
entrada/salida (señal DATA del PIC).

Realización Práctica.

El diseño esquemático final aparece en la figura 2. Se ha utilizado la


respectiva placa de cobre, junto a los siguientes componentes:
1 R2 2K2
3 R1,R3,R4 10K
1 C2 1000U 25V
2 C1,C3 100N
4 D1,D2,D3, 1N4148
D4
1 D5 Zener 12V
2 D6,D7 Zener 5V
1 T1 BC547
1 CON1 Conector DB9 hembra
3 Z1,Z2,Z3 Zócalos de 40 pines
(recortado)

Figura 2.

Circuito Montado.

Figura 3.

Parte posterior.
Figura 4.

Diagrama de pistas.

Figura 5.

Para conectar el programador al PC hace falta también un cable serie.


Este cable fue fabricado por quien escribe, y va adjunto al trabajo práctico. La
figura 6 muestra las conexiones realizadas para la fabricación del cable.

Figura 6.

Uso del programador.


Primeramente, es muy importante tener siempre en consideración el
orden en que se deben ejecutar las acciones durante el proceso de cargar un
PIC usando el programador, para que no sufran daños tanto el programador, el
PIC ni el puerto serie del PC. Por lo que el procedimiento a seguir consta de los
siguientes pasos:

i. Con el programador desconectado insertar el PIC en el zócalo en la


posición correcta (Figura 7).

ii. Conectar el programador al cable que viene del puerto serie del PC.

iii. Llevar a cabo las operaciones de grabación o lectura necesarias.

iv. Desconectar el programador del cable que viene del puerto del PC.

v. Extraer el PIC del zócalo.

Figura 7.

Como ya se ha mencionado, se recomienda el uso del “ICProg 1.07A”,


el cual ya ha sido probado y funciona perfectamente con este programador. El
software se adjunta en el CD que viene junto al proyecto práctico.
Una vez instalado en el PC, en el menú SETTINGS – OPTIONS, en la
sección LANGUAGE elegimos ESPAÑOL. A continuación, en el menú AJUSTES
escogemos TIPO HARDWARE (se puede hacer directamente pulsando “F3”) y
aparece la ventana de la figura 8. Todas las opciones deben quedar como en la
figura 8, salvo en el puerto, que tendremos que elegir el que estamos
ocupando, o en su defecto, se elige automáticamente. Pulsamos OK para
finalizar.
Figura 8.

Luego de ello, sólo queda seleccionar el modelo de PIC con el cual vamos
a trabajar, y llevar a cabo las acciones deseadas. El programa trabaja igual con
ficheros *.bin o *.hex . Para grabar un PIC, abrimos el fichero mediante el menú
ARCHIVO y seleccionamos PROGRAMAR TODO con el menú COMANDO (o
pulsamos “F5”). Para leer un PIC, seleccionamos LEER TODO en el menú
COMANDO (o pulsamos “F8”) y luego podemos guardarlo en un fichero
mediante el menú ARCHIVO. Si lo desea, puede visitar la página de ICProg
para ver más instrucciones acerca del programa.

Bibliografía.

• “Microcontrolador PIC16F84, Desarrollo de proyectos”; 2004, Alfaomega


Grupo Editor S.A.

• http://213.97.130.124/progs/pipo2/pipo2.htm “Programador PIPO2”, José


Manuel García.

You might also like