0
Manual de usuario
Grabador/Depurador en circuito de dispositivos PIC
GM PICPROGRAM v1.0 ‐ Manual de usuario
INDICE GENERAL 2
1 INTRODUCCION
2 CARACTERISTICAS GENERALES
2.1 Especificaciones del GM PICPROGRAM v1.0
2.2 Estructura de la tarjeta GM PICPROGRAM v1.0
3 DESCRIPCION
3.1 Puerto USB
3.2 Leds de señalización
3.3 Conector ZIF 40 pines
3.4 Conector ZIF 20 pines
3.5 Jumper T/B
3.6 Terminal ICD2
3.7 Terminal ICSP
3.8 Botón de Programado
3.9 Zócalos EEPROM
4 EL ENTORNO DE DESARROLLO MPLAB‐IDE
4.1 Menú principal
4.2 Selección de dispositivo
4.3 Selección del grabador
4.4 Ficheros HEX y buffers de memoria
4.5 Funciones más comunes del grabador
4.6 Iconos de grabación
5 EL SOFTWARE DE GRABACION Pickit‐2
5.1 Descripción del Software
5.2 Instalando el Software
5.3 Selección de dispositivo
5.4 Importar un fichero HEX
5.5 Grabación del dispositivo
5.6 Verificando el dispositivo
5.7 Lectura del dispositivo
5.8 Borrado del dispositivo
5.9 Verificando el borrado
5.10 Procedimiento automático de lectura/escritura
6 EL MODO DEPURACION
6.1 Seleccionando el dispositivo
6.2 Seleccionando el depurador
6.3 Funciones mas comunes en la depuracion
6.3.1 Clear Memory
6.3.2 Run
6.3.3 Animate
6.3.4 Halt
6.3.5 Step Into
6.3.6 Step Over
6.3.7 Step Out
INDICE GENERAL 3
6.3.8 Reset
6.3.9 Breakpoints
6.3.10 Advanced Breakpoints
6.3.11 Program
6.3.12 Read
6.3.13 Read EEDATA
6.3.14 Connect
6.3.15 Download OS
6.3.16 Settings
6.4 Iconos empleados en la depuración
7 DISPOSITIVOS ADMITIVOS POR GM PICPROGRAM v1.0
7.1 Modo Grabador
7.2 Modo Depurador
1 INTTRODUCCION 4
RESENTACIO
1.1 PR ON
GEELMED S.R..L. Ingenieríía & Serviciios
preesenta el nuevo Grabador y
Depurador GM PICPROGRAM v2.61
parra la grabación y deepuración en
circcuito de disspositivos PIC de la línea
Microchip, se trata de un hardwaare
meejorado y dee bajo costo diseñado paara
su conexión directa a la PC C en donde se
reaalizan las tareas
t de grabación
g y
y/o
depuración de los program mas.
Fig. 1
GM
M PICPROG GRAM v2.61 1 presenta el hardwaree y el firmwware compaatibles con el
sistem ma PICkit2 de microchip p, lo cual nos permite utilizar como o entorno dee desarrollo el
conocido software e MPLA‐IDEE desde el cu ual se realizaran todas las operacio ones típicas de
edición, ensamblaado, depuraación y grab bación de un
u programaa fuente asíí también Ud.
U
podrá emplear el software dee grabación P PICkit2.
Estas dos he
erramientas así como el firmwaree de nuestro grabador pueden ser s
descarrgadas y actualizadaas desde la página oficial de d Microch hip Co. Lttd.
(www.microchip.ccom). Las prruebas realizadas así co omo las refeerencias quee aparecen en
este m manual, se hiicieron con las siguientees versiones de softwaree:
‐ MPLA AB‐IDE v8.46
‐ PICkiit‐2 v2.61
La característiica más sobresaliente ddel grabadorr GM PICPRO OGRAM v2.61 (ver Fig. 1)
es su iinterface USSB‐PC y sus ddistintos tipoos de conexión (ZIF sockket 8‐20/28‐4 40 pines, ICSSP,
ICD2) a la hora de e grabar un PIC lo que representa aa diferencia de sus pred decesores una
interfaaz más accessible y rápida a la hora d de programaar un microcontrolador.
En
n fin dispone
emos de unaa potente y vversátil herraamienta de hardware grracias a la cu ual
no solo grabamoss el controlador sino que
q también n nos permiite, en fase de diseño, la
depuración en tie empo real y
y la puesta a
a punto de los program mas de apliccación. Para el
prograamador GM PICPROGRA AM v2.61 se convertiráá en una heerramienta imprescindib ble
para q que lleve ade
elante aplicaaciones basaadas en el mundo de miccrocontrolad dores PIC.
2 CARACTERISTICAS GENERALES 5
2.1 ESPECIFICACIONES DE GM PICPROGRAM v2.61
‐ Soporta aplicaciones de la familia de microcontrolador PIC.
‐ Conexión con la computadora a través de puerto USB.
‐ Utiliza la fuente de alimentación directa desde el puerto USB.
‐ Puede programar a través de la herramienta de ZIF socket (8‐20/28‐40 pines).
‐ Puede programar a través del terminal ICSP (In‐Circuit Serial Programming)
‐ Puede programar/depurar a través del terminal ICD2 (In‐Circuit Debugger 2)
‐ LEDs de señalización para mostrar el estado de operación.
‐ Puede programar directamente mediante el botón PROGRAMAR.
2.2 ESTRUCTURA DE LA TARJETA GM PICPROGRAM v2.61
2 3 4
5
1
6
9 8 7
Fig. 2
3 DESCRIPCION
N 6
3.1 PUUERTO USB
Es el tterminal parra conectar la PC con el ggrabador GM
M PICPROGR
RAM v2.61
Fig. 3
3.2 LEDS DE SEÑA
ALIZACIÓN
Muesstra el estado o de operación del grabador POWER,
TARG GET, BUSY.
BUSY Y: Se trata de un LED rojo parra mostrar el
funcioonamiento een estado de programador. Estará en
ON cuando el prrograma se está ejecutaando, como la
lecturra/escritura de la memoriaa Flash del d
micro ocontroladorr PIC.
TARG GET: Es un LEED amarillo q
que muestraa el estado de
la alim
mentación del grabador.
POWER: Es un LEED verde quee muestra la alimentación
de la tarjeta.
Fig. 4
3.3 COONECTOR ZIFF 40 PINES
‐ Sopoorte para M
Microcontrolladores PIC desde 28 p
pines
hasta 40 pines tippo DIP.
‐ Colo
ocar la parte superior d
del PIC commo se muestrra en
la figura.
‐ Unaa vez colocado el PIC assegurar el mmismo bajand do la
palancca.
NOTA:: El conector ZZIF soporta m microcontroladores de la gama
media standard, verr dispositivos soportados a al final de este
al. Fig. 5
tutoria
3 DESCRIPCION 7
3.4 CONECTOR ZIF 20 PINES
‐ Soporte para Microcontroladores PIC desde 8
pines hasta 20 pines tipo DIP.
‐ Colocar la parte superior del PIC como se muestra
en la figura.
‐ Una vez colocado el PIC asegurar el mismo bajando
la palanca.
NOTA: El conector ZIF soporta microcontroladores de la
gama media standard, ver dispositivos soportados al final
de este tutorial.
Fig. 6
3.5 JUMPER T/B
Empleado para seleccionar el suministro de energía a los Puertos ICD2 e ICSP de nuestro
grabador. El GM PICPROGRAM v2.61 puede grabar los programas directamente poniendo el PIC
en el CONECTOR ZIF correspondiente, y mediante los puertos ICSP e ICD2 usted podrá
interconectar el grabador con su circuito de pruebas (Breadboard) o con una tarjeta de
microcontroladores (Targetboard) según se requiera programación o depuración.
El JUMPER T/B sirve para controlar y variar la tensión que se suministra al puerto ICSP
e ICD2 para nuestro grabador.
T
B
Fig. 7
‐ Cuando se desee grabar el microcontrolador directamente en el CONECTOR ZIF, se
deberá ajustar el JUMPER T/B a la posición “T” para que la tensión de alimentación sea la
tensión del terminal USB +5V.
‐ Cuando se desee grabar y/o depurar el microcontrolador mediante los puertos ICSP o
ICD2, se deberá ajustar el JUMPER T/B a la posición “B” para que la tensión de
alimentación sea la tensión ajustada mediante el software PICkit2 de Microchip
(www.microchip.com).
3 DESCRIPCION 8
3.6 TERMINAL ICD2
Es un puerto de señal para programación, conforme a la norma ICD2 (programmer suit
and debugger of Microchip Co. Ltd.) este terminal es un depurador en circuito, lo que lo
convierte en una herramienta fundamental para el diseño y puesta a punto del programa
de aplicación del usuario.
1 2
Fig. 8
El terminal ICD2 es un conector tipo RJ11 como se muestra en la figura, la patilla N°1
es la primera de la izquierda.
N° PIN SEÑAL DESCRIPCION
1 MCLR/Vpp Señal Vpp de grabación
2 VDD Alimentación +VDD
3 GND Tierra de alimentación
4 PGD Señal de datos
5 PGC Señal de reloj
6 NC No conectada
El conector transporta las señales propias de grabación PGC, PGD, GND, VDD y Vpp,
distribuidas como se muestra en la siguiente tabla, gracias a estas señales se puede
realizar, mediante la conexión apropiada, la depuración no solo con módulos de
emulación, sino que también se puede conectar con cualquier tarjeta de evaluación o de
aplicación diseñada por el usuario, siempre y cuando se hayan previsto en el diseño el
hardware correcto.
3.7 TERMINAL ICSP
Es un puerto de señal para programación al igual que el puerto
ICD2 pero su terminal posee un arreglo diferente ya que usa un
conector de 6 pines el cual se emplea para conectar el grabador con
un circuito de pruebas (Breadboard) que no posea un conector
ICD2.
Fig. 9
3 DESCRIPCION 9
3.8 BOTÓN DE PROGRAMADO
Puede grabar el microcontrolador con solo
presionar este botón el cual es equivalente a
hacer clic en el software PICkit2 de Microchip.
Usted podrá usar esta función configurando el
software PICkit2 de la siguiente forma:
Fig. 10
MenuÆ Programmer y seleccione la opción “Write on PICkit Button” como se
muestra en la figura a continuación.
Fig. 11
3.9 ZOCALOS EEPROM
GM PICPROGRAM v2.61 cuenta con dos zócalos los cuales permiten la programación
de microcontroladores mediante la herramienta Pickit2 Programmer To‐Go (Programar sin
PC).
Fig. 12
El proceso de lectura/escritura también se realiza a través del puerto ICSP del GM
PICPROGRAM v2.6 según el tipo y configuración de memoria
NOTA: Ver las familias de memorias EEPROM seriales soportadas por GMPICPROGRAM v2.6 al
final de este tutorial.
4 EL ENTORNO DE DESARROLLO MPLAB‐IDE 10
4 .1 MENU PRINCIPAL
La instalación de MPLAB‐IDE es totalmente intuitiva y automática por lo cual creemos
no supone ninguna complicación para el usuario, bastara con seguir paso a paso las
instrucciones que se presentan. En la figura se muestra la pantalla principal de MPLAB‐IDE
la cual nos servirá para realizar una breve descripción de las opciones del menú principal.
Fig. 13
File Contiene todas las opciones y comandos relacionados con el manejo de ficheros:
abrir fichero, salvar fichero, imprimir, importar, exportar, etc.
Edit Contiene todas las opciones y comandos tipicos de cualquier editor de texto: buscar,
buscar y sustituir, cortar, pegar, marcar, etc.
View Con esta opción podemos abrir, visualizar y organizar sobre el aérea de trabajo
diferentes tipos de ventanas relacionadas con el PIC seleccionando: memoria de
programa, memoria de datos, registros especias, EEPROM, etc.
Project Presenta todos los comandos y opciones relacionados con los proyectos: abrir
proyecto, cerrar, salvar proyecto, ensamblar y/o compilar, etc.
Debugger Presenta comandos y utilidades propios de la depuración de un programa de
aplicación: seleccionar herramienta de depuración/emulación (simulador, ICE200, ICD2 y
otros), ejecución, ejecución paso a paso, puntos de ruptura, reset y mucho mas. En el
apartado 6 se expone el funcionamiento del MPLAB‐IDE como depurador con nuestro GM
PICPROGRAM v2.61
Programmer Presenta comandos y utilidades propios de la grabación del programa sobre
la memoria física del PIC: seleccionar grabador (PIC START PLUS, PROMATE y otros).
Seleccionaremos el PICkit2 que es compatible con nuestro grabador GM PICPROGRAM
v2.61. Desde este menú disponemos también de los comandos para leer un PIC, grabarlos,
verificar, borrarlo, etc.
4 EL ENTORNO DE DESARROLLO MPLAB‐IDE 11
Tools Mediante este menú se accede a una serie de utilidades y herramientas software
que, en sucesivas versiones de MPLAB‐IDE, van apareciendo.
Configure Permite realizar diferentes tareas de configuración: seleccionar modelo de PIC,
ajustar su palabra de configuración e identificación, realizar ajustes del propio entorno
MPLAB‐IDE.
Windows Selecciona diferentes formas de visualización de las distintas ventanas que
podemos visualizar sobre el aérea de trabajo.
Help Contiene un completo sistema de ayuda general (en ingles) para el MPLAB‐IDE.
4.2 SELECCIÓN DE DISPOSITIVO
Una vez que el MPLAB IDE esta
en ejecución, una de las primeras
tareas a realizar será seleccionar el
modelo de PIC con el que vamos a
trabajar que en nuestro caso será el
PIC16F877A. En el menú principal
seleccionamos: Configure Æ Select
Device.
Aparece una ventana como la
mostrada en la figura. En el menú
desplegable “Device” seleccionamos
el modelo de PIC, el PIC16F877A en
el ejemplo, y automáticamente
veremos un resumen de
herramientas tanto hardware como
software que el MPLAB es capaz de
soportar con el modelo recién
seleccionado.
Fig. 14
Las señales de color verde indican herramientas disponibles. Las rojas representan a
herramientas no disponibles en el MPLAB IDE para el dispositivo seleccionado. También
pueden aparecer señales amarillas que indican que la herramienta en cuestión se
encuentra en fase de testeo y no es definitiva. En el ejemplo se selecciono el PIC16F877A
observando la figura anterior podemos observar que herramientas se pueden emplear el
MPLAB con dicho modelo. Cabe destacar que entre ellas se encuentra el
Grabador/Depurador PICkit2 que, como hemos venido repitiendo es totalmente
compatible con nuestro GM PICPROGRAM v2.61
4 EL ENTORNO DE DESARROLLO MPLAB‐IDE 12
4.3 SELECCIÓN DEL GRABADOR
Seleccionado el dispositivo en este caso PIC16F877A y conectado nuestro GM
PICPROGRAM v2.61 a la PC mediante el cable USB, escogemos el tipo de grabador que
vamos a emplear. En el menú principal seleccionamos: Programmer Æ Select Programmer
y aparecerá un menú desplegable como el que se muestra en la figura y escogemos
PICkit2.
Fig. 15
Inmediatamente el MPLAB trata de establecer conexión con nuestro GM
PICPROGRAM v2.61 (Compatible con PICkit2). Si todo salió bien, nos debe aparece en la
ventana “Output” una serie de mensajes como los mostrados en la figura, los cuales nos
indican que se ha localizado el PICkit2, la alimentación es de 4.99V y que el PICkit2 se
entra listo y conectado.
Fig. 16
Si en PIC inserado en el zocalo ZIF es el elegio el MPLAB mostrara un mensaje
“PIC16F877A found” indicando que dicho PIC ha sido identificado. En caso de que el PIC
no estuviera insertado en el zocalo ZIF, aparecera un mensjae “PKWarn0003: Unexpected
divece ID: Please verify that a PIC16F877A is correctly installed in the application.(Expected
ID = 0xE00, ID Read = 0x0)”. Esto nos recuerda que debemos insertalo para poder
proceder con las operaciones propias del grabador.
4 EL ENTORNO DE DESARROLLO MPLAB‐IDE 13
4.4 FICHEROS HEX Y BUFFERS DE MEMORIA
Los ficheros .HEX son los que se obtienen tras el proceso de ensamblado o compilado
de un programa fuente y cuyo contenido se grabara en las diferentes memorias del
microcontrolador. Efectivamente, el contenido de un fichero .HEX puede estar compuesto
de tres tipos de información que irán a parar a sus correspondientes regiones de
memorias dentro del microcontrolador.
‐ Memoria de Programa. Contiene el código hexadecimal de las instrucciones del
programa que el controlador debe ejecutar.
‐ Memoria de datos. Contiene información adicional o datos que se grabaran en la
memoria EEPROM de datos del controlador.
‐ Memoria de Configuración. Contiene información sobre la configuración del controlador
y valores de identificación.
El MPLAB IDE dispone de otros tantos buffers de memoria, cada vez que se ensambla
o compila un programa fuente se genera el correspondiente fichero .HEX y esos buffers se
llenen con el resultado hexadecimal de ese ensamblado de forma que, posteriormente,
puedan copiarse o grabarse sobre la memoria física del PIC.
Mediante el comando File Æ Import también es posible importa ficheros .HEX
procedentes de otras fuentes distintas a las generadas por el MPLAB IDE. Sea como fuere,
cada vez que se abres un fichero .HEX los tres buffers de memoria del MPLAB IDE se llenan
con sus correspondientes contenidos: memoria de datos y configuración, para su
posterior grabación sobre el PIC. Los buffers del MPLAB también se pueden llenar
manualmente con contenidos hexadecimales, mediante los correspondientes comandos:
‐ ViewÆ Program Memory: Permite visualizar y modificar el contenido del buffer
correspondiente a la memoria de programa.
‐ ViewÆ EEPROM: Permite visualizar y modificar el contenido del buffer correspondiente
a la memoria EEPROM de datos.
‐ ConfigureÆ Configuration Bits: permite visualizar y modificar los bits de configuración
del buffer correspondiente a la memoria de configuración.
‐ ConfigureÆ ID Memory: Permite visualizar y modificar los datos ID de identificación del
buffer correspondiente a la memoria de configuración.
Una vez obtenido el fichero .HEX los tres buffers de memoria del MPLAB IDE
contendrán la información necesaria que deberá grabarse en las memorias del
controlador, tal y como veremos a continuación.
4 EL ENTORNO DE DESARROLLO MPLAB‐IDE 14
4.5 FUNCIONES MÁS COMUNES DEL GRABADOR
Cuando se ha seleccionado el tipo de
grabador (PICkit2) y se ha realizado la
conexión con él, se activan todas las opciones
que se encuentran en el menú “Programmer”
y que son propias de un típico grabador. Ver
la figura.
La primera opción, “Select Programmer”,
se empleo anteriormente para seleccionar el
tipo de grabador que vayamos a emplear. En
nuestro caso seleccionamos el PICkit2 que es
compatible con nuestro GM PICPROGRAM
v2.61, a continuación se detallan las opciones
restantes.
Fig. 17
Program:
Realiza el proceso de grabación propiamente dicho, copia los contenidos de la
memoria de programa memoria de datos y memoria de configuración actual de los buffer
del MPLA IDE, sobres las correspondientes memorias físicas del controlador.
Read:
Lee los contenidos actuales de las memorias de programa, datos y configuración del
controlador y los deposita sobres los correspondientes buffers del MPLAB IDE.
Verify:
Verifica que los contenidos actuales de las memorias de programa, datos y
configuración sean idénticos a los contenidos de los correspondientes buffers del MPLAB
IDE.
Erase:
Borra todo el contenido actual de las memorias del controlador.
Blank Check:
Comprueba que las memorias del controlador estén borradas.
Read EEDATA:
Lee el contenido de la memoria EEPROM de datos del controlador y los deposita sobres
el correspondiente buffer del MPLA IDE.
Connect:
Restablece de nuevo la conexión con el grabador seleccionado, en nuestro caso el
PICkit2.
4 EL ENTORNO DE DESARROLLO MPLAB‐IDE 15
Download OS:
Actualiza el firmware interno del PICkit2 (PICPROGRAM v2.61). Esta operación puede
ser necesaria cuando se descargue una versión actualizada del propio MPLAB IDE.
Release from Reset:
Esta opción pone a nivel “1” lógico la patilla MCLR del microcontrolador.
Hold in Reset:
Esta opción pone a nivel “0” lógico la patilla MCLR del microcontrolador.
Settings:
Con esta opción se abres una ventana similar a la mostrada en la Fig. 17 que permite
activar o no una serie de procesos. En la pestaña “Settings” hemos elegido los dos que
consideramos más importantes:
‐ Connect on startup. Cada vez que se selecciona el programador PICkit2 (GM
PICPROGRAM v2.61) se produce automáticamente a la conexión con el mismo. En
caso contrario hay que ejecutar manualmente el comando Programmer Æ
Connect.
‐ Program after a successful build. Esta opción es muy interesante, cada vez que
ensamblamos nuestro programa fuente, si no hay errores, se procede
automáticamente a grabar el dispositivo con el ejecutable recién obtenido.
En la pestaña “Warnings”
tenemos la posibilidad de
activar o no los mensajes y
avisos que deseamos que
aparezcan si se producen
determinados eventos.
Fig. 18
4 EL ENTORNO DE DESARROLLO MPLAB‐IDE 16
4.6 ICONOS DE GRABACIÓN
La mayor parte de las opciones del menú “Programmer” se pueden ejecutar mediante
una serie de iconos de acceso directo como los mostrados en la figura.
Fig. 19
De izquierda a derecha detallamos la función de cada icono:
‐ Program the target Device: Programar el microcontrolador.
‐ Read target Device memories: Leer el contenido actual de las memorias del
controlador.
‐ Read the target EEDATA memory: Lectura de la memoria EEPROM de datos del
controlador.
‐ Verify the contents of the target device: Verifica el contenido del
microcontrolador.
‐ Erase the target device memories: Borrar las memorias del controlador.
‐ Verify that target memories are erased: Comprueba que el controlador este
borrado.
‐ Bring target MCLR to Vdd: Pone a nivel “1” lógico el pin MCLR del PIC.
‐ Bring MCLR to Vil: Pone a nivel “0” lógico el pin MCLR del PIC.
‐ Connection: Restable la conexión con el PICkit2 (PICPROGRAM v2.61).
5 EL SOFTWARE DE GRABACION PICkit2 17
5.1 DESCRIPCIÓN DEL SOFTWARE
Se trata de otro programa de libre distribución, desarrollado por Microchip para su
sistema PICkit2 original que es compatible con nuestro grabador GM PICPROGRAM v2.61.
Se puede descargar y actualizar desde www.microchip.com.
A diferencia del MPLAB IDE, este software esta desarrollado para realizar,
fundamentalmente, tareas de grabación y no permite por tanto editar programas fuente,
ensamblarlos, depurar, etc. Sin embargo admite la grabación de un mayor número de
dispositivos PIC e incluye una serie de aplicaciones opcionales.
Insistimos en que nuestro grabador es 100% compatible con el PICkit2 en cuanto a las
tareas de grabación se refiere, e incluye las funciones y posibilidades de este.
A continuación nos vamos a referir a las funcionalidades más comunes del software
PICkit2 en lo que respecta a la tarea de grabación.
5.2 INSTALANDO EL SOFTWARE
El software de instalación
del PICkit2 se incluye en el
CDROM. Hay que
descomprimirlo e iniciar la
instalación la cual es totalmente
intuitiva y automática por lo
cual creemos no supone
ninguna complicación para el
usuario, bastara con seguir paso
a paso las instrucciones que se
presentan. Una vez concluida la
instalación se procederá a
conectar el GM PICPROGRAM
v2.61 a la PC mediante el cable
USB suministrado.
Inmediatamente es reconocido
por Windows como un
dispositivo de interface de
usuario (HID) que se puede ver
en el Panel de
ControlÆSistemaÆHardwareÆ
Administrador de Dispositivos.
Fig. 20
5 EL SOFTWARE DE GRABACION PICkit2 18
Su ejecución se puede realizar desde InicioÆProgramasÆMicrochipÆPICkit2 o bien
desde el mismo icono de acceso directo que se crea en el escritorio tras la instalación. La
figura muestra el aspecto del programa.
En ella se puede aprecia una ventana de estado en la que se nos informa que el
PICkit2 (GM PICPROGRAM v2.61) ha sido localizado y conectado (“PICkit2 connected”)
también se observa el mensaje “PIC Device Found” cuando el microcontrolador (en este
caso el 16F877A) esté conectado.
5.3 SELECCIÓN DE DISPOSITIVO
Aunque los zócalos ZIF con los que cuenta nuestro GM PICPROGRAM v2.61 solo
admite dispositivos de 8, 14, 18, 20, 28 y 40 patillas de las familias PIC12, PIC16 y PIC18, lo
cierto es que tenemos a nuestra disposición el conector ICSP y el ICD2 los cuales
transportan todas las señales necesarias para la grabación en circuito (In‐Circuit
Programming) de cualquier otro dispositivo para cualquier familia, bastara con realizar las
conexiones necesarias según la siguiente tabla:
N° PIN SEÑAL DESCRIPCION
1 MCLR/Vpp Señal Vpp de grabación
2 VDD Alimentación +VDD
3 GND Tierra de alimentación
4 PGD Señal de datos
5 PGC Señal de reloj
6 NC No conectada
Fig. 21
Esta característica es muy importante para el usuario de nuestro grabador puesto que
mediante los terminales ICSP e ICD2 podrán grabar un gran número de dispositivos PIC de
cualquiera de las familias existentes en la actualidad.
En cualquier momento podemos seleccionar un dispositivo PIC de las diferentes
familias existentes, bastara con seleccionar la opción “Device Family” del menú principal
para que aparezca un menú desplegable como en la figura, donde seleccionaremos la
familia deseada o en nuestro caso podemos realizar la siguiente operación:
‐ Colocamos el microcontrolador en el zócalo ZIF de 28/40 pines en este caso el
dispositivo 16F877A y vamos al menú del software PICkit2ÆToolsÆCheck
Communication.
5 EL SOFTWARE DE GRABACION PICkit2 19
Fig. 22
5.4 IMPORTAR UN FICHERO HEX
Como ya es sabido, cada vez que se ensambla o compila un programa fuente, se
obtiene un fichero .HEX que contiene la información que hay que grabar sobre la memoria
de programa, memoria de datos y memoria de configuración del microcontrolador.
Mediante File Æ Import Hex se abre la clásica caja de dialogo que nos permitirá
localizar el fichero .HEX deseado. Una vez seleccionado cargamos su contenido sobre los
buffers de memoria del software PICkit2 para su posterior grabación sobre la memoria
física del controlador. Tal y como se muestra en la figura, en ella se puede apreciar que
tanto el buffer de la memoria de programa como el de la EEPROM de datos, se llena con el
contenido del fichero .HEX recién leído o importado, si todo esta correcto se deberá
mostrar el mensaje: “Hex file sucessfully imported.”
El contenido de dichos buffers se puede visualizar tanto en hexadecimal como en
ASCII y también se puede modificar manualmente.
5 EL SOFTWARE DE GRABACION PICkit2 20
También tenemos acceso a la memoria de configuración haciendo clic sobre el enlace
“Configuration”. La figura muestra el valor actual, en binario, de la o las palabras de
configuración del PIC 16F877A tal y
como se obtuvo al leer el fichero .HEX de
ejemplo.
Al igual que con los buffers de la
memoria de programa y memoria de
datos, el buffer de la memoria de
configuración también se puede
modificar manualmente.
También es posible crear y salvar un
fichero .HEX con el valor actual de los
buffers de memoria del software PICkit2
con todas las modificaciones realizadas
sobre ellos, bastara con ejecutar: FileÆ
Export Hex para que se abra la clásica
ventana de dialogo para seleccionar el
nombre y la carpeta donde se va a
guardar el archivo .HEX que se va a
guardar.
Fig. 23
Fig. 24
También es posible crear y salvar un fichero .HEX con el valor actual de los buffers de
memoria del software PICkit2 con todas las modificaciones realizadas sobre ellos, bastara
con ejecutar: FileÆ Export Hex para que se abra la clásica ventana de dialogo para
seleccionar el nombre y la carpeta donde se va a guardar el archivo .HEX que se va a
guardar.
5 EL SOFTWARE DE GRABACION PICkit2 21
5.5 GRABACIÓN DEL DISPOSITIVO
Una vez que el microcontrolador es insertado en el zócalo ZIF correspondiente y es
detectado por el software de control PICkit2 debemos importar el archivo .HEX, para
proceder a grabarlo, las principales funciones se muestran en la figura a continuación.
Fig. 25
Read: Permite leer la memoria del microcontrolador y el contenido lo copia sobre los
buffers de memoria del software PICkit2.
Write: Lee el contenido de los buffers de memoria del software PICkit2 y los graba sobre
la memoria física del microcontrolador.
Verify: Verifica que el contenido de los buffers sea el mismo que el contenido del PIC.
Erase: Borra tanto los buffers de memoria del software PICkit2 como la memoria física
del microcontrolador.
Blank Check: Comprueba que la memoria del microcontrolador este borrada.
Hacemos clic en la función “Write” para proceder a grabar el controlador con el
contenido de los buffers, previo borrado del mismo. En la ventana de estado tendremos
constancia de si ha habido algún problema o bien el ciclo de grabación se realizo
correctamente.
Fig. 26
Nuestro grabador PICPROGRAM v2.61 posee un botón “PROGRAMAR” con el cual
una vez importado el archivo .HEX usted podrá grabar (previa configuración)
directamente el programa en el microcontrolador sin necesidad de hacer clic en la función
“Write”.
Fig. 27
5 EL SOFTWARE DE GRABACION PICkit2 22
5.6 VERIFICANDO EL DISPOSITIVO
Esta función se ejecuta al hacer clic en “Verify”. Consiste en comprobar que el
contenido de las memorias o regiones del controlador coincide con el de los buffers de
memoria del software PICkit2: memorias de programa, memoria de datos en EEPROM y
memoria de configuración e identificación.
Si se encuentra activada la opción Programmer Æ Verify on Write, todas las
operaciones de escritura son verificadas automáticamente. En la ventana de estado
aparecerá el correspondiente mensaje que avisa si hay o no alguna diferencia en la
comprobación.
Fig. 28
5.7 LECTURA DEL DISPOSITIVO
Esta función se ejecuta al
hace clic en “Read”. Consiste en
leer las diferentes regiones o
aéreas de memoria del
controlador y copiarlas sobre los
correspondientes buffers de
memoria del software PICkit2.
Si la información leída es
correcta, es posible que el
guardar dicha información
exportando la información
almacenada en los buffers de
memoria como un archivo .HEX,
en este caso los datos leídos
serán validos. Si la información
leída es solo ceros, como se
muestra en la figura, es posible
que el microcontrolador
estuviera protegido. En este
caso los datos leídos no serán
validos. Fig. 29
5 EL SOFTWARE DE GRABACION PICkit2 23
5.8 BORRADO DEL DISPOSITIVO
Esta función se ejecuta al hacer clic en “Erase”. ¨Provoca el borrado de todas las
regiones o aéreas de memoria del controlador empleando para ello el método “Bulk
Erase” en aquellos microcontroladores en que sea posible.
Fig. 30
Normalmente no suele ser necesario el empleo de esta función ya que cada vez que se
graba un dispositivo, implica su borrado automático.
5.9 VERIFICANDO EL BORRADO
Esta función se ejecuta al hacer clic en “Blank Check”. Realiza una lectura de todas las
regiones de memoria del microcontrolador para comprobar que se encuentran borradas.
5.10 PROCEDIMIENTO AUTOMÁTICO DE LECTURA/ESCRITURA
En la figura siguiente se muestran las dos opciones que posee el software PICkit2 para
realizar múltiples funciones cada vez que se actúa sobre cualquiera de ellos.
Fig. 31
‐ Auto Import Hex + Write Device
Cada vez que se hace clic sobre esta opción aparece el clásico cuadro de dialogo de
Windows mediante la cual podemos localizar el fichero .HEX deseado. Una vez
seleccionado, automáticamente se procede a grabar el contenido del mismo sobre la
memoria física del microcontrolador.
‐ Read Device + Export Hex File
Cada vez que se acciona se lee el contenido actual de alas diferentes regiones de
memoria del microcontrolador y automáticamente se guarda en un fichero .HEX.
6 EL MODO DEPURACION 24
6 EL MODO DEPURACION
Como se explico anteriormente el PICPROGRAM v2.61 no es simplemente un
grabador es tambien un depurador en circuito, lo que lo convierte en una herramienta
fundamental para el diseño de un programa de aplicación del usuario.
Básicamente la depuración en circuito consiste en poder controlar la ejecución de un
programa dentro del PIC estando el mismo conectado a los periféricos de la aplicación.
Para ello es necesario que el propio PIC disponga internamente de los recursos necesarios
para la depuración. Se debe tener en cuenta que no todos los microcontroladores PIC
tienen la propiedad de depuración, especialmente los modelos más antiguos como el
popular 16F84 (ver lista de dispositivos soportados por el PICPROGRAM v2.61).
Durante la depuración es necesario que el PIC reciba una serie de órdenes y comandos
procedentes del software de desarrollo. De la misma manera, en el curso de la
depuración, el PIC puede enviar al software de desarrollo información sobre el estado de
sus registros internos, memoria RAM, etc.
Es por ello que algunas líneas de E/S del PIC no pueden ser usadas por el hardware de
la aplicación del usuario ya que se emplean para la comunicación con la PC. La depuración
en circuito suele necesitar de 3 señales: MCLR, RB7/PGD, RB6/PGC. Por tanto estas
señales no deben conectarse a ningún periférico o bien, mediante algún sistema de
conmutación desconectarlas de esos periféricos durante el proceso de depuración, esta
función la cumple el modulo de programación/emulación.
Fig. 32 Modulo de Programación/Emulación.
Cada modulo posee un conmutador para seleccionar los modos Program (PGR) y Run
(RUN). Si se desea programar el microcontrolador se deberá ajustar el conmutador a la
posición PGR, si deseamos ver el funcionamiento de nuestro programa en el circuito de
pruebas debemos ajustar el conmutador a la posición RUN, tal como muestra la figura.
Fig. 33 Modo Programador/Debugger Modo Ejecución
6 EL MODO DEPURACION 25
Cuando el conmutador de la tarjeta de emulación se pone en RUN las señales se
desconectan del depurador y se conectan con los periféricos en modo de ejecución.
Por los mismos motivos es posible que el sistema de depuración consuma algo de la
memoria de programa, de datos, pila de stack, etc. Lo debemos tener en cuenta a la hora
de desarrollar nuestros programas y respetar las zonas que estuvieran reservadas.
Fig. 34 Conexión GM PICPROGRAM v2.61 vía ICD2 (Modo Depurador)
Incluso es posible que algunas prestaciones del depurador puedan verse modificadas
en función al tipo de microcontrolador con el que estemos trabajando. Así, hay modelos
que admiten, por ejemplo hasta 3 puntos de parada o breakpoints, y otros admiten
simplemente uno.
A pesar de las restricciones comentadas, consideramos que la depuración en circuito
mediante nuestro grabador PICPROGRAM v2.61 es una extraordinaria solución, una
potente y económica herramienta que nos ayudara a depurar nuestros programas.
6 EL MODO DEPURACION 25
Existen en el mercado otras soluciones como son el empleo de emuladores. Estos no
tienen restricciones de ningún tipo pero su precio se eleva a varios cientos de dólares.
Si no se cuenta con un modulo de emulacion/programación se puede acceder al modo
depurador mediante el terminal ICSP. A continuación se muestra la conexión necesaria
para acceder al modo depurador mediante el terminal ICSP.
Fig. 35 Conexión GM PICPROGRAM v2.61 vía ICSP (Modo Depurador)
Para acceder al modo depurador el microcontrolador deberá tener todos sus
periféricos conectados, así como la circuitería mínima para su funcionamiento real, el
microcontrolador deberá ser alimentado con una fuente externa dependiendo del
consumo del circuito de prueba.
Como software de desarrollo empleamos el MPLA IDE, este permite el enlace entre el
PICPROGRAM v2.61 y el microcontrolador a depurar. Gracias a él tendremos la posibilidad
de actuar internamente sobre el microcontrolador, para ejecutar un programa en tiempo
real, detener la ejecución, poner puntos de ruptura de forma que la ejecución se detenga
al llegar a un punto de nuestro programa, ejecutar paso a paso una instrucción cada vez
siguiendo así el flujo del programa, visualizar y modificar los registros internos, visualizar y
modificar la memoria RAM interna, etc.
Todo ello con un único fin el de localizar fallos en nuestro programa, corregirlos y
ponerlo a punto en el mínimo tiempo posible, antes de proceder a grabarlos
definitivamente sobre el microcontrolador.
6 EL MODO DEPURACION 25
En el presente documento consideramos que se dispone del microcontrolador
insertado en un circuito de pruebas (breadboard) y que el mismo cuenta con la circuitería
mínima necesaria para su funcionamiento real, este circuito estará conectado a nuestro
PICPROGRAM v2.61 mediante el cable ICSP proporcionado.
NOTA: Para que el microcontrolador trabaje en modo depurador ya sea mediante el terminal ICD2
o el ICSP se deberá ajustar el JUMPER T/B a la posición “B”.
6.1 SELECCIONANDO EL DISPOSITIVO
Para comenzar a trabajar, lo primero que haremos sera abrir el MPLAB IDE y
seleccionar el modelo de microcontrolador PIC con el que vamos a trabajar tal y como se
hizo en el apartado 4.2 mediante Configure Æ Select Device.
Este debe coincidir con el que en ese momento este insertado en el grabador o en el
hardware de la aplicación del usuario, para el ejemplo seleccionamos el PIC16F877A.
6.2 SELECCIONANDO EL DEPURADOR
El software de desarrollo MPLAB IDE admite diferentes tipos de herramientas
hardware para realizar la emulación o depuración. En nuestro caso, tal y como muestra la
figura seleccionaremos el PICkit2 mediante: DebuggerÆ Select ToolÆPICkit2.
Fig. 36
NOTA: MPLAB IDE solo admite al PICkit2 (por tanto a PICPROGRAM v2.61) trabajando como
emulador o como grabador, pero nunca ambos al mismo tiempo. Si estuviera activado como
grabador se debe desactivar mediante: Programmer Æ Select Programmer Æ None.
6 EL MODO DEPURACION 26
En la ventana Output de salida, se mostrara una serie de mensajes que nos indican
que se ha localizado e identificado tanto el PICkit2 (PICPROGRAM v2.61) como el
microcontrolador sobre el que se hará la depuración, ver figura.
Fig. 37
NOTA: A partir de este momento no es conveniente cambiar el dispositivo seleccionado para la
depuración (en este caso PIC16F877A) mediante: ConfigureÆ Select Device, ya que se pueden
provocar errores de funcionamiento. En caso de ser necesario, primero hay q desactivar el
depurador mediante: DebuggerÆSelect ToolÆNone. A continuación se selecciona el nuevo
dispositivo PIC. Este deberá insertarse en la tarjeta de emulación. Por último se vuelve a activar el
PICkit2 (PICPROGRAM v2.61) mediante: DebuggerÆ Select ToolÆPICkit2.
6.3 FUNCIONES MAS COMUNES EN LA DEPURACION
Una vez se ha seleccionado el PICkit2 (compatible con nuestro grabador) como
herramienta de depuracion, se activan todas las funciones disponibles realacionadas con
la depuracion y que se encuentran en el menu “Debugger” del menu principal, tal y como
se muestra en la figura.
La primera de las opciones es
“Select Tool”, es la que ya hemos
empleado para seleccionar, de entre
todas las disponibles, el PICkit2
(PICPROGRAM v2.61) como
herramienta de depuracion. A
continuacion detallamos las opciones
restantes.
Fig. 38
6 EL MODO DEPURACION 27
6.3.1 CLEAR MEMORY
Borra las diferentes regiones o areas de memeoria que se emplean durante la
depuracion y que se pueden seleccionar mediante el menu desplegable como el
mostraddo en la figura. All Memory borra todas las regiones, Program Memory borra solo
la memoria de programa. GPRs borra la memoria RAM de datos, EEPROM borra la
memoria EEPROM de datos y Configuration Bits borra la palabra de configuracion.
Fig. 39
Estas regiones de memoria del MPLAB IDE se pueden visualizar o modificar
mediante el comando View del menu principal y se corresponden con las regiones o areas
de memoria fisica del PIC.
6.3.2 RUN
Ejecuta en tiempo real las instrucciones que en ese momento se encuentren en la
region o area de memoria de programa, dichas instrucciones forman el programa
ejecutable que se habra obtenido en el ultimo ensamblado realizado, o bien, como
consecuencia de haber abierto un fichero .HEX cuyo contenido se ha de grabar
previamente en el microcontrolador.
La ejecucion en tiempo real significa que el programa se ejecuta de forma continua
hasta que se detenga manualmente o se encuentre con un punto de parada o BreakPoint.
6.3.3 ANIMATE
Ejecuta en tiempo real las instrucciones que en ese momento se encuentren en la
region o area de memoria de programa, dichas instrucciones forman el programa
ejecutable que se habra obtenido en el ultimo ensamblado realizado o bien, como
consecuencia de haber abierto un fichero .HEX cuyo contenido se ha de grabar
previamente en el dispositivo. En este tipo de ejecucion el programa se ejectua de forma
continua hasta que se detenga manualmente o se encuentre con un punto de parada o
BreakPoint, sin embargo con cada instrucción que se ejecuta, nuestro depurador
PICPROGRAM v2.61 envia al
6 EL MODO DEPURACION 28
MPLAB IDE el valor actual de los registros internos del PIC de forma que las ventanas de la
memoria de programa, datos, etc. del MPLAB IDE se actualizan y resfrescan
constantemente con cadad instrucción del programa ejecutado (Animacion).
Este modo de ejecucion no tiene un gran interes ya que la misma no es en tiempo
real, efectivamente con cada instrucción ejecutada, el depurador envia al MPLAB IDE una
gran cantidad de informacion que este ha de visualizar en las correspondientes ventanas,
ralentizando asi el tiempo de ejecucion.
6.3.4 HALT
Esta funcion incialmente queda habilitada si el sistema se encuentra en el modo Run
O en el modo Animate anteriormente descritos. Su proposito es detener manualmente la
ejecucion del programa en el punto en que en ese momento se encuentre.
6.3.5 STEP INTO
Cada vez que se emplea este comando se procede a la ejecucion de la siguiente
instrucción del programa y el sistema se detiene. Es decir, se ejecuta una instrucción cada
vez, paso a paso. Por cada instrucción ejecutada, el PICPROGRAM v2.61 envia informacion
al MPLAB IDE con la que se actualizan todos los registros de todas las areas o regiones de
memoria con los valores internos actuales del PIC.
Esta es una de las funciones especialmente utiles en la fase de depuracion de
cualquier programa. Podemos ir ejecutando las instruciones una a una , a la vez que
vamos viendo los resultados obtenidos en los registros de las diferentes areas o regiones
que visualiza el MPLAB IDE y que se vean afectados por la instrucción recien ejecutada.
El MPLAB IDE tambien permite modificar manualmente cualquiera de los registros de
estas regiones. De esta forma podemos cargar cualquier registro o variables con cualquier
valor y este sera tenido en cuenta y se evaluara al ejecutar la siguiente instrucción del
programa.
Sugerimos tener abierta unicamente la ventana Watch mediante el comando ViewÆ
Watch. La figura muestra un ejemplo de la misma. Sobre esta ventana podemos indicar
únicamente que registros del PIC y que variables RAM queremos refrescar para visualiza o
modificar sus contenidos.
6 EL MODO DEPURACION 29
Fig. 40
En el ejemplo se refrescan los registros internos WREG, PORTA y PORTB, así como las
variables del programa MSE_Delay_1 y MSE_Delay_2.
6.3.6 STEP OVER
La tarea de depuracion de un programa puede ser a veces muy tediosa ya que hay que
analizar al 100% el comportamiento de ese programa. La ejecucion paso a paso es la
herramienta mas versatil a la hora de localizar un fallo, pero tambien la que mas tiempo
nos puede llevar.
La mayor parte de las veces los programas contiene subrutinas que se deben ejecutar
en multiples ocasiones. Es posibles que el funcionamiento de una subrutina lo tengamos
que verificar paso a paso la primero vez, tal y como se explico anteriormente, pero seria
poco practico que haya que verificarla tantas veces como el programa principal haga uso
de la misma.
La funcion Step Over nos evita esta aburrida tarea, efectivamente, esta funcion se
comporta de forma similar a la funcion Step Into que vimos antes, ejecuta un programa
paso a paso. La diferencia consiste en que si se trata de ejecutar la instrucción de llamada
a subrutina (CALL), todas las instrucciones que esta contiene se ejecutan en tiempo real.
La parada se produce justo despues del retorno de la misma.
Ahorraremos mucho tiempo de depuracion si, uan vez comprobado el correcto
funcionamiento de una subrutina, la ejecutamos en tiempo real o cada vez que sea
llamada por el programa principal.
6.3.7 STEP OUT
Esta funcion solo estara habilitada para aquellos dispositivos PIC o herramientas
hardware que sean capaces de soportarla.
6 EL MODO DEPURACION 30
Si la ejecucion paso a paso de un programa nos lleva a introducirnos en una subrutina,
esta funcion permite realizar la ejecucion delas intrucciones que la componen en tiempo
real, desde el punto en el que en ese momento se encuentre hasta la instrucción de fin de
subrutina (RETURN).
6.3.8 RESET
Esta funcion genera un RESET del sistema haciendo que el Contador de Programa (PC)
del PIC apunte a la primera intruccion del programa a ejectuar, justo tras el vector de
RESET.
El efecto que produce su empleo se puede apreciar claramente si tenemos abierta la
ventana de nuestro programa fuente (ASM o C) debidamente ensamblado/compilado y
que se carga mediante FileÆ Open. También se puede apreciar sobre la ventana de
memoria de programa que se abre mediante ViewÆ Program Memory. La figura muestra
ambas ventanas.
En la parte superior vemos la ventana que nos muestra un fragmento del programa
fuente en ASM. En la parte inferior vemos la ventana de la memoria de programa con el
mismo fragmento pero debidamente ensamblado y convertido a código ejecutable.
En ambos casos, a la izquierda, se aprecia una flecha verde que apunta a la instrucción
que toca ejecutar justo tras haber producido el RESET y que se corresponde con la
siguiente instrucción a la del vector RESET.
Esa flecha simboliza al Contador de Programa (PC) y apunta a la instrucción que toca
ejecutar. Si se ejecuta en tiempo Real (Run), la ejecución se inicia a partir de esa posición.
Si se detiene la ejecución (Halt) la flecha aparecerá justo en la siguiente instrucción donde
se produjo la detención y que sería la siguiente en caso de reanudación.
Si se ejecuta en modo animado (Animate) veremos claramente como la flecha va
evolucionando instrucción tras instrucción a lo largo del programa hasta que este sea
detenido.
En la ejecución paso a paso veremos que la flecha avanza a la siguiente instrucción a
ejecutar, cada vez que se emplea Step Into.
6 EL MODO DEPURACION 31
Fig. 41
6.3.9 BREAKPOINTS
Los puntos de parada o Breakpoints constituyen otra importante herramienta para la
depuracion y puesta en marcha de los programas de aplicacion. Consiste en establecer
uno o varios puntos en los que debe detenerse la ejecucion en tiempo real del programa,
al llegar a ellos, momento en el que se actualizan todos los registros y regiones de
memoria sobre las correspondientes ventanas del MPLAB IDE. Esto permite comprobar,
de forma rapida y eficaz, como funciona y reacciona un determinado bloque de
instrucciones del programa de aplicación.
Para establecer un punto de parada, basta con hacer doble clic sobre la instrucción
deseada. Podemos emplear para ello tanto la ventana con el programa fuente (ASM o C)
como la ventana del area de programa.
En la figura vemos ambas ventanas. Se hizo un doble clic sobre la instrucción “GOTO
ARRIBA”. Un circulo rojo a la izquierda de la instrucción nos recuerda que hay un punto de
parada (Se emplea el mismo metodo para eliminarlo).
A la vista de la figura se puede determinar que el inicio de la ejecucion se realizara a
partir de la instrucción “BSF PORT_B, 0” (flecha verde) y se detendra despues de la
instrucción
6 EL MODO DEPURACION 32
instruccion “GOTO ARRIBA” (circulo rojo). Ambas ventanas son equivalentes y reflejo la
una de la otra.
Fig. 42
Segun el modelo de PIC que estemos empleando es posible que aparezca un mensaje
como el mostrado el la figura siguiente. Con este mensaje nos recuerda que el
PICPROGRAM v2.61 depurando sobre un PIC16F877A solo dispone de un BreakPoint, por
lo que algunas otras operaciones pueden quedar deshabilitadas. Estas son algunas de las
limitacions del PICkit2 (y por tanto del PICPROGRAM v2.61) de las que se hablo al
principio de este apartado.
Fig. 43
Ahora basta con ejecutar el programa que podemos hacerlo en tiempo real (Run).
Todas las instrucciones comprendidas entre la posicion actual de la PC (flecha verde) y el
cierculo rojo (breakpoint) se ejecutaran en tiempo real, a la velocidad propia del
controlador.
6 EL MODO DEPURACION 33
La ejecucion se detiene justo despues del punto de parada. En ese momento las
ventanas del MPLAB IDE se actualizaran con el valor de los registros internos y variables
del programa del PIC tras haberse ejecutado ese trozo de programa.
Ya hemos dicho que establecer un punto de parada es tan sencillo como hacer doble
clic sobre la instrucción del programa en la que deseamos detener la ejecucion. El mismo
proceso se emplea para eliminarlo. No obstante mediante el uso del comando
DebbugerÆ Breakpoints del menú principal obtenemos una ventana de edición como la
mostrada en la figura. En ella podemos visualizar el lugar en que se encuentra cada punto
de parada.
También es posible activarlos, desactivarlos y borrarlos tanto de forma individual como
colectiva. Finalmente también nos informa cuantos Breakpoint se pueden colocar y
cuantos quedan disponibles.
Fig. 44
6.3.10 ADVANCED BREAKPOINTS
Esta opcion esta destinada a las herramientas hardware de alto nivel para la
emulacion en tiempo real como son el ICE2000 y el ICE4000. No funciona por tanto con
nuestro depurador PICkit2 (PICPROGRAM v2.61), esta deshabilitada.
Los Breakpoints avanzados permiten estacler muchas y complejas condiciones de
parada dutant la emulacion/depuracion del programa de aplicación del usuario. Puntos de
parada no solo basados en la direccion de una instrucción como se vio anteriormente.
6 EL MODO DEPURACION 34
Permite establecer condiciones tales como ”Cuando la PC se encuentre en la direccion
X, se este realizando un ciclo de escritiura sobre la posicion Y de memoria RAM, el valor del
registro Z sea igual a 0x033 y esta condicion se repita 18 veces”, entonces se produce la
parada y la ejecucion se detiene.
6.3.11 PROGRAM
Esta opcion permite grabar directamente el contenido de las distintas areas de
memoria del MPLAB IDE sobre las correspondientes regiones de la memoria fisica del PIC.
Es especialmente util para grabar la informacion directamente importada desde un fichero
.HEX.
Efectivamente, con esta opcion no es necesario abrir un programa fuente (ASM o C) ni
ensamblarlo o compilarlo. Basta con abrir un fichero .HEX mediante FileÆ Import, que
contenga la información a grabar.
6.3.12 READ
Es la opuesta a la anterior. Lee el contenido de las diferentes regiones de memoria del
PIC y lo deposita sobre las correspondientea areas de memoria del MPLAB IDE.
Mediante FileÆ Export podemos guardar la información recién leída sobre un fichero
.HEX.
6.3.13 READ EEDATA
Procede a la lectura de la region de memoria EEPROM del PIC y la deposita sobre la
correspondiente area o buffer del MPLAB. El contenido recien leido se puede visualizar
activando la correspondiente ventan mediante la opcion ViewÆ EEPROM del menú
principal.
6.3.14 CONNECT
Restablece de nuevo la conexion con el depurador seleccionado, en nuestro caso el
PICkit2 (compatible con el PICPROGRAM v2.61). Esta operación puede ser necesario
realizarla en varias ocasiones ya que a veces el sistema se puede colgar durante la
transferencia de informacion hacia y desde la PC y el microcontrolador en depuracion.
6.3.15 DOWNLOAD OS
Actualiza el firmware interno del PICkit2 (PICPROGRAM v2.61). Esta operación puede
ser necesaria cuando se descargue una version actualizada del propio MPLAB IDE.
6 EL MODO DEPURACION 35
6.3.16 SETTINGS
Con esta opcion se abre una ventana similar a la mostrada en la figura anterior y que
permite activar o no una serie de procesos internos. En la pestaña “Settings” hemos
elegido los dos que consideramos mas importantes:
‐ Conectar automaticamente al empezar. Cada vez que se selecciona el depurardor
PICkit2 se procede
automaticamente a la conexión
con el mismo. En caso contrario
hay que ejecutar manualmente el
comando Debugger Æ Connect.
‐ Programar automaticamente el
controlador si no hay errores de
ensamblado/compilado. Esta
opcion es muy interesante. Cada
vez que ensamblamos nuestro
programa fuente, si no hay errores,
se procede a grabar el dispositivo
con el programa ejecutable recien
obtenido quedando asi listo para la
depuracion. Si no se activa esta
opcion, la grabacion habra que
hacerla manualmente mediante el
comando Debugger Æ Program.
Fig. 45
En la pestaña “Warnings” tenemos la posibilidad de activar o no los mensajes y avisos
que deseamos que aparezcan si se producen determinados eventos.
6.4 ICONOS EMPLEADOS EN LA DEPURACIÓN
La mayor parte de las opciones del menú “Debugger” se pueden ejecutar mediante
una serie de iconos de acceso directo como los mostrados en la figura y que ya se han
explicado anteriormente.
6 EL MODO DEPURACION 36
Fig. 46
De izquierda a derecha su función se detalla a continuación:
‐ Run: Ejecución en tiempo real del programa.
‐ Halt: Detener la ejecución.
‐ Animate: Ejecución con animación.
‐ Step Into: Ejecución con animación.
‐ Step Over: Ejecución paso a paso y las subrutinas en tiempo real.
‐ Step Out: Salir de una subrutina ejecutando en tiempo real.
‐ Reset: Reinicio del controlador.
‐ Breakpoints: Visualiza el estado de los puntos de parada.
‐ Program the target Device: Programar el controlador.
‐ Read target Device memories: Leer el contenido del controlador.
‐ Read the target EEDATA memory: Lee el contenido de la memoria EEPROM del
controlador.
‐ Connection: Restablece la conexión entre el MPLAB IDE y el PICkit2.
‐ Advanced Breakpoint: Acceso a los breakpoints avanzados (no disponible en
PICkit2/ PICPROGRAM v2.61)
7 DISPOSITIVOS ADMITIDOS POR GM PICPROGRAM v2.61 37
7.1 MODO GRABADOR
A continuación adjuntamos una lista de los dispositivos soportados en modo grabador
por PICPROGRAM v2.61 compatible con PICkit2. Para más información visite el siguiente
sitio web:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en027813
Gama Baja
Gama Media Las versiones ‘LF’ de todos los dispositivos son soportadas.
Las versiones ‘LF’ de todos los dispositivos son soportadas.
• PIC32MX440F512H
• PIC32MX460F256L, 460F512L • 25LC/AA/C46A, 46B, 46C
• 25LC/AA/C56A, 56B, 56C
Serial EEPROM Serie 11 • 25LC/AA/C66A, 66B, 66C
• 25LC/AA/C47A, 76B, 76C
• 11LC/AA010 • 25LC/AA/C48A, 86B, 86C
• 11LC/AA020
• 11LC/AA040
• 11LC/AA080
7.2 MODO DEPURADOR
A continuación adjuntamos una lista de los dispositivos soportados en modo
depurador por PICPROGRAM v2.61 compatible con PICkit2. Para más información visite el
siguiente sitio web:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en027813
Gama Baja • PIC12F615*, HV615*
- Use AC162083 ICD header & AC164110
adapter.
• PIC10F200*, 202*, 204*, 206* • PIC12F629*, 675*
• PIC12F508*, 509* - Use AC162050 ICD header & AC164110
• PIC16F505*
adapter.
- Above use AC162059 ICD header & • PIC12F635*, PIC16F636*
AC164110 adapter. - Use AC162057 ICD header & AC164110
• PIC10F220*, 222*
adapter.
• PIC12F510*
• PIC16F639*
- Use AC162066 ICD header & AC164110
• PIC16F506* adapter.
- Above use AC162070 ICD header &
AC164110 adapter.
• PIC12F683*
- Use AC162058 ICD header & AC164110
adapter.
Gama Media • PIC16F610*, HV610*
- Use AC162083 ICD header & AC164110
adapter.
Las versiones ‘LF’ de todos los dispositivos son soportadas. • PIC16F616*, HV616*
- Use AC162083 ICD header & AC164110
adapter.
• PIC12F609*, HV609*
- Use AC162083 ICD header & AC164110
adapter.
7 DISPOSITIVOS ADMITIDOS POR GM PICPROGRAM v2.61 40
• PIC16F630*, 676*
• PIC18F6520, 6525, 6527, 6585
- Use AC162052 ICD header & AC164110 • PIC18F6620, 6621, 6622, 6627
adapter. • PIC18F6628, 6680
• PIC16F684* • PIC18F6720, 6722, 6723
- Use AC162055 ICD header & AC164110
adapter. • PIC18F8310, 8390, 8393
• PIC16F688* • PIC18F8410, 8490, 8493
- Use AC162056 ICD header & AC164110 • PIC18F8520, 8525, 8527, 8585
adapter.
• PIC18F8621, 8620, 8622, 8627
• PIC16F631*, 677*, 685*, 687*, 689*, 690*
• PIC18F8628, 8680
- Use AC162061 ICD header & AC164110
adapter. • PIC18F8720, 8722, 8723
• PIC16F716* • PIC18F24J10, F25J10, F44J10, F45J10
- Use AC162054 ICD header & AC164110
adapter.
• PIC18LF24J10, LF25J10, LF44J10, LF45J10
• PIC16F785*, HV785*
• PIC18F24J50, F25J50, F44J50, F45J50
- Use AC162060 ICD header & AC164110 • PIC18LF24J50, LF25J50, LF44J50, LF45J50
adapter. • PIC18F26J11, LF26J11, F46J11, LF46J11
• PIC16F87, 88 • PIC18F26J50, LF26J50, F46J50, LF46J50
• PIC16F818, 819 • PIC18F63J11, 63J90, 64J11, 64J90
• PIC16F870, 871, 872, 873, 874, 876, 877 • PIC18F65J10, 65J11, 65J15
• PIC16F873A, 874A, 876A, 877A • PIC18F65J50, 65J90
• PIC16F882, 883, 884, 886, 887 • PIC18F66J10, 66J11, 66J15, 66J16
• PIC16F913, 914, 916, 917 • PIC18F66J50, 66J55, 66J60, 66J65
• PIC16F946 • PIC18F66J90
• PIC18F67J10, 67J11, 67J50, 67J60
Gama Alta • PIC18F67J90
• PIC18F83J11, 83J90, 84J11, 84J90
Dispositivos PIC18F • PIC18F85J10, 85J11, 85J15, 85J50
Las versiones ‘LF’ de todos los dispositivos son soportadas. • PIC18F85J90
• PIC18F86J10, 86J11, 86J15, 86J16
• PIC18F242, 252, 442, 452 • PIC18F86J50, 86J55, 86J60, 86J65
• PIC18F248, 258, 448, 458 • PIC18F86J90
• PIC18F1220, 1320, 2220, 2320 • PIC18F87J10, 87J11, 87J50, 87J60
• PIC18F1230, 1330 • PIC18F87J90
• PIC18F2221, 2321 • PIC18F96J60, 96J65
• PIC18F2331, 2410, 2420, 2431 • PIC18F97J60
• PIC18F2423, • PIC18F14K22
• PIC18F2450, 2455, 2458, 2480 • PIC18F13K50, 14K50
• PIC18F2510, 2515, 2520, 2523 • PIC18F24K20, 25K20, 26K20
• PIC18F2525 • PIC18F44K20, 45K20, 46K20
• PIC18F2550, 2553, 2580, 2585
• PIC18F2610, 2620, 2680 Dispositivos PIC24
• PIC18F2682, 2685
• PIC18F4220, 4221
• PIC24FJ16GA002, 16GA004
• PIC18F4320, 4321, 4331
• PIC24FJ32GA002, 32GA004
• PIC18F4410, 4420, 4423
• PIC24FJ48GA002, 48GA004
• PIC18F4431, 4450, 4455
• PIC24FJ64GA002, 64GA004
• PIC18F4458, 4480
• PIC24FJ64GA006, 64GA008, 64GA010
• PIC18F4510, 4515, 4520, 4523
• PIC24FJ64GB106, 64GB108, 64GB110
• PIC18F4525, 4550, 4553, 4580
• PIC24FJ96GA006, 96GA008, 96GA010
• PIC18F4585
• PIC24FJ128GA006, 128GA008, 128GA010
• PIC18F4610, 4620, 4680
• PIC24FJ128GA106, 128GA108, 128GA110
• PIC18F4682, 4685
7 DISPOSITIVOS ADMITIDOS POR GM PICPROGRAM v2.61 41
• PIC24FJ128GB106, 128GB108, 128GB110 • PIC24HJ16GP304
• PIC24FJ192GA106, 192GA108, 192GA110 • PIC24HJ32GP202, 32GP204
• PIC24FJ192GB106, 192GB108, 192GB110 • PIC24HJ32GP302, 32GP304
• PIC24FJ256GA106, 256GA108, 256GA110 • PIC24HJ64GP202, 64GP204
• PIC24FJ256GB106, 256GB108, 256GB110 • PIC24HJ64GP206, 64GP210, 64GP506
• PIC24HJ12GP201, 12GP202 • PIC24HJ64GP502, 64GP504, 64GP510
• PIC24HJ128GP202, 128GP204 • dsPIC33FJ64GP202, 64GP204
• PIC24HJ128GP206, 128GP210, 128GP306 • dsPIC33FJ64GP206, 64GP306, 64GP310
• PIC24HJ128GP310 • dsPIC33FJ64GP706, 64GP708, 64GP710
• PIC24HJ128GP502, 128GP504 • dsPIC33FJ64GP802, 64GP804
• PIC24HJ128GP506, 128GP510 • dsPIC33FJ128GP202, 128GP204
• PIC24HJ256GP206, 256GP210, 256GP610 • dsPIC33FJ128GP206, 128GP306, 128GP310
• dsPIC33FJ128GP706, 128GP708, 128GP710
Dispositivos dsPIC30 • dsPIC33FJ128GP802, 128GP804
• dsPIC33FJ256GP506, 256GP510, 256GP710
• dsPIC30F1010
• dsPIC33FJ06GS101, 06GS102, 06GS202
• dsPIC30F2020, 2023
• dsPIC33FJ16GS502, 16GS504
• dsPIC30F3013, 3014
• dsPIC33FJ16MC304