Vous êtes sur la page 1sur 8

MICROPROCESADORES II

Ing. Mario de Jesús Martínez Sánchez

PRACTICA 2: PROCESO DE GRABACIÓN


Antes de nada hay que conectar el programador a uno de los puertos serie COM disponibles en la
computadora formando la estructura indicada en la figura 1-7. A continuación se inserta el microcontrolador
PIC en la base del programador respetando la correcta orientación del encapsulado.
Una vez que el programa está correctamente instalado, los pasos a seguir para trabajar con el IC-Prog 1.05C
son los siguientes. Es aconsejable que se vayan probando en la computadora según se va explicando:

1. Iniciar el programa ejecutando el archivo icprog.exe o pulsando sobre el icono correspondiente.


Conviene crear un acceso directo desde el escritorio de Windows para mayor comodidad.

2. La primen vez que lo ejecutamos entraremos en una pantalla de presentación de la que se sale
aceptando todas las opciones por defecto. Si se está trabajando con Windows 2000 o XP aparecerán
unas pantallas de error debido a que todavía no se ha configurado correctamente como se explica en
el apartado 1.7.4. Seguidamente aparece una pantalla en inglés, similar a la figura 1-8, donde se
presenta toda la información necesaria para programar el dispositivo. Esta pantalla posee, al menos:
• Un área de código (Program Code), donde se almacena la información a grabar. La
columna de la izquierda contiene la dirección física de memoria del dispositivo, (Address).
En el centro del campo se presenta el valor hexadecimal y la columna de la derecha
contiene la misma información en código ASCII.
• Un área de configuración (Configuration), donde se indica el valor de algunos parámetros
necesarios para la correcta grabación.

1
Figura 1- 1 Pantalla típica del IC-Prog

3. Para cambiar el idioma se debe seleccionar en el menú Setting > Options > Language y elegir el
idioma (figura 1-9).

Figura 1- 2 Elección del idioma


4. Configurar el hardware necesario para programar los microcontroladores PIC, es decir adaptar el IC-
Prog al programador utilizado, en el caso que nos ocupa un programador compatible con JDM. Para
ello hay que acceder al menú Ajustes > Tipo hardware, con lo que aparecerá la pantalla de la figura
1-10, en la que se debe elegir el tipo de programador como JDM y seleccionar el puerto serie
adecuado (COM1 o COM2), según lo tenga conectado en la computadora.

2
Figura 1- 3 Selección del programador

5. A continuación se debe seleccionar el dispositivo a grabar, en este caso el microcontrolador


PIC16F84A, en el menú Ajustes > Dispositivo > Microchip PIC > Más > PIC16F84A, tal como se
describe en la figura 1-11.

Figura 1- 4 Selección del microcontrolador

El nombre del dispositivo seleccionado aparecerá en una ventana de la barra de herramientas (figura
1-12). Pulsando en la flecha de la ventana se puede elegir cualquiera de los dispositivos soportados
por el software IC-Prog.

Figura 1- 5 El nombre del dispositivo seleccionado aparece en la ventana

6. Elegir el oscilador que va a utilizar el microcontrolador en cuestión (LP, RC, XT, HS). Para ello en
la ventana Oscilador se elige el tipo XT (oscilador a cristal de cuarzo) para los montajes que se
realizan en esta guía (figura 1-13).

3
Figura 1- 6 Selección del tipo de oscilador y de los bits de configuración

7. A continuación es necesario activar los Bits de configuración, que permiten seleccionar varias
configuraciones del dispositivo (figura 1-13). En la pantalla del IC-Prog se muestran tres:

• WDT (Watchdog Timer). Habilitación del Watchdog, cuyo significado se explicará


posteriormente. En aplicaciones sencillas se deshabilita.

• PWRT (Power-up Timer). Temporizador al encendido. En aplicaciones sencillas se activa.

• CP (Code Protect). Protección de código de programa. Cuando se programa la protección del


código, no es posible leer el contenido de la memoria, de tal manera que el código del programa
no se puede copiar, ni alterar, aunque si se puede volver a borrar completamente todo el
microcontrolador. En aplicaciones sencillas se suele deshabilitar.

8. El IC-Prog ya está en condiciones de proceder a la grabación de datos en el dispositivo insertado en


el programador. Para ello, en la pantalla de edición se escriben los datos del programa de control a
grabar. Por ejemplo, un programa de control para el circuito de la figura 1-2 que lea la información
proporcionada por los interruptores del puerto A y la visualice en los LEDs conectados al Puerto B
tendría el formato: “1683 0186 30FF 0085 1283 0805 0086 2805”, (el significado de estos
números hexadecimales se discutirá posteriormente).
Para poder escribir los números hexadecimales siga el procedimiento especificado en la figura 1–14

• Hacer doble clic

• Escribir el número
hexadecimal en esta
casilla

Figura 1- 7 Datos a grabar en el microcontrolador

4
Una vez escritos estos códigos, la pantalla de edición tendría el aspecto de la figura 1–14.
Posteriormente se explicará como cargar estos datos más eficazmente a partir de un archivo creado
con anterioridad, sin necesidad de teclearlo.

9. Para proceder a la grabación del chip basta con activar el menú Comando > Programar todo (figura
1-15) o bien pulsar la tecla de función F5. También puede pulsar sobre el icono correspondiente de la
barra de herramientas (rayo sobre chip). El chip comenzará a ser programado con los datos
cargados en el buffer activo.

Figura 1- 8 Comenzar a programar el PIC16F84A

10. El proceso de grabación se irá mostrando, tal como puede apreciarse en la figura 1-16a. El tiempo
empleado en la grabación del PIC dependerá de la rapidez de la computadora con que se esté
trabajando.

(a) (b)
Figura 1- 9 Pantallas que aparecen durante el proceso de programación y verificación

11. Una vez terminada la programación se procederá automáticamente a la verificación de los datos
escritos en el chip, informando de este proceso con una pantalla como la que se muestra en la figura
1-16b. De este modo, se asegura que la programación del dispositivo ha sido efectuada
correctamente.

En el caso de que la verificación haya sido correcta, se informará de tal hecho mediante una ventana
y el proceso de grabación habrá finalizado.

Si un microcontrolador está protegido contra la lectura de código, es decir tiene habilitada la opción
CP (Code Protect) del área de configuración (figura 1-20), los datos grabados no pueden ser leídos
en la fase de verificación y, por tanto, ésta no puede realizarse visualizando un error de verificación,
sin embargo la grabación puede haber sido realizada correctamente. Más adelante se explica como
evitar esta pantalla de error.

12. Una vez grabado el PIC16F84A se debe extraer del programador y comprobar su correcto
funcionamiento dentro del circuito correspondiente. En este caso el programa lo que hace es sacar

5
por el Puerto B el dato leído de las cinco líneas del Puerto A al que está conectado un arreglo de
interruptores. Esto se puede comprobar con el circuito de la figura 1-2.

Los datos grabados en el microcontrolador y la configuración se pueden salvar a un archivo utilizando el


procedimiento usual de Windows mediante la selección del menú: Archivo > Guardar como y poniendo al
archivo un nombre con extensión *.bin, por ejemplo Entrenador_01.bin

1.7.3 BUFFER DE ALMACENAMIENTO DE PROGRAMAS


El IC-Prog dispone de 5 buffers para guardar datos en memoria, cada uno de ellos puede almacenar bien el
contenido de un chip o de un archivo. Permite realizar diferentes operaciones con ellos, como programar un
chip, comparar su contenido, etc. El acceso a cada uno de estos buffers se hace mediante las pestañas que
aparecen en la parte inferior de la pantalla principal del IC-Prog (figura 1-17).

Figura 1- 10 Acceso a los buffers de datos

1.7.4 IC-PROG TRABAJANDO BAJO WINDOWS 2000 O XP


En caso de trabajar con los sistemas operativos Windows 2000, XP o NT, se debe tener en la misma carpeta
que el archivo ejecutable icprog.exe, el archivo icprog.sys para Windows XP. Este archivo se puede descargar
de la Web www.ic-prog.com . Además hay que activar la opción de Habilitar Driver NT/2000/XP, localizada
en el menú Ajustes > Opciones > Miscelánea (figura 1-18).

Figura 1- 11 Para Windows NT, 2000 y XP hay que "Habilitar Driver NT/2000/XP"

1.7.5 ERRORES FRECUENTES EN LA PROGRAMACIÓN


Cuando por alguna causa la programación no se realiza correctamente IC-Prog informa de ello mediante el
aviso oportuno. El error más frecuente en la programación de un PIC es el mostrado en la ventana de la figura
1-19, que informa de un error al verificar el contenido del chip en la dirección 0000h, que es la primera
posición de memoria de programa del mismo.
Este error suele estar motivado por algún fallo en la comunicación entre el ordenador y el programador, como
puede ser:
• La mala conexión del cable serie.

6
• La colocación errónea del PJC en el programador.
• La configuración incorrecta del puerto serie COM 1 o COM 2.
• Un chip defectuoso.
• Una configuración de la protección de código.

Figura 1- 12 Pantalla típica de error en la programación


Para solucionarlo se deben seguir tos pasos enumerados a continuación:
1. Asegurarse que no está seleccionada la protección de código CP en los bits de configuración (figura
1-20). Este es un error muy típico y en este caso el programa leería los 8 primeros bytes de datos
como ceros, avisando et error de verificación en la primera dirección.

Figura 1- 13 La protección del código puede ocasionar una pantalla de aparente error

Si desea mantener la protección de código y que no aparezca este error en la fase de verificación, es
necesario que la deshabilite. Para ello debe seleccionar el menú Ajustes > Opciones > Programación
y deshabilitar las dos casillas de verificación tal como se muestra en la figura 1-21.

Figura 1- 14 Si configura la protección del código, conviene deshabilitar la verificación

2. Una vez verificado que no ha elegido la opción de protección de código para programar el PIC puede
continuar con las siguientes comprobaciones:
• Revisar que el PIC se encuentra bien introducido en el zócalo del programador, con la
dirección del encapsulado correcto y sin ningún pin doblado o roto, lo que
desgraciadamente es frecuente.

7
• Verificar que el cable serie está bien conectado en sus dos extremos, tanto en el conector del
programador como en la computadora.
• Comprobar con un ohmetro que no hay ninguna conexión del cable rota.
• Debe asegurarse de que ha elegido en Ajustes > Tipo > Hardware, el tipo de programador
correcto (JDM) y el puerto COM adecuado.
• Comprobar que el dispositivo elegido es el que realmente está programando (PIC16F84A).

3. En caso de que ninguna de estas comprobaciones diera resultado se aconseja repetir la programación
con otro chip que esté en buen estado para poder descartar que el fallo esté en el software o grabador
y así asegurar que es el chip el que se encuentra en mal estado.

Cuando se trabaja en uno de los sistemas operativos Windows XP, Windows NT o Windows 2000, también se
puede dar la pantalla de error mostrada en la figura 1-22.

Figura 1- 15 Error típico para sistemas operativos Windows 2000, XPy NT

Este error indica que el sistema no puede acceder a los puertos de la computadora y por tanto tampoco al
grabador conectado a ellos, como se indicó anteriormente para solucionarlo se deberá instalar el archivo
icprog.sys en el mismo directorio que el archivo ejecutable icprog.exe y, además, activar la opción de
Habilitar Driver NT/2000/XP, que se encuentra en el menú Ajustes > Opciones > Miscelánea (figura 1-18).
Una vez habilitado este driver, el programa pedirá volver a iniciarse y, a partir de ese momento, ya estará
perfectamente preparado para realizar la programación de los dispositivos necesarios.

1.8 PRÁCTICAS DE LABORATORIO


Respetando el procedimiento descrito en este tema, realícese la grabación en el microcontrolador de los
programas que se indican y compruébese su correcto funcionamiento en el entrenador básico de la figura 1-2.

Ejercicio1_01.bin: Los diodos LEDs conectados al nibble bajo del Puerto B se apagan y los del nibble alto se
encienden. Los datos a grabar son (el significado de estos números hexadecimales se explicará
posteriormente):

1683 0186 1283 30F0 0086 2804

Ejercicio1_02.bin: El Puerto B, que actúa como salida, es controlado por el bit 0 del Puerto A, que actúa
como entrada. De manera tal, que:

• Si RA0 = 1, se encienden todos los LEDs de salida.


• Si RA0 = 0, se encienden sólo los LEDs del nibble alto.