guia rapida mplab7

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

Upload: electroz3l6

Post on 25-Jun-2015

144 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Guia Rapida Mplab7

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

Page 2: Guia Rapida Mplab7

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

Page 3: Guia Rapida Mplab7

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

Page 4: Guia Rapida Mplab7

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

Page 5: Guia Rapida Mplab7

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.

Page 6: Guia Rapida Mplab7

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.

Page 7: Guia Rapida Mplab7

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

Page 8: Guia Rapida Mplab7

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 -

Page 9: Guia Rapida Mplab7

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).

Page 10: Guia Rapida Mplab7

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 -

Page 11: Guia Rapida Mplab7

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 -

Page 12: Guia Rapida Mplab7

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

Page 13: Guia Rapida Mplab7

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

Page 14: Guia Rapida Mplab7

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:

Page 15: Guia Rapida Mplab7

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

Page 16: Guia Rapida Mplab7

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

Page 17: Guia Rapida Mplab7

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

Page 18: Guia Rapida Mplab7

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

3

1

- fig 5.2: nuevas opciones tras activar el simulador –

2

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 -

Page 19: Guia Rapida Mplab7

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ú:

Page 20: Guia Rapida Mplab7

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):

Page 21: Guia Rapida Mplab7

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

Page 22: Guia Rapida Mplab7

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)

Page 23: Guia Rapida Mplab7

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

Page 24: Guia Rapida Mplab7

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:

Page 25: Guia Rapida Mplab7

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”.

Page 26: Guia Rapida Mplab7

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

Page 27: Guia Rapida Mplab7

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 -

Page 28: Guia Rapida Mplab7

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

La placa de prueba PICDEM2 etalle en la figura 8.3, tiene,

• un LED que indica cuándo está conectada la alimentación B3 (encienden con "1")

PLUS, que podemos ver con más dentre otras cosas:

• 4 LEDS conectados en cátodo común a RB0, RB1, RB2 y R• 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)

a conexión entre el debugger y la placa de prueba se realiza mediante un cable RJ45 (fig 8.4).

• un zumbador piezoeléctrico conectado a RC2

- fig 8.3: placa de prueba PICDEM2 plus -

LDebemos 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 -

Page 29: Guia Rapida Mplab7

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

a fuente de alimentación (fig 8.5) debe estar conectada a la placa PICDEM2 PLUS, como se

Lpuede observar en la figura 8.2.

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

or último, conectamos el cable que une el ICD2 con el ordenador (fig 8.6). Debemos utilizar el P

puerto USB de la derecha.

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

na vez que ya hemos realizado todas las conexiones podemos comenzar a utilizar el debugger

n caso de que al conectar el ICD2 al ordenador nos aparezca el mensaje de "nuevo hardware

ntrando 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:

UICD2. Eencontrado" quiere decir que no está cargado el driver necesario para el funcionamiento por lo que se vuelve imprescindible hacerlo. E

Page 30: Guia Rapida Mplab7

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

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

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

MPLAB ICD2 Ready

l dispositivo está listo para ser utilizado. volver a índice

P

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

U

E

Page 31: Guia Rapida Mplab7

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.

Page 32: Guia Rapida Mplab7

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):

Page 33: Guia Rapida Mplab7

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

Page 34: Guia Rapida Mplab7

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 -

Page 35: Guia Rapida Mplab7

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):

Page 36: Guia Rapida Mplab7

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