Está en la página 1de 36

GUA RPIDA PARA MPLAB 7.

X y ICD 2

MPLAB IDE 7.x: Manual de utilizacin


ndice: I: MPLAB IDE 1.- Arrancando MPLAB 7 2.- Creacin del fichero fuente (.asm) Normas de escritura del programa fuente 3.- Creacin del proyecto 4.- Ensamblado del proyecto errores, advertencias y mensajes 5.- Simulacin del proyecto 6.- Observando el funcionamiento 7.- Estmulos II: MPLAB ICD2 8.- Conexin del MPLAB ICD2 9.- Utilizacin del debugger ICD2 10.- Programacin del microcontrolador

GUA RPIDA PARA MPLAB 7.X y ICD 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 configuracin tengan los valores adecuados para nuestra aplicacin. 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 guardin, el temporizador de arranque o la proteccin del programa, entre otras opciones segn los modelos de PIC. Si necesitamos cambiar alguna de las opciones que aparecen tenemos que desactivar la casilla: "Configuration Bits set in code" (vase la figura 1.2), ya que si est activada slo admite como palabra de configuracin la que venga especificada en el programa fuente. Para nuestras prcticas (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

GUA RPIDA PARA MPLAB 7.X y ICD 2

perro guardin ni la proteccin del programa. Adems, para poder utilizar la herramienta ICD2, debemos tener desactivada la opcin "low voltage program" (fig 1.2).

- fig 1.2: bits de configuracin 2) tambin podemos incluir la directiva "__CONFIG" en el programa fuente, como veremos seguidamente. volver a ndice

GUA RPIDA PARA MPLAB 7.X y ICD 2 2.- CREACIN DEL FICHERO FUENTE

El primer paso consiste en escribir el programa fuente. Seguidamente, se crea un proyecto, se le aade 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 continuacin 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 continuacin: Se crea con cualquier editor de texto en caracteres ASCII. Debe cumplir: 1) En cada lnea puede haber hasta 4 tipos de informacin: etiquetas, mnemnicos, operandos y comentarios. 2) Su orden y posicin es importante: las etiquetas deben comenzar en la columna 1 los mnemnicos pueden comenzar en la columna 2 (o posteriores) los operandos deben ir detrs de los mnemnicos los comentarios pueden ir detrs de los operandos, de los mnemnicos o de las etiquetas, o pueden comenzar en cualquier columna si el primer carcter que no sea un espacio es ; . 3) La anchura mxima de lnea es de 255 caracteres. 4) La etiqueta y los mnemnicos, y stos y los operandos deben estar separados por uno o ms espacios. Los operandos entre s pueden ir separados por una , . 5) Y tambin: etiquetas: la etiqueta puede ir seguida por : , ESPACIO, TAB, o el final de la lnea, sin que se consideren parte de ella deben comenzar por una letra o por _ , y pueden tener caracteres alfanumricos, _ , y ? . pueden tener hasta 31 caracteres, y distinguen maysculas (por defecto) aunque esta opcin se puede anular con CLI

GUA RPIDA PARA MPLAB 7.X y ICD 2

mnemnicos: los mnemnicos de las instrucciones de ensamblador, las directivas y las llamadas a macros deben comenzar, al menos, en la columna 2 si en la misma lnea hay una etiqueta, deben estar separados por uno o ms espacios (valen las TAB) operandos: los operandos deben separarse de los mnemnicos por uno o ms espacios (o TAB) los operandos que vienen en listas deben separarse por , si un mnemnico requiere un nmero fijo de operandos, todo lo que venga detrs de ellos en la misma lnea se ignora (se permiten comentarios al final de la lnea) si un mnemnico permite un nmero variable de operandos, el final de la lista de operandos viene determinado por el final de la lnea o por el inicio de un comentario comentarios: los comentarios al final de una lnea deben estar separados del resto de la lnea por uno o ms espacios (o TAB) todo lo que hay en una lnea detrs del carcter de comentario y hasta el final de ella, se ignora Como podemos observar en la figura 2.1, una de las lneas del programa utiliza la directiva "CONFIG" que se encarga de que los bits de la palabra de configuracin 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 guardin y desactiva la programacin a baja tensin. Este mtodo 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 configuracin, aunque se realicen modificaciones en el programa o se cambie de ordenador o de ICD2. En la figura 2.1 podemos observar tambin que el fichero no tiene todava un nombre (untitled) y que todo el texto tiene el mismo color.

GUA RPIDA PARA MPLAB 7.X y ICD 2

- 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 extensin .asm. Para eso hay que tener cuidado con el formato y en la ventana "tipo" debe estar seleccionada la opcin: Assembly Source Files.

GUA RPIDA PARA MPLAB 7.X y ICD 2

- 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 ms informacin acudir a: Help > MPLAB Editor Help. Si posteriormente se realiza alguna modificacin 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

GUA RPIDA PARA MPLAB 7.X y ICD 2 3.- CREACIN DEL PROYECTO

1) El siguiente paso consiste en la creacin de un Proyecto. La forma ms 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: creacin 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: seleccin del modelo de PIC -

GUA RPIDA PARA MPLAB 7.X y ICD 2

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 errnea debemos pulsar "Browse" para localizarlo.

- fig 3.3: seleccin 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).

GUA RPIDA 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 -

GUA RPIDA 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 aadir (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 automtico).

- fig 3.6: seleccionando ficheros para aadir 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 -

GUA RPIDA PARA MPLAB 7.X y ICD 2

12

Si esos datos no son correctos, debemos pulsar "Atrs" 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 aadir archivos y salvar proyectos pulsando el botn derecho del ratn cuando nos encontremos en la ventana de proyecto. Los ficheros tambin se pueden borrar manualmente seleccionndolos y utilizando el botn derecho del ratn. volver a ndice

GUA RPIDA PARA MPLAB 7.X y ICD 2 4.- ENSAMBLADO DEL PROYECTO

13

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. Tambin puede utilizarse el icono correspondiente de la barra de herramientas. El caso ms comn 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 lnea 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. Adems, en la pantalla "output" tambin tenemos disponible otras informaciones, como "messages", "warnings" y "errors". De estos tres tipos, el ms importante porque impide la generacin del fichero hexadecimal son los "errors", mientras que los otros dos tipos no impiden el ensamblado del programa fuente. Pasemos a comentarlos a continuacin: Errores (Error). Impiden la generacin de cdigo mquina y por lo tanto es imprescindible corregirlos para poder continuar. Los ms habituales, con su nmero de caracterizacin, son: "[105] Cannot open file". El ensamblador no es capaz de abrir algn fichero. Debemos asegurarnos que ese fichero existe o que tiene la trayectoria correcta. "[107] Illegal Digit". Hay un dgito no vlido en un nmero. Los dgitos vlidos son: en binario: 0 y 1 en octal: de 0 a 7

GUA RPIDA 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 Carcter". Hay un carcter no vlido en una etiqueta. Los caracteres vlidos son: letras, nmeros (siempre que no sean el primer carcter de la etiqueta), subrayado "_" e interrogacin "?". "[109] Unmatched (" y "[110] Unmatched )". Parntesis sin cerrar o abrir. "[111] Missing Symbol". A las directivas EQU o SET no se les ha proporcionado el valor numrico. "[113] Symbol not previously defined". Hacemos referencia a un smbolo que todava 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 lnea; basta con poner la etiqueta, sola, en la lnea anterior, y 2) tampoco se permiten las palabras "HIGH", "LOW", "PAGE" ni "BANK" como etiquetas. "[122] Illegal opcode". El mnemnico de la instruccin no est escrito correctamente o no existe. "[124] Illegal argument". El argumento de la directiva no es vlido. "[126] Argument out of range". El argumento de la instruccin o de la directiva es mayor del valor admisible. "[128] Missing argument(s)". A la instruccin le falta algn dato.

Debemos tener en cuenta que la eliminacin de estos errores simplemente permite obtener un fichero hexadecimal, pero no tenemos ninguna informacin acerca de si nuestro programa funcionar o no correctamente. Advertencias (Warning). Estos mensajes no impiden la obtencin del fichero hexadecimal, pero advierten de algo que al ensamblador le parece extrao. Es conveniente comprobarlos todos. Los ms tpicos son: "[202] Argument out of range. Least significant bits used". El argumento utilizado tiene ms bits de los permisibles, el ensamblador pierde el (o los) de ms peso. "[203] Found opcode in column 1". El mnemnico de una instruccin comienza en la columna 1, que es el lugar reservado para las etiquetas. "[205] Found directive in column 1". El mnemnico de una directiva comienza en la columna 1, que es el lugar reservado para las etiquetas. "[207] Found label after column 1". El mnemnico 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 obtencin de cdigo mquina y aaden informacin adicional. Los ms tpicos son:

GUA RPIDA 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 operacin 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, dnde se quiere almacenar el resultado de la operacin que realiza la instruccin. El destino es un solo bit y por tanto slo 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 instruccin. 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 haba trabajado. Este mensaje nos advierte de esta situacin.

Para tratar los mensajes, el camino ms rpido es hacer doble click en la lnea del fichero "output" en la que est el mensaje. Eso hace que el cursor se ponga en la lnea del programa fuente que da lugar a la aparicin de ese mensaje y nos permite corregirlo. A continuacin, el fichero fuente se graba de nuevo, "File > Save", y se vuelve a ensamblar: "Project > Build All". El proceso se repite hasta que estn 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 tambin 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 cdigo nombre.asm: el programa fuente que nosotros escribimos

GUA RPIDA 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 lnea que lo origina. nombre.err: fichero de errores que indica los errores (slamente 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

GUA RPIDA PARA MPLAB 7.X y ICD 2 5.- SIMULACIN DEL PROYECTO

17

Es lgico 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 continuacin, introducir estmulos externos y observar la ejecucin del programa objeto. La velocidad de ejecucin, aunque llega siempre a la mxima posible, es varios rdenes de magnitud ms baja que la del procesador real y depende del ordenador y de otros factores. Puede llegar al orden de unos ms por instruccin (un PIC real, con un cristal de 4 MHz, emplea 1 s por instruccin, 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 : seleccin del simulador A continuacin 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

GUA RPIDA PARA MPLAB 7.X y ICD 2

18

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

GUA RPIDA PARA MPLAB 7.X y ICD 2

19

En primer lugar, es conveniente que el simulador empiece por ejecutar la primera instruccin del programa, para eso realizamos un "reset" del procesador: Debugger > Reset > Processor reset O tambin podemos actuar sobre el teclado o sobre el icono (figura 5.4):

- fig 5.4: iconos y teclas especficas 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 instruccin que se va a simular en cuanto demos la orden.

- fig 5.5: instruccin 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:

GUA RPIDA PARA MPLAB 7.X y ICD 2

20

Debugger > Step Into O tambin 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 tambin en el icono correspondiente (fig 5.4). Para detener la ejecucin del programa debemos actuar en: Debugger > Halt O tambin actuando sobre la tecla F5 o sobre el icono correspondiente (fig 5.4). Tambin 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 simulacin no dure excesivamente. Existen varias formas de conseguirlo, pero slo 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):

GUA RPIDA PARA MPLAB 7.X y ICD 2

21

- fig 5.7: acelerando la simulacin b) desactivar el divisor de frecuencia del TMR0 en la configuracin del registro OPTION_REG en el fichero fuente (nombre.asm), es decir, o bien asignrselo al perro guardin (bit 3 de OPTION_REG en "1"), o bien ponerlo en su mnimo 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 aplicacin 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 instruccin. Se activa en: Debugger > Run O tambin actuando sobre la tecla F9 o sobre el icono correspondiente (fig 5.4). En barra de estado aparece la palabra "running". Para detener la ejecucin del programa debemos actuar en: Debugger > Halt O tambin 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 ejecucin del programa. volver a ndice

GUA RPIDA PARA MPLAB 7.X y ICD 2 6.- OBSERVANDO EL FUNCIONAMIENTO

22

Hay varias formas de observar lo que sucede al ir ejecutndose 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 informacin acerca de la ejecucin del programa. El inconveniente es que tanto el contenido de los registros como su direccin pueden estar en hexadecimal por lo que es bastante engorroso. Adems, hay que tener en cuenta que en programas complejos pueden ser muchos los valores que cambian con cada instruccin, lo que dificulta el seguimiento de unas pocas variables. Para evitar este problema se puede abrir una "ventana de observacin": 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 smbolos (symbol) que queremos observar.

- fig 6.1: ventana de observacin Una vez que tenemos en la ventana el smbolo que queremos observar, podemos escoger el formato en que queremos que aparezca seleccionndolo y apretando el botn derecho del ratn para entrar en sus propiedades. Ah podremos escoger varias opciones: smbolo nmero de bits a observar formato (aqu podemos escoger tambin un solo bit)

GUA RPIDA PARA MPLAB 7.X y ICD 2

23

Por ejemplo, vamos a observar el registro CONTADOR como nmero decimal (fig 6.2) y del PORTA slo vamos a observar el bit 4 (al que est conectado el pulsador) (fig 6.3):

- fig 6.2: formato decimal -

- fig 6.3: seleccin de un bit -

La figura 6.4 nos muestra cmo quedara la ventana si escogemos formato binario para PORTB, decimal para CONTADOR y el bit 4 para PORTA:

- fig 6.4: diferentes formatos Tambin podemos situar el cursor sobre la barra "address" y actuar sobre el botn derecho del ratn. Eso nos permite escoger formatos de presentacin. volver a ndice

GUA RPIDA PARA MPLAB 7.X y ICD 2 7.- ESTMULOS

24

El simulador evala los estmulos y genera todas las respuestas en los lmites de cada ciclo de instruccin (Tcy = 4Tosc). Por ese motivo, algunos sucesos fsicos no pueden simularse con precisin, en particular los sucesos puramente asncronos y los sucesos de periodo ms corto que un ciclo de instruccin. Los estmulos generan seales para el simulador. Podemos poner patillas a "0" o a "1" y cargar valores directamente en registros. Existen cuatro tipos: - Estmulos asncronos - Estmulos de terminales - Estmulos de registros - Estmulos de reloj Nos centramos en los estmulos asncronos. Permite simular +5V y 0V en terminales configurados como entradas. Se activan haciendo click en el botn correspondiente de la ventana de dilogo. Para definirlos debemos entrar en (fig 7.2): Debugger > Stimulus > New Workbook

- fig 7.1: simulacin de estmulos con lo que aparecer una ventana como la indicada en la figura 7.2:

GUA RPIDA PARA MPLAB 7.X y ICD 2

25

- fig 7.2: activacin de estmulos Activando la pestaa "Asynch" podemos entonces definir los estmulos. La primera columna (fire) es la que tenemos que pulsar para que se ejecute la simulacin del estmulo que estamos configurando. La segunda columna (Pin/SFR) nos permite escoger la patilla en la que queremos simular el estmulo. Basta con pulsar dentro del cuadro en blanco para que nos aparezcan las opciones. En la tercera columna (Action) escogemos la accin a simular. Tenemos cinco posibilidades: 1) set high: simula una tensin "1" en la patilla seleccionada 2) set low: simula una tensin "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 duracin 5) pulse low: simula un pulso en "0" de corta duracin Las siguientes columnas no tienen inters por ahora. En la figura 7.3 podemos ver un ejemplo de pantalla con un estmulo definido: cambio de valor en el terminal RA4 cada vez que se pulse en fire.

GUA RPIDA PARA MPLAB 7.X y ICD 2

26

- fig 7.3: estmulo definido para RA4 Si queremos eliminar un estmulo, basta con seleccionar la lnea y pulsar en "Delete Row". Una vez definidos todos los estmulos que necesitemos, podemos activarlos mientras se va simulando la ejecucin del programa. Basta con pulsar con el ratn en el botn correspondiente, por eso es conveniente mantener abierta la ventana de los estmulos durante la simulacin. Tenemos la opcin de guardar el fichero de estmulos. 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

GUA RPIDA PARA MPLAB 7.X y ICD 2

27

DEBUGGER ICD2: Gua rpida de utilizacin


El simulador MPLAB SIM que hemos comentado anteriormente no ofrece la posibilidad de analizar fcilmente qu es lo que sucede cuando se incluyen bloques que interaccionan con el exterior, como por ejemplo una conexin a un bus RS232 o la utilizacin del conversor A/D. Para solventar ese problema y poder depurar los programas que utilicen dichos mdulos, vamos a utilizar el debugger MPLAB ICD2 (fig 8.1). El manejo de este dispositivo es anlogo 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 comportndose tal y como lo hara el PIC en tiempo real.

fig 8.1: aspecto externo del MPLAB ICD2 8.- CONEXIN DEL MPLAB ICD2 La conexin del debugger ICD2 va asociada a la conexin 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 -

GUA RPIDA PARA MPLAB 7.X y ICD 2

28

La placa de prueba PICDEM2 PLUS, que podemos ver con ms detalle en la figura 8.3, tiene, entre otras cosas: un LED que indica cundo est conectada la alimentacin 4 LEDS conectados en ctodo comn 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 piezoelctrico conectado a RC2

- fig 8.3: placa de prueba PICDEM2 plus La conexin 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 fcil que se corte alguna de sus lneas y deje de hacer conexin. Por tanto, es conveniente que permanezca siempre recto, sin estar doblado.

- fig 8.4: cable RJ45 -

GUA RPIDA PARA MPLAB 7.X y ICD 2

29

La fuente de alimentacin (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 alimentacin 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 conexin 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 indicndole dnde est situado el driver que busca:

GUA RPIDA 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 opcin: 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

GUA RPIDA PARA MPLAB 7.X y ICD 2 9.- UTILIZACIN DEL DEBUGGER ICD2

31

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: seleccin 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 conexin.

- fig 9.2: iconos del debugger -

- fig 9.3: error en la conexin 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 ms 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 nmeros de ambos no coinciden (no se trata de los modelos de microprocesadores sino de nmeros de referencia para el MPLAB). b) El cable de conexin del ICD2 a la placa PICDEM est suelto o cortado. En este caso, el nmero de referencia del procesador que ha encontrado es el 0x00.

GUA RPIDA 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 conexin, 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 efecta 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 programacin se ha efectuado (programming succeeded) (fig 9.7):

GUA RPIDA PARA MPLAB 7.X y ICD 2

33

- fig 9.7: dispositivo programado Al igual que suceda 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 estmulos del simulador. Las ventanas de observacin siguen siendo vlidas 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 ejecucin en modo animado (animate).

- fig 9.8: ejecucin en modo animado desde el debugger Si, por el contrario, seleccionamos el modo total (run), las ventanas de observacin ya no nos permiten ver la evolucin de los registros en cada cambio, slo podremos ver su estado final cuando detengamos la ejecucin del programa. La ventaja es que en este caso la ejecucin del programa es en tiempo real. volver a ndice

GUA RPIDA PARA MPLAB 7.X y ICD 2 10.- PROGRAMACIN DEL MICROCONTROLADOR

34

La herramienta ICD2 tambin 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: seleccin del programador Una vez seleccionado, nos aparece una ventana de advertencia (fig 10.2) que nos indica que MPLAB ICD2 no puede operar simultneamente 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 -

GUA RPIDA PARA MPLAB 7.X y ICD 2

35

Esta ventana tambin 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 continuacin, la ventana de salida nos advierte de que el ICD2 est desconectado (fig 10.3) y por lo tanto debemos establecer de nuevo la conexin, como hicimos anteriormente (fig 9.2).

- fig 10.3: aviso de no conexin Al establecerse la conexin, 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 opcin "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):

GUA RPIDA 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

También podría gustarte