Escolar Documentos
Profissional Documentos
Cultura Documentos
X y ICD 2 1
Índice:
I: MPLAB IDE
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:
Una vez arrancado nos encontramos con una pantalla como la de la figura 1.1:
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:
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.
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).
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:
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:
mnemónicos:
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:
Este método tiene la ventaja frente al camino Configure > Configuration Bits (comentada en el
punto 1, fig 1.2) de que al estar escrito en el programa fuente siempre va a determinar la palabra
de configuración, aunque se realicen modificaciones en el programa o se cambie de ordenador o
de ICD2.
En la figura 2.1 podemos observar también que el fichero no tiene todavía un nombre (untitled) y
que todo el texto tiene el mismo color.
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 6
Nos aparece una ventana como la de la figura 2.2. Escogemos el directorio donde guardarlo, que
en nuestro caso debe ser en:
C:\Practicas\CompElec\grupo correspondiente
El fichero debe tener la extensión .asm. Para eso hay que tener cuidado con el formato y en la
ventana "tipo" debe estar seleccionada la opción: Assembly Source Files.
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 7
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 esa trayectoria está incompleta o es errónea debemos pulsar "Browse" para localizarlo.
4) El siguiente paso es asignarle un nombre al proyecto (fig 3.4). Debe estar en el mismo
directorio que el programa fuente (nombre.asm) y es conveniente darle el mismo nombre
para localizar mejor todo lo concerniente a un mismo ejercicio.
Para eso, en la ventana "Create New Project File", pulsamos en "Browse" y accedemos al
subdirectorio en el que estamos trabajando (en el ejemplo: AL2).
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 10
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.
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).
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):
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:
Se pueden añadir archivos y salvar proyectos pulsando el botón derecho del ratón cuando
nos encontremos en la ventana de proyecto. Los ficheros también se pueden borrar
manualmente seleccionándolos y utilizando el botón derecho del ratón.
volver a índice
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 13
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:
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:
· 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.
- "[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.
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.
Para arrancar el simulador debemos indicar que queremos utilizar la herramienta MPLAB SIM y
para ello debemos entrar en (fig 5.1):
En primer lugar, es conveniente que el simulador empiece por ejecutar la primera instrucción del
programa, para eso realizamos un "reset" del procesador:
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.
A partir de aquí tenemos tres posibilidades de ejecutar el programa: paso a paso, en modo
animado y total.
1) Paso a paso (Step). En esta modalidad, la CPU ejecuta las instrucciones una a una cada
vez que entremos en el menú:
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 20
Podemos observar el valor de las variables en ese instante colocando el cursor sobre ellas
(figura 5.6):
3) Modo animado (Animate). En este caso, la CPU ejecuta las instrucciones una tras otra
sin esperar. Se activa en el menú:
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:
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:
En este caso, si colocamos el cursor sobre una variable no nos aparece el valor que tiene
en ese instante. Primero debemos detener la ejecución del programa.
volver a índice
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 22
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:
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.
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.
Una vez que tenemos en la ventana el símbolo que queremos observar, podemos escoger el
formato en que queremos que aparezca seleccionándolo y apretando el botón derecho del ratón
para entrar en sus propiedades. Ahí podremos escoger varias opciones:
símbolo
número de bits a observar
formato (aquí podemos escoger también un solo bit)
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 23
Por ejemplo, vamos a observar el registro “CONTADOR” como número decimal (fig 6.2) y del
PORTA sólo vamos a observar el bit 4 (al que está conectado el pulsador) (fig 6.3):
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:
También podemos situar el cursor sobre la barra "address" y actuar sobre el botón derecho del
ratón. Eso nos permite escoger formatos de presentación.
volver a índice
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 24
7.- ESTÍMULOS
El simulador evalúa los estímulos y genera todas las respuestas en los límites de cada ciclo de
instrucción (Tcy = 4·Tosc). Por ese motivo, algunos sucesos físicos no pueden simularse con
precisión, en particular los sucesos puramente asíncronos y los sucesos de periodo más corto que
un ciclo de instrucción.
Los estímulos generan señales para el simulador. Podemos poner patillas a "0" o a "1" y cargar
valores directamente en registros. Existen cuatro tipos:
- Estímulos asíncronos
- Estímulos de terminales
- Estímulos de registros
- Estímulos de reloj
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):
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 figura 7.3 podemos ver un ejemplo de pantalla con un estímulo definido: cambio de valor
en el terminal RA4 cada vez que se pulse en “fire”.
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 26
Si queremos eliminar un estímulo, basta con seleccionar la línea y pulsar en "Delete Row".
Una vez definidos todos los estímulos que necesitemos, podemos activarlos mientras se va
simulando la ejecución del programa. Basta con pulsar con el ratón en el botón correspondiente,
por eso es conveniente mantener abierta la ventana de los estímulos durante la simulación.
Tenemos la opción de guardar el fichero de estímulos. Basta con actuar sobre Save, darle el
mismo nombre que al resto del proyecto y guardarlo en el mismo subdirectorio. Posteriormente
podemos recuperarlo actuando sobre: Debugger > Stimulus > Open Workbook.
volver a índice
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 27
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.
La placa de prueba PICDEM2 PLUS, que podemos ver con más detalle en la figura 8.3, tiene,
entre otras cosas:
La conexión entre el debugger y la placa de prueba se realiza mediante un cable RJ45 (fig 8.4).
Debemos tener cuidado con este cable dado que es relativamente fácil que se corte alguna de sus
líneas y deje de hacer conexión. Por tanto, es conveniente que permanezca siempre recto, sin
estar doblado.
La fuente de alimentación (fig 8.5) debe estar conectada a la placa PICDEM2 PLUS, como se
puede observar en la figura 8.2.
Por último, conectamos el cable que une el ICD2 con el ordenador (fig 8.6). Debemos utilizar el
puerto USB de la derecha.
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.
Y el fichero es:
C:\Windows\inf\icd2w2k.inf
Pulsamos en "Aceptar" y pasamos a otra pantalla en la que nos dice "examinar y buscar en:".
Escogemos la opción:
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)
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.
Actuamos sobre ese icono y, al hacerlo, es posible que nos aparezca una ventana con el mensaje:
“Invalid target device id” (fig 9.4):
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 -
Tras cargar el programa, la ventana de salida nos informa de que la programación se ha efectuado
(programming succeeded) (fig 9.7):
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 33
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).
Si, por el contrario, seleccionamos el modo total (run), las ventanas de observación ya no nos
permiten ver la evolución de los registros en cada cambio, sólo podremos ver su estado final
cuando detengamos la ejecución del programa. La ventaja es que en este caso la ejecución del
programa es en tiempo real.
volver a índice
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 34
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):
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".
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).
Para programar el microcontrolador debemos activar la opción "program target device", cuyo
icono es el primero de la izquierda.
Una vez que la memoria permanente del PIC ya contiene el fichero hexadecimal de nuestro
programa, la ventana de salida nos da el mensaje de la figura 10.6 (Programming succeeded):
GUÍA RÁPIDA PARA MPLAB 7.X y ICD 2 36
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