Você está na página 1de 36

GUÍA RÁPIDA PARA MPLAB 7.

X y ICD 2 1

MPLAB IDE 7.x: Manual de utilización

Índice:

I: MPLAB IDE

1.- Arrancando MPLAB 7


2.- Creación del fichero fuente (.asm)
Normas de escritura del programa fuente
3.- Creación del proyecto
4.- Ensamblado del proyecto
errores, advertencias y mensajes
5.- Simulación del proyecto
6.- Observando el funcionamiento
7.- Estímulos

II: MPLAB ICD2

8.- Conexión del MPLAB ICD2


9.- Utilización del debugger ICD2
10.- Programación del microcontrolador
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 2

1.- ARRANCANDO MPLAB 7

(IDE: Integrated Development Environment: Entorno de Desarrollo Integrado).

Para arrancar MPLAB 7 debemos correr "MPLAB IDE". Si no tenemos un acceso directo en el
escritorio, podemos hacerlo desde el menú de "Archivos de Programa" de nuestro ordenador. Si
no es así, debemos ejecutar el fichero "mplab.exe" que se encuentra en:

C:\Archivos de programa\Microchip\MPLAB IDE\Core

Una vez arrancado nos encontramos con una pantalla como la de la figura 1.1:

- fig 1.1: pantalla de inicio del MPLAB -

Es importante que los bits de la palabra de configuración tengan los valores adecuados para
nuestra aplicación. Eso se puede hacer de dos formas:

1) entrando en:

Configure > Configuration Bits

podemos escoger el tipo de oscilador (RC, LP, XT ó HS), y activar/desactivar el perro


guardián, el temporizador de arranque o la protección del programa, entre otras opciones
según los modelos de PIC.

Si necesitamos cambiar alguna de las opciones que aparecen tenemos que desactivar la
casilla: "Configuration Bits set in code" (véase la figura 1.2), ya que si está activada
sólo admite como palabra de configuración la que venga especificada en el programa
fuente.

Para nuestras prácticas (el fichero hexadecimal se va a grabar en la memoria permanente


del PIC), el oscilador es de tipo XT, de 4 MHz, y es conveniente no tener activado ni el
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 3

perro guardián ni la protección del programa. Además, para poder utilizar la herramienta
ICD2, debemos tener desactivada la opción "low voltage program" (fig 1.2).

- fig 1.2: bits de configuración -

2) también podemos incluir la directiva "__CONFIG" en el programa fuente, como


veremos seguidamente.
volver a índice
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 4

2.- CREACIÓN DEL FICHERO FUENTE

El primer paso consiste en escribir el programa fuente. Seguidamente, se crea un proyecto, se le


añade ese programa fuente y finalmente se ensambla, se simula, tanto desde el ordenador como
desde el ICD2, y se puede grabar en el PIC. A continuación iremos comentando cada uno de esos
pasos.

Para generar el programa fuente se utiliza el editor del MPLAB IDE . Seleccionando:

File> New

aparece en el área de trabajo una ventana en blanco en la que va a quedar escrito el programa
fuente. Aquí tenemos dos opciones:

1) escribir el programa
2) copiarlo desde otro medio si ya lo tenemos escrito.

En cualquiera de esos dos casos, hay que tener en cuenta las normas de escritura del programa
fuente, que resumimos a continuación:

Se crea con cualquier editor de texto en caracteres ASCII. Debe cumplir:

1) En cada línea puede haber hasta 4 tipos de información: etiquetas, mnemónicos,


operandos y comentarios.

2) Su orden y posición es importante:


· las etiquetas deben comenzar en la columna 1
· los mnemónicos pueden comenzar en la columna 2 (o posteriores)
· los operandos deben ir detrás de los mnemónicos
· los comentarios pueden ir detrás de los operandos, de los mnemónicos o de las
etiquetas, o pueden comenzar en cualquier columna si el primer carácter que no
sea un espacio es “ ∗ ” ó “ ; ”.

3) La anchura máxima de línea es de 255 caracteres.

4) La etiqueta y los mnemónicos, y éstos y los operandos deben estar separados por uno o
más espacios. Los operandos entre sí pueden ir separados por una “ , ”.

5) Y también:

etiquetas:

· la etiqueta puede ir seguida por “ : ”, “ESPACIO”, “TAB”, o el final de la


línea, sin que se consideren parte de ella
· deben comenzar por una letra o por “ _ ”, y pueden tener caracteres
alfanuméricos, “ _ ”, y “ ? ”.
· pueden tener hasta 31 caracteres, y distinguen mayúsculas (por defecto)
aunque esta opción se puede anular con CLI
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 5

mnemónicos:

· los mnemónicos de las instrucciones de ensamblador, las directivas y las


llamadas a macros deben comenzar, al menos, en la columna 2
· si en la misma línea hay una etiqueta, deben estar separados por uno o
más espacios (valen las “TAB”)

operandos:

· los operandos deben separarse de los mnemónicos por uno o más espacios
(o “TAB”)
· los operandos que vienen en listas deben separarse por “ , “
· si un mnemónico requiere un número fijo de operandos, todo lo que venga
detrás de ellos en la misma línea se ignora (se permiten comentarios al final
de la línea)
· si un mnemónico permite un número variable de operandos, el final de la
lista de operandos viene determinado por el final de la línea o por el inicio
de un comentario

comentarios:

· los comentarios al final de una línea deben estar separados del resto de la
línea por uno o más espacios (o “TAB”)
· todo lo que hay en una línea detrás del carácter de comentario y hasta el
final de ella, se ignora

Como podemos observar en la figura 2.1, una de las líneas del programa utiliza la directiva
"CONFIG" que se encarga de que los bits de la palabra de configuración tengan los valores
adecuados. En el ejemplo tenemos:

__CONFIG _XT_OSC & _WDT_OFF & _LVP_OFF

Que selecciona un oscilador de cristal de cuarzo, anula el perro guardián y desactiva la


programación a baja tensión.

Este método tiene la ventaja frente al camino Configure > Configuration Bits (comentada en el
punto 1, fig 1.2) de que al estar escrito en el programa fuente siempre va a determinar la palabra
de configuración, aunque se realicen modificaciones en el programa o se cambie de ordenador o
de ICD2.

En la figura 2.1 podemos observar también que el fichero no tiene todavía un nombre (untitled) y
que todo el texto tiene el mismo color.
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 6

- fig 2.1: fichero fuente -

Es conveniente ir guardando el texto a medida que lo vamos escribiendo:

File > Save as


ó: File > Save

Nos aparece una ventana como la de la figura 2.2. Escogemos el directorio donde guardarlo, que
en nuestro caso debe ser en:

C:\Practicas\CompElec\grupo correspondiente

El fichero debe tener la extensión .asm. Para eso hay que tener cuidado con el formato y en la
ventana "tipo" debe estar seleccionada la opción: Assembly Source Files.
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 7

- fig 2.2: almacenamiento del fichero fuente -

Tras guardar el programa fuente, el texto aparece en diferentes colores, que diferencian las
instrucciones, los comentarios, directivas, etc, como se puede ver en la figura 2.3. Esos colores se
pueden configurar a gusto del usuario. Para más información acudir a: Help > MPLAB Editor
Help.

Si posteriormente se realiza alguna modificación en el fichero fuente, nos aparece un asterisco en


el nombre del fichero: pepe.asm*.

- fig 2.3: programa fuente ya almacenado como fichero asm -


volver a índice
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 8

3.- CREACIÓN DEL PROYECTO

1) El siguiente paso consiste en la creación de un Proyecto. La forma más sencilla de


hacerlo es utilizar el "MPLAB Project Wizard", que se arranca en el menú:

Project > Project Wizard

La pantalla toma un aspecto como el de la figura 3.1:

- fig 3.1: creación de un proyecto -

Seleccionar "Siguiente" para continuar.

2) Seleccionar, entre la lista de dispositivos disponibles, el procesador a utilizar (fig 3.2).

- fig 3.2: selección del modelo de PIC -


GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 9

Seleccionar "Siguiente" para continuar.

3) Seleccionar la herramienta a utilizar ("Active Toolsuite") que debe ser Microchip


MPASM Toolsuite. Al hacerlo, nos aparecen en la ventana siguiente las herramientas
disponibles (Toolsuite Contents), como se puede observar en la figura 3.3. Esas
herramientas deben ser: MPASM Assembler (mpasmwin.exe), MPLINK Object Linker
(mplink.exe) y MPLIB Librarian (mplib.exe). Y en la ventana siguiente (Location) debe
figurar la trayectoria completa de esos tres programas ejecutables:

C:\Archivos de programa\Microchip\MPASM Suite

Si esa trayectoria está incompleta o es errónea debemos pulsar "Browse" para localizarlo.

- fig 3.3: selección de herramientas a utilizar -

Seleccionar "Siguiente" para continuar.

4) El siguiente paso es asignarle un nombre al proyecto (fig 3.4). Debe estar en el mismo
directorio que el programa fuente (nombre.asm) y es conveniente darle el mismo nombre
para localizar mejor todo lo concerniente a un mismo ejercicio.

Para eso, en la ventana "Create New Project File", pulsamos en "Browse" y accedemos al
subdirectorio en el que estamos trabajando (en el ejemplo: AL2).
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 10

- fig 3.4: asignando nombre al proyecto -

Seleccionar "Guardar" para continuar. Nos aparece entonces una pantalla como la de la
figura 3.5, en la que se puede observar la trayectoria completa del proyecto que estamos
creando.

- fig 3.5: trayectoria del proyecto -


GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 11

5) La pantalla siguiente (fig 3.6) nos pregunta qué ficheros queremos incorporar a nuestro
proyecto. Debemos seleccionar y añadir (pulsar en "Add") el fichero fuente (nombre.asm,
en el ejemplo: pepe.asm). Es conveniente que en la ventana de la derecha y a la izquierda
de la trayectoria figure una " A" (indica automático).

- fig 3.6: seleccionando ficheros para añadir al proyecto -

Seleccionar "Siguiente" para continuar.

Aparece entonces una pantalla como la de la figura 3.7 con un resumen del proyecto que
queremos crear (nombre.mcp, en el ejemplo: pepe.mcp):

- fig 3.7: resumen del proyecto -


GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 12

Si esos datos no son correctos, debemos pulsar "Atrás" y corregirlos. Si son correctos,
debemos pulsar "Finalizar". Con eso salimos del "Project Wizard" y nos aparece una
pantalla con un aspecto como el de la figura 3.8:

- fig 3.8: carpetas del proyecto -

Se pueden añadir archivos y salvar proyectos pulsando el botón derecho del ratón cuando
nos encontremos en la ventana de proyecto. Los ficheros también se pueden borrar
manualmente seleccionándolos y utilizando el botón derecho del ratón.
volver a índice
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 13

4.- ENSAMBLADO DEL PROYECTO

Una vez que el proyecto está creado, debemos ensamblarlo. Para eso el entorno MPLAB utiliza el
programa mpasmwin. El procedimiento a seguir es el siguiente:

Project > Build All.

También puede utilizarse el icono correspondiente de la barra de herramientas.

El caso más común cuando se empieza a trabajar con MPLAB es que, tras intentar ensamblar, en
la pantalla aparezca un mensaje semejante a éste:

Deleting intermediary files... done.


Executing: "C:\Archivos de programa\MPLAB IDE 7_60 \MCHIP_Tools
\MPASMWIN.EXE" /q /p16F877A "pepe.asm" /l"pepe.lst" /e"pepe.err"
Warning[205] C:\Practicas\CompElec\AL2\PEPE.ASM 3 : Found directive in column 1.
(include)
Error[113] C:\Practicas\CompElec\AL2\PEPE.ASM 6 : Symbol not previously defined
(inicio)
Message[302] C:\Practicas\CompElec\AL2\PEPE.ASM 10 : Register in operand not in
bank 0. Ensure that bank bits are correct.
Warning[207] C:\Practicas\CompElec\AL2\PEPE.ASM 12 : Found label after column 1.
(inc)
Error[122] C:\Practicas\CompElec\AL2\PEPE.ASM 12 : Illegal opcode (FSR)
Error[113] C:\Practicas\CompElec\AL2\PEPE.ASM 13 : Symbol not previously defined
(inicio)
Halting build on first failure as requested.
BUILD FAILED: Thu Mar 06 18:12:09 2008

En la última línea se puede leer: "BUILD FAILED", es decir, el ensamblador mpasmwin no ha


sido capaz de generar un fichero hexadecimal y por tanto no podremos simular el
comportamiento de nuestro programa ni mucho menos grabarlo en la memoria del PIC.

Además, en la pantalla "output" también tenemos disponible otras informaciones, como


"messages", "warnings" y "errors". De estos tres tipos, el más importante porque impide la
generación del fichero hexadecimal son los "errors", mientras que los otros dos tipos no impiden
el ensamblado del programa fuente. Pasemos a comentarlos a continuación:

• Errores (Error). Impiden la generación de código máquina y por lo tanto es


imprescindible corregirlos para poder continuar. Los más habituales, con su número de
caracterización, son:

- "[105] Cannot open file". El ensamblador no es capaz de abrir algún fichero.


Debemos asegurarnos que ese fichero existe o que tiene la trayectoria correcta.
- "[107] Illegal Digit". Hay un dígito no válido en un número. Los dígitos
válidos son:
· en binario: 0 y 1
· en octal: de 0 a 7
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 14

· en decimal: de 0 a 9
· en hexadecimal: de 0 a 9, de a a f, y de A a F
- "[108] Illegal Carácter". Hay un carácter no válido en una etiqueta. Los
caracteres válidos son: letras, números (siempre que no sean el primer carácter
de la etiqueta), subrayado "_" e interrogación "?".
- "[109] Unmatched (" y "[110] Unmatched )". Paréntesis sin cerrar o abrir.
- "[111] Missing Symbol". A las directivas EQU o SET no se les ha
proporcionado el valor numérico.
- "[113] Symbol not previously defined". Hacemos referencia a un símbolo
que todavía está sin definir.
- "[115] Duplicate label". Definimos la misma etiqueta para dos valores
diferentes.
- "[121] Illegal label". Este error puede proceder de dos fuentes: 1) algunas
directivas no admiten una etiqueta en la misma línea; basta con poner la
etiqueta, sola, en la línea anterior, y 2) tampoco se permiten las palabras
"HIGH", "LOW", "PAGE" ni "BANK" como etiquetas.
- "[122] Illegal opcode". El mnemónico de la instrucción no está escrito
correctamente o no existe.
- "[124] Illegal argument". El argumento de la directiva no es válido.
- "[126] Argument out of range". El argumento de la instrucción o de la
directiva es mayor del valor admisible.
- "[128] Missing argument(s)". A la instrucción le falta algún dato.

Debemos tener en cuenta que la eliminación de estos errores simplemente permite obtener
un fichero hexadecimal, pero no tenemos ninguna información acerca de si nuestro
programa funcionará o no correctamente.

• Advertencias (Warning). Estos mensajes no impiden la obtención del fichero


hexadecimal, pero advierten de algo que al ensamblador le parece extraño. Es conveniente
comprobarlos todos. Los más típicos son:

- "[202] Argument out of range. Least significant bits used". El argumento


utilizado tiene más bits de los permisibles, el ensamblador pierde el (o los) de
más peso.
- "[203] Found opcode in column 1". El mnemónico de una instrucción
comienza en la columna 1, que es el lugar reservado para las etiquetas.
- "[205] Found directive in column 1". El mnemónico de una directiva
comienza en la columna 1, que es el lugar reservado para las etiquetas.
- "[207] Found label after column 1". El mnemónico de una etiqueta no
comienza en la columna 1.
- "[215] Processor superceded by command line. Verify processor symbol".
El procesador especificado en el programa fuente no coincide con el
seleccionado en el ensamblador. Por defecto toma el del programa fuente.

• Mensajes propiamente dichos (Message), que tampoco impiden la obtención de código


máquina y añaden información adicional. Los más típicos son:
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 15

- "[302] Register in operand not in bank 0. Ensure that bank bits are
correct". El PIC trabaja por defecto en el banco 0 de la memoria de datos.
Este mensaje advierte de que hemos hecho una operación fuera de ese banco y
nos recomienda asegurarnos de que eso es lo que queremos hacer.
- "[305] Using default destination of 1 (file)". Hay algunas instrucciones que
operan con registros que necesitan como dato el destino, es decir, dónde se
quiere almacenar el resultado de la operación que realiza la instrucción. El
destino es un solo bit y por tanto sólo tiene dos opciones: si es "0" el resultado
se almacena en W, y si es "1" es resultado se almacena en el registro con el que
haya operado la instrucción. Si no se especifica ese destino, por defecto, la
CPU lo toma como un "1" y almacena ese resultado en el mismo registro con
el que había trabajado. Este mensaje nos advierte de esta situación.

Para tratar los mensajes, el camino más rápido es hacer doble click en la línea del fichero
"output" en la que está el mensaje. Eso hace que el cursor se ponga en la línea del programa
fuente que da lugar a la aparición de ese mensaje y nos permite corregirlo. A continuación, el
fichero fuente se graba de nuevo, "File > Save", y se vuelve a ensamblar: "Project > Build
All". El proceso se repite hasta que estén corregidos todos, momento en el que mpasmwin
consigue generar el fichero hexadecimal, apareciendo una pantalla como la de la figura 4.1,
donde se puede leer BUILD SUCCEEDED.

- fig 4.1:pantalla indicando que se ha conseguido el ensamblado –

La pantalla output también informa de:

• procesador utilizado (en el ejemplo, 16F877A)


• nombre del proyecto y su trayectoria (en el ejemplo, pepe.mcs)
• herramienta utilizada: mpasmwin, con su trayectoria completa
• ficheros:
· nombre.cod: el código
· nombre.asm: el programa fuente que nosotros escribimos
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 16

· nombre.lst: fichero de listado que contiene un listado completo del programa


incluyendo el programa fuente y todo tipo de mensajes (errores, advertencias y
mensajes propiamente dichos). En este fichero el mensaje aparece justo encima de
la línea que lo origina.
· nombre.err: fichero de errores que indica los errores (sólamente errores) que han
aparecido durante el ensamblado
• fecha y hora en la que se produjo el ensamblado.

A partir de este momento, ya disponemos de un fichero en hexadecimal (.hex) y podemos simular


el funcionamiento o grabarlo en la memoria permanente del microcontrolador.
volver a índice
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 17

5.- SIMULACIÓN DEL PROYECTO

Es lógico que llegados a este punto comprobemos nuestro programa, es decir, vamos a simular su
funcionamiento.

MPLAB-SIM es un simulador para los microcontroladores PIC que viene integrado en el entorno
MPLAB IDE. Permite modificar el programa y reejutarlo a continuación, introducir estímulos
externos y observar la ejecución del programa objeto.

La velocidad de ejecución, aunque llega siempre a la máxima posible, es varios órdenes de


magnitud más baja que la del procesador real y depende del ordenador y de otros factores. Puede
llegar al orden de unos ms por instrucción (un PIC real, con un cristal de 4 MHz, emplea 1 µs por
instrucción, salvo si es de salto, que emplea 2 µs).

Para arrancar el simulador debemos indicar que queremos utilizar la herramienta MPLAB SIM y
para ello debemos entrar en (fig 5.1):

Debugger > Select Tool > MPLAB SIM

- fig 5.1 : selección del simulador -

A continuación se producen los siguientes cambios (figura 5.2):

1) La ventana de la izquierda de la barra de estado (parte inferior de la pantalla) cambia a


MPLAB SIM
2) Aparecen nuevas opciones en el menú "debugger"
3) En la barra de herramientas aparecen los iconos correspondientes al simulador
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 18

- fig 5.2: nuevas opciones tras activar el simulador –

Nuestro programa está listo para ser ejecutado.

Podemos introducir ahora la frecuencia que va a tener el oscilador (fig 5.3):

Debugger > Settings > Osc/Trace

- fig 5.3: establecimiento de la frecuencia del oscilador -


GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 19

En primer lugar, es conveniente que el simulador empiece por ejecutar la primera instrucción del
programa, para eso realizamos un "reset" del procesador:

Debugger > Reset > Processor reset

O también podemos actuar sobre el teclado o sobre el icono (figura 5.4):

- fig 5.4: iconos y teclas específicas -

En la pantalla (figura 5.5) nos aparece una flecha verde en el margen izquierdo de la ventana
donde está escrito el programa fuente (nombre.asm; en el ejemplo: pepe.asm). La flecha apunta a
la primera instrucción que se va a simular en cuanto demos la orden.

- fig 5.5: instrucción que se va a ejecutar -

A partir de aquí tenemos tres posibilidades de ejecutar el programa: paso a paso, en modo
animado y total.

1) Paso a paso (Step). En esta modalidad, la CPU ejecuta las instrucciones una a una cada
vez que entremos en el menú:
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 20

Debugger > Step Into

O también actuando sobre la tecla F7 o sobre el icono correspondiente (fig 5.4).

Podemos observar el valor de las variables en ese instante colocando el cursor sobre ellas
(figura 5.6):

- fig 5.6: valor de una variable -

3) Modo animado (Animate). En este caso, la CPU ejecuta las instrucciones una tras otra
sin esperar. Se activa en el menú:

Debugger > Animate

O también en el icono correspondiente (fig 5.4).

Para detener la ejecución del programa debemos actuar en:

Debugger > Halt

O también actuando sobre la tecla F5 o sobre el icono correspondiente (fig 5.4).

También en este caso podemos observar el valor de las variables en ese instante
colocando el cursor sobre ellas.

Suele ser habitual que una vez que nuestro programa está pensado para tiempo real,
tengamos que "acelerarlo" para que su simulación no dure excesivamente. Existen varias
formas de conseguirlo, pero sólo comentaremos estas dos:

a) entrar en Debugger > Settings > Animation/Realtime Updates y sustituir el valor de


"animate step time" por uno menor (fig 5.7):
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 21

- fig 5.7: acelerando la simulación -

b) desactivar el divisor de frecuencia del TMR0 en la configuración del registro


OPTION_REG en el fichero fuente (nombre.asm), es decir, o bien asignárselo al perro
guardián (bit 3 de OPTION_REG en "1"), o bien ponerlo en su mínimo valor (1:2, bits
0, 1 y 2 de OPTION_REG en "0")

En este último caso, debemos de volver a activar el divisor de frecuencia y ensamblar de


nuevo para obtener el fichero hexadecimal que utilizaremos en la aplicación real (el que
se graba en el PIC).

3) Total (Run). En este modo, la CPU ejecuta el programa completo, es decir desde la
primera hasta la última instrucción. Se activa en:

Debugger > Run

O también actuando sobre la tecla F9 o sobre el icono correspondiente (fig 5.4).

En barra de estado aparece la palabra "running".

Para detener la ejecución del programa debemos actuar en:

Debugger > Halt

O también actuando sobre la tecla F5 o sobre el icono correspondiente (fig 5.4).

En este caso, si colocamos el cursor sobre una variable no nos aparece el valor que tiene
en ese instante. Primero debemos detener la ejecución del programa.
volver a índice
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 22

6.- OBSERVANDO EL FUNCIONAMIENTO

Hay varias formas de observar lo que sucede al ir ejecutándose las instrucciones del programa.
Dentro del menú "View" tenemos varias posibilidades que nos van abriendo diferentes ventanas:

output: el fichero de salida, que ya conocemos


disassembly listing: listado del programa fuente (sin ensamblar)
hardware stack: estado de la pila
program memory: estado de la memoria de programa, con las instrucciones
file registers: valores almacenados en los registros
EEPROM: estado de la memoria EEPROM
special function registers: estado de los registros de funciones especiales
simulator trace: almacena todos los pasos del simulador

Cualquiera de esas posibilidades nos proporciona información acerca de la ejecución del


programa. El inconveniente es que tanto el contenido de los registros como su dirección pueden
estar en hexadecimal por lo que es bastante engorroso.

Además, hay que tener en cuenta que en programas complejos pueden ser muchos los valores que
cambian con cada instrucción, lo que dificulta el seguimiento de unas pocas variables.

Para evitar este problema se puede abrir una "ventana de observación":

View > Watch

Con eso nos aparece una nueva ventana (fig 6.1) en la que podemos seleccionar tanto los
registros de funciones especiales (SFR) como los símbolos (symbol) que queremos observar.

- fig 6.1: ventana de observación -

Una vez que tenemos en la ventana el símbolo que queremos observar, podemos escoger el
formato en que queremos que aparezca seleccionándolo y apretando el botón derecho del ratón
para entrar en sus propiedades. Ahí podremos escoger varias opciones:

símbolo
número de bits a observar
formato (aquí podemos escoger también un solo bit)
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 23

Por ejemplo, vamos a observar el registro “CONTADOR” como número decimal (fig 6.2) y del
PORTA sólo vamos a observar el bit 4 (al que está conectado el pulsador) (fig 6.3):

- fig 6.2: formato decimal - - fig 6.3: selección de un bit -

La figura 6.4 nos muestra cómo quedaría la ventana si escogemos formato binario para PORTB,
decimal para “CONTADOR” y el bit 4 para PORTA:

- fig 6.4: diferentes formatos -

También podemos situar el cursor sobre la barra "address" y actuar sobre el botón derecho del
ratón. Eso nos permite escoger formatos de presentación.
volver a índice
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 24

7.- ESTÍMULOS

El simulador evalúa los estímulos y genera todas las respuestas en los límites de cada ciclo de
instrucción (Tcy = 4·Tosc). Por ese motivo, algunos sucesos físicos no pueden simularse con
precisión, en particular los sucesos puramente asíncronos y los sucesos de periodo más corto que
un ciclo de instrucción.

Los estímulos generan señales para el simulador. Podemos poner patillas a "0" o a "1" y cargar
valores directamente en registros. Existen cuatro tipos:

- Estímulos asíncronos
- Estímulos de terminales
- Estímulos de registros
- Estímulos de reloj

Nos centramos en los estímulos asíncronos.

Permite simular +5V y 0V en terminales configurados como entradas. Se activan haciendo click
en el botón correspondiente de la ventana de diálogo. Para definirlos debemos entrar en (fig 7.2):

Debugger > Stimulus > New Workbook

- fig 7.1: simulación de estímulos -

con lo que aparecerá una ventana como la indicada en la figura 7.2:


GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 25

- fig 7.2: activación de estímulos -

Activando la pestaña "Asynch" podemos entonces definir los estímulos.

La primera columna (fire) es la que tenemos que pulsar para que se ejecute la simulación del
estímulo que estamos configurando.

La segunda columna (Pin/SFR) nos permite escoger la patilla en la que queremos simular el
estímulo. Basta con pulsar dentro del cuadro en blanco para que nos aparezcan las opciones.

En la tercera columna (Action) escogemos la acción a simular. Tenemos cinco posibilidades:

1) set high: simula una tensión "1" en la patilla seleccionada


2) set low: simula una tensión "0" en la patilla seleccionada
3) toggle: simula un cambio, es decir, si esa patilla estaba a "1" la pone a
"0" y si estaba a "0" la pone a "1"
4) pulse high: simula un pulso en "1" de corta duración
5) pulse low: simula un pulso en "0" de corta duración

Las siguientes columnas no tienen interés por ahora.

En la figura 7.3 podemos ver un ejemplo de pantalla con un estímulo definido: cambio de valor
en el terminal RA4 cada vez que se pulse en “fire”.
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 26

- fig 7.3: estímulo definido para RA4 -

Si queremos eliminar un estímulo, basta con seleccionar la línea y pulsar en "Delete Row".

Una vez definidos todos los estímulos que necesitemos, podemos activarlos mientras se va
simulando la ejecución del programa. Basta con pulsar con el ratón en el botón correspondiente,
por eso es conveniente mantener abierta la ventana de los estímulos durante la simulación.

Tenemos la opción de guardar el fichero de estímulos. Basta con actuar sobre Save, darle el
mismo nombre que al resto del proyecto y guardarlo en el mismo subdirectorio. Posteriormente
podemos recuperarlo actuando sobre: Debugger > Stimulus > Open Workbook.
volver a índice
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 27

DEBUGGER ICD2: Guía rápida de utilización


El simulador MPLAB SIM que hemos comentado anteriormente no ofrece la posibilidad de
analizar fácilmente qué es lo que sucede cuando se incluyen bloques que interaccionan con el
exterior, como por ejemplo una conexión a un bus RS232 o la utilización del conversor A/D.

Para solventar ese problema y poder depurar los programas que utilicen dichos módulos, vamos a
utilizar el debugger MPLAB ICD2 (fig 8.1). El manejo de este dispositivo es análogo al que se
acaba de ver para el simulador, si bien ofrece la ventaja de permitir ver el funcionamiento del
programa directamente sobre el circuito final y comportándose tal y como lo haría el PIC en
tiempo real.

fig 8.1: aspecto externo del MPLAB ICD2

8.- CONEXIÓN DEL MPLAB ICD2

La conexión del debugger ICD2 va asociada a la conexión de la placa de prueba PICDEM2


PLUS, que es donde va a estar situado el microcontrolador, como se puede observar en la figura
8.2:

- fig 8.2: ICD2 y PICDEM2 PLUS -


GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 28

La placa de prueba PICDEM2 PLUS, que podemos ver con más detalle en la figura 8.3, tiene,
entre otras cosas:

• un LED que indica cuándo está conectada la alimentación


• 4 LEDS conectados en cátodo común a RB0, RB1, RB2 y RB3 (encienden con "1")
• el oscilador es de cristal de cuarzo (tipo XT) de 4 MHz
• un pulsador conectado a la patilla RA4 (activo en "0")
• un pulsador conectado a RB0 (activo en "0")
• un pulsador conectado a la patilla MCLR (reset externo)
• un zumbador piezoeléctrico conectado a RC2

- fig 8.3: placa de prueba PICDEM2 plus -

La conexión entre el debugger y la placa de prueba se realiza mediante un cable RJ45 (fig 8.4).
Debemos tener cuidado con este cable dado que es relativamente fácil que se corte alguna de sus
líneas y deje de hacer conexión. Por tanto, es conveniente que permanezca siempre recto, sin
estar doblado.

- fig 8.4: cable RJ45 -


GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 29

La fuente de alimentación (fig 8.5) debe estar conectada a la placa PICDEM2 PLUS, como se
puede observar en la figura 8.2.

-fig 8.5: fuente de alimentación de la placa -

Por último, conectamos el cable que une el ICD2 con el ordenador (fig 8.6). Debemos utilizar el
puerto USB de la derecha.

- fig 8.6: cable de conexión al ordenador -

Una vez que ya hemos realizado todas las conexiones podemos comenzar a utilizar el debugger
ICD2.

En caso de que al conectar el ICD2 al ordenador nos aparezca el mensaje de "nuevo hardware
encontrado" quiere decir que no está cargado el driver necesario para el funcionamiento por lo
que se vuelve imprescindible hacerlo.

Entrando como usuario, e introduciendo la clave correspondiente, vamos respondiendo a las


preguntas que nos hace el asistente para el nuevo hardware indicándole dónde está situado el
driver que busca:
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 30

C:\Archivos de Programa\Microchip\MPLAB IDE\ICD2\Drivers

Y el fichero es:

C:\Windows\inf\icd2w2k.inf

Pulsamos en "Aceptar" y pasamos a otra pantalla en la que nos dice "examinar y buscar en:".
Escogemos la opción:

C:\Archivos de Programa\Microchip\MPLAB IDE\ICD2\Drivers\icd2w2k

Una vez hecho este paso, en la ventana de salida ("output") aparece:

MPLAB ICD2 Ready

El dispositivo está listo para ser utilizado.


volver a índice
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 31

9.- UTILIZACIÓN DEL DEBUGGER ICD2

Para utilizar esta herramienta debemos entrar en el menú del debugger y, en lugar de seleccionar
el simulador MPLAB SIM como hicimos anteriomente (apartado 5), seleccionamos MPLAB
ICD2 (fig 9.1)

fig 9.1: selección de MPLAB ICD2 –

Nos aparecen entonces unos nuevos iconos en la barra de herramientas (fig. 9.2) y un mensaje en
la ventana de salida (fig. 9.3). El mensaje nos advierte de que el ICD2 está desconectado del
ordenador y, respecto a los iconos, solamente se puede actuar sobre el de la derecha que es el que
establece dicha conexión.

- fig 9.2: iconos del debugger -

- fig 9.3: error en la conexión del ICD2 -

Actuamos sobre ese icono y, al hacerlo, es posible que nos aparezca una ventana con el mensaje:
“Invalid target device id” (fig 9.4):

Las causas más habituales de este mensaje son dos:

a) El procesador especificado en el programa fuente (list) no coincide con el que hemos


seleccionado al generar el proyecto (fig 3.2). En el mensaje podemos ver que los
números de ambos no coinciden (no se trata de los modelos de microprocesadores
sino de números de referencia para el MPLAB).
b) El cable de conexión del ICD2 a la placa PICDEM está suelto o cortado. En este caso,
el número de referencia del procesador que ha encontrado es el 0x00.
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 32

fig 9.4: mensaje de error

NO ACTIVE NUNCA LA CASILLA: "Don't display this warning again"

Procedemos a subsanar el error e intentamos conectar de nuevo.

Una vez establecida la conexión, en la ventana de salida nos aparece un nuevo mensaje (fig 9.5) y
pueden activarse los cuatro iconos (fig 9.6):

- fig 9.5: MPLAB ICD2 conectado - - fig 9.6: iconos del debugger -

A partir de este momento, podemos simular el funcionamiento de nuestro programa utilizando la


placa PICDEM2 PLUS. El primer paso es cargar el programa en el debugger, lo que se efectúa o
bien desde el menú del debugger o bien utilizando el icono correspondiente, que en este caso es
el primero de la izquierda (program target device) (fig 9.6).

Tras cargar el programa, la ventana de salida nos informa de que la programación se ha efectuado
(programming succeeded) (fig 9.7):
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 33

- fig 9.7: dispositivo programado -

Al igual que sucedía con el simulador (MPLAB SIM) podemos ejecutar el programa de tres
formas: paso a paso (step), modo animado (animate) o total (run). Las diferentes modalidades se
seleccionan en el menú del debugger o con los iconos correspondientes, que son los mismos que
en el caso del simulador y que permanecen activos.

La ventaja es que ahora podemos utilizar los recursos de la placa, como por ejemplo los
pulsadores, sin tener que utilizar los estímulos del simulador. Las ventanas de observación siguen
siendo válidas y nos permiten ver los cambios en los diferentes registros si ejecutamos el
programa paso a paso o en modo animado aunque, eso sí, en ambos casos el programa no se
ejecuta en tiempo real.

La ventana de salida (output) nos va dando cuenta de todos los pasos que se realizan. (En la
figura 9.8 podemos observar la ventana de salida en una ejecución en modo animado (animate).

- fig 9.8: ejecución en modo animado desde el debugger -

Si, por el contrario, seleccionamos el modo total (run), las ventanas de observación ya no nos
permiten ver la evolución de los registros en cada cambio, sólo podremos ver su estado final
cuando detengamos la ejecución del programa. La ventaja es que en este caso la ejecución del
programa es en tiempo real.
volver a índice
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 34

10.- PROGRAMACIÓN DEL MICROCONTROLADOR

La herramienta ICD2 también nos permite programar el microcontrolador, en este caso un PIC
16F877A, con lo que este dispositivo podrá funcionar en cualquier circuito. En particular, podrá
funcionar en la placa PICDEM2 PLUS, pero para eso hay que desconectar el cable que la une al
debugger.

Los pasos a seguir en este caso son los siguientes. En primer lugar entramos en el menú de
"Programmer" y seleccionamos como programador al MPLAB ICD2 (fig 10.1):

- fig 10.1: selección del programador -

Una vez seleccionado, nos aparece una ventana de advertencia (fig 10.2) que nos indica que
MPLAB ICD2 no puede operar simultáneamente como debugger y como programador. Tenemos
que escoger entonces de qué modo queremos que siga operando. Si queremos que anule el
debugger y programe el PIC debemos pulsar en "OK". Si queremos seguir utilizando el ICD2
como debugger debemos de pulsar en "Cancel".

NO ACTIVE NUNCA LA CASILLA: "Don't display this warning again"

- fig 10.2: mensaje de advertencia al cambiar el ICD2 a programador -


GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 35

Esta ventana también nos aparece en el caso contrario, es decir, si estamos trabajando con el
ICD2 como programador y queremos pasar a utilizarlo como debugger. Debemos decidir en qué
modalidad queremos operar.

A continuación, la ventana de salida nos advierte de que el ICD2 está desconectado (fig 10.3) y
por lo tanto debemos establecer de nuevo la conexión, como hicimos anteriormente (fig 9.2).

- fig 10.3: aviso de no conexión -

Al establecerse la conexión, la ventana de salida nos da un mensaje como el de la figura 10.4


(MPLAB ICD2 Ready), a la vez que nos aparecen nuevos iconos en la barra de herramientas (fig
10.5).

- fig 10.4: el programador está preparado -

- fig 10.5: nuevos iconos -

Para programar el microcontrolador debemos activar la opción "program target device", cuyo
icono es el primero de la izquierda.

Una vez que la memoria permanente del PIC ya contiene el fichero hexadecimal de nuestro
programa, la ventana de salida nos da el mensaje de la figura 10.6 (Programming succeeded):
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 36

- fig 10.6: el PIC está programado -

El PIC ya está dispuesto para ejecutar el programa en cualquier circuito. Si se desea trabajar con
la placa PICDEM, debemos desconectarla del ICD2.
volver a índice

Você também pode gostar