Manual MPLAB IDE

18
GUÍA RÁPIDA PARA MPLAB 6.X 1 MPLAB IDE 6.x. Manual de utilización Índice: 1.- Arrancando MPLAB 6 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 1.- ARRANCANDO MPLAB 6 (IDE:Integrated Development Environment: Entorno de Desarrollo Integrado). Para arrancar MPLAB 6 debemos correr "MPLAB IDE". El caso más común es que lo tengamos instalado en la carpeta de "Archivos de Programa" de nuestro ordenador. Si no es así, debemos ejecutar el fichero "mplab.exe" que se encontrará en el directorio que hayamos escogido para la instalación, dentro de la carpeta "dlls". Una vez arrancado nos encontramos con una pantalla como la de la figura 1.1: - fig 1.1 -

Transcript of Manual MPLAB IDE

Page 1: Manual MPLAB IDE

GUÍA RÁPIDA PARA MPLAB 6.X 1

MPLAB IDE 6.x. Manual de utilización

Índice: 1.- Arrancando MPLAB 6 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

1.- ARRANCANDO MPLAB 6 (IDE:Integrated Development Environment: Entorno de Desarrollo Integrado). Para arrancar MPLAB 6 debemos correr "MPLAB IDE". El caso más común es que lo tengamos instalado en la carpeta de "Archivos de Programa" de nuestro ordenador. Si no es así, debemos ejecutar el fichero "mplab.exe" que se encontrará en el directorio que hayamos escogido para la instalación, dentro de la carpeta "dlls". Una vez arrancado nos encontramos con una pantalla como la de la figura 1.1:

- fig 1.1 -

Page 2: Manual MPLAB IDE

GUÍA RÁPIDA PARA MPLAB 6.X 2

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. Cuando el fichero hexadecimal se va a grabar en la memoria del PIC es conveniente no tener activado ni el perro guardián ni la protección del programa.

volver a índice 2.- CREACIÓN DEL FICHERO FUENTE: El primer paso consiste en escribir el programa fuente. A continuación, se crea un proyecto, se le añade ese programa fuente y finalmente se ensambla y se simula. 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 donde escribirlo. Aquí tenemos dos opciones: 1) escribir el programa, y 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:

Page 3: Manual MPLAB IDE

GUÍA RÁPIDA PARA MPLAB 6.X 3

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

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

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.1. Escogemos el directorio donde guardarlo teniendo en cuenta que debe tener la extensión .asm. Para eso hay que tener cuidado con el formato y en la ventana "Save as type" debe estar seleccionada la opción: Assembly Source Files.

Page 4: Manual MPLAB IDE

GUÍA RÁPIDA PARA MPLAB 6.X 4

- fig 2.1 -

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

volver a índice 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 -

Page 5: Manual MPLAB IDE

GUÍA RÁPIDA PARA MPLAB 6.X 5

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

-fig 3.2 -

Seleccionar "Siguiente" para continuar. 3) Seleccionar la herramienta a utilizar que debe ser Microchip MPASM Toolsuite. Al hacerlo nos aparece en la ventana siguiente las herramientas disponibles (fig 3.3).

- fig 3.3 -

Page 6: Manual MPLAB IDE

GUÍA RÁPIDA PARA MPLAB 6.X 6

Seleccionamos la que nos interese que, para iniciarnos en el manejo del programa, debe ser "MPASM Assembler (mpasmwin.exe")". En la ventana siguiente (Location of select tool) debe figurar la trayectoria completa de ese ejecutable. Si esa trayectoria está incompleta o es errónea debemos pulsar "Browse" para localizarlo. Seleccionar "Siguiente" para continuar. 4) El siguiente paso es asignarle un nombre al proyecto (fig 3.4).

- fig 3.4 -

Seleccionar "Siguiente" para continuar. 5) La pantalla siguiente (fig 3.5) nos pregunta qué ficheros queremos añadir a nuestro proyecto. Debemos seleccionar y añadir (pulsar en "Add") el fichero fuente (nombre.asm).

Page 7: Manual MPLAB IDE

GUÍA RÁPIDA PARA MPLAB 6.X 7

- fig 3.5 -

Seleccionar "Siguiente" para continuar. Una vez seleccionado, el fichero se añade al proyecto (fig 3.6):

- fig 3.6 -

Seleccionar "Siguiente" para continuar.

Page 8: Manual MPLAB IDE

GUÍA RÁPIDA PARA MPLAB 6.X 8

Aparece entonces una pantalla con un resumen del proyecto que queremos crear (fig 3.7):

- fig 3.7 -

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 -

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 9: Manual MPLAB IDE

GUÍA RÁPIDA PARA MPLAB 6.X 9

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 en la pantalla aparezca un mensaje como éste:

Deleting intermediary files... done. Executing: "C:\Archivos de programa\MPLAB IDE 6_40 \MCHIP_Tools \MPASMWIN.EXE" /q /p16F84 "prueba1.asm" /l"prueba1.lst" /e"prueba1.err" Warning[205] E:\PIC\EJEMPLOS\PRUEBA1.ASM 3 : Found directive in column 1. (include) Error[113] E:\PIC\EJEMPLOS\PRUEBA1.ASM 6 : Symbol not previously defined (inicio) Message[302] E:\PIC\EJEMPLOS\PRUEBA1.ASM 10 : Register in operand not in bank 0. Ensure that bank bits are correct. Warning[207] E:\PIC\EJEMPLOS\PRUEBA1.ASM 12 : Found label after column 1. (inc) Error[122] E:\PIC\EJEMPLOS\PRUEBA1.ASM 12 : Illegal opcode (FSR) Error[113] E:\PIC\EJEMPLOS\PRUEBA1.ASM 13 : Symbol not previously defined (inicio) Halting build on first failure as requested. BUILD FAILED: Fri Feb 10 11:49:09 2006

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 tampoco podremos simular el comportamiento de nuestro programa. 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 10: Manual MPLAB IDE

GUÍA RÁPIDA PARA MPLAB 6.X 10

· en decimal: de 0 a 9 · en hexadecimal: de 0 a 9, de a a f, y de A a F en hexadecimal

- "[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 11: Manual MPLAB IDE

GUÍA RÁPIDA PARA MPLAB 6.X 11

- "[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 y donde se puede ver también el nombre del fichero obtenido (extensión .cod) y su trayectoria completa.

- fig 4.1 -

Por último, la pantalla output también informa de:

• herramienta utilizada: mpasmwin, con su trayectoria completa • ficheros: · nombre.asm: el programa fuente que nosotros escribimos

· 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

• procesador para el que se ha ensamblado.

Page 12: Manual MPLAB IDE

GUÍA RÁPIDA PARA MPLAB 6.X 12

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

volver a índice 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). Suele ser habitual entonces que una vez que nuestro programa está pensado para tiempo real, tengamos que "acelerarlo" para que su simulación no dure excesivamente. Como caso más común se tiene el de utilizar divisor de frecuencia. Pues bien, suele ser conveniente desactivarlo para la simulación volviendo a activarlo para la aplicación real. Eso nos lleva a un nuevo ensamblado en el que no debe aparecer ningún mensaje diferente a los obtenido anteriormente. Para arrancar el simulador debemos entrar en (fig 5.1):

Debugger > Select Tool > MPLAB SIM

- fig 5.1 -

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"

Page 13: Manual MPLAB IDE

GUÍA RÁPIDA PARA MPLAB 6.X 13

3) En la barra de herramientas aparecen los iconos correspondientes al simulador

- fig 5.2 -

Nuestro programa está listo para ser ejecutado. Podemos seleccionar ahora la frecuencia que va a tener el oscilador:

Debugger > Settings > Clock 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 O también podemos actuar sobre el teclado o sobre el icono (figura 5.3)

- fig 5.3 -

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

Page 14: Manual MPLAB IDE

GUÍA RÁPIDA PARA MPLAB 6.X 14

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

- fig 5.4 -

1) Paso a paso (Step). En esta modalidad, la CPU ejecuta las instrucciones una a una cada vez que entremos en el menú:

Debugger > Step Into O también actuando sobre la tecla F7 o sobre el icono correspondiente (fig 5.3). Podemos observar el valor de las variables en ese instante colocando el cursor sobre ellas (figura 5.5):

- fig 5.5 -

Page 15: Manual MPLAB IDE

GUÍA RÁPIDA PARA MPLAB 6.X 15

2) 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.3). 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.3). También en este caso podemos observar el valor de las variables en ese instante colocando el cursor sobre ellas. 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.3). 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.3). 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 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

Page 16: Manual MPLAB IDE

GUÍA RÁPIDA PARA MPLAB 6.X 16

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 (FSR) como los símbolos (symbol) que queremos observar.

- fig 6.1 -

Una vez que tenemos en la ventana el símbolo que queremos observar, podemos cambiar su formato 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)

volver a índice 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:

Page 17: Manual MPLAB IDE

GUÍA RÁPIDA PARA MPLAB 6.X 17

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

Debugger > Stimulus con lo que aparecerá una ventana como la indicada en la figura 7.1:

- fig 7.1 -

Podemos entonces definir los estímulos. Es probable que tengamos que comenzar por añadir una fila: Add Row. La primera columna (type) nos permite escoger entre estímulo síncrono o asíncrono. Basta con pulsar dentro del cuadro en blanco para que nos aparezcan las opciones. La segunda columna (enable) nos habilita el estímulo, es decir, cada vez que hagamos click sobre el icono "fire", se producirá la simulación del estímulo que estamos configurando. La tercera columna (pin) nos permite escoger la patilla en la que queremoa simular el estímulo. En la cuarta columna (action) escogemos la acción a simular. Tenemos cuatro posibilidades:

- high: simula una tensión "1" en la patilla seleccionada - low: simula una tensión "0" en la patilla seleccionada - 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" - pulse: simula un pulso de corta duración

Page 18: Manual MPLAB IDE

GUÍA RÁPIDA PARA MPLAB 6.X 18

El resto de las columnas no son interesantes de momento. En la figura 7.2 podemos ver un ejemplo de pantalla con una serie de estímulos definidos.

- fig 7.2 -

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, mientras va corriendo la simulación podemos activarlos a medida que pulsemos 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" e indicar el nombre y el directorio donde queremos guardarlo. Posteriormente podemos recuperarlo actuando sobre "Load".

volver a índice