2. Presentación
MPLAB es una plataforma de desarrollo de
Microchip, que permite escribir programas en
lenguaje ensamblador o C, compilar y/o ensamblar,
simular el programa y finalmente programar el
microcontrolador.
Se puede descargar gratuitamente de la página de
Microchip.
http://paginaspersonales.deusto.es/jonathan.garibay/
3. Partes de MPLAB IDE
El Editor incorporado permite escribir y editar
programas.
El Project Manager organiza los distintos ficheros
que componen un proyecto.
El Ensamblador y el Linker son los encargados de
generar los ficheros objetos y relacionarlos.
El Simulador permite simular programas con
ilimitados breakpoints, examinar/modificar registros,
observar variables, tiempos y simular estímulos
externos.
http://paginaspersonales.deusto.es/jonathan.garibay/
4. Partes de MPLAB IDE (Continuación…)
El
Debbuger es parecido a un simulador pero
permiten ejecutar el programa de forma totalmente
real sobre el microcontrolador.
En este caso suele haber limitación de breakpoints.
Existen varios tipos de debuggers distintos y el usuario
deberá seleccionar con cual trabajará.
El
Programador es el encargado de descargar el
programa final en código máquina al
microcontrolador.
Existen varios tipos de programadores distintos y el
usuario deberá seleccionar con cual trabajará.
http://paginaspersonales.deusto.es/jonathan.garibay/
5. Toolsuites
Una toolsuite es el conjunto de compiladores,
linkadores y/o ensambladores que transforman el
código fuente en un lenguaje determinado a código
máquina.
MPLAB IDE integra diferentes toolsuite
proporcionados por Microchip y permite utilizar
algunos de otros fabricantes (CCS).
Los más utilizados en MPLAB IDE son el Microchip
MPASM para el lenguaje ensamblador y los Microchip
Cxx para programar en C las diferentes familias de PICs.
http://paginaspersonales.deusto.es/jonathan.garibay/
6. Instalación del MPLAB C18
Para programar en C la familia PIC18, se puede
utilizar la versión lite, también gratuita,
descargable desde la página de microchip.
Se instala en un PC con el MPLAB vX.X
previamente instalado.
En la instalación se puede indicar que se asocie
automáticamente con el MPLAB o se puede hacer más
tarde también.
http://paginaspersonales.deusto.es/jonathan.garibay/
7. Instalación del MPLAB C18 (Continuación…)
Paraindicar a MPLAB donde se encuentra el
compiler/linker se utiliza la opción del menú
Project Set Lenguage Tool Locations…
http://paginaspersonales.deusto.es/jonathan.garibay/
8. Instalación del MPLAB C18 (Continuación…)
Archivos a configurar:
MPASM Assembler (mpsmwin.exe).
MPLAB C18 C Compiler (mcc18.exe).
MPLIB Librarian (mplib.exe).
MPLINK Object Linker (mplink.exe).
El primero se encuentra en la carpeta mpasm del
directorio de instalación* del MPLAB C18.
El resto están en la carpeta bin del directorio de
instalación* del MPLAB C18.
* El directorio de instalación suele ser C:/mcc18/
http://paginaspersonales.deusto.es/jonathan.garibay/
9. Creación de un proyecto
Una vez abierto el MPLAB, y dentro del menú,
Project Project Wizard.
1ª ventana: Bienvenida, se pulsa Siguiente.
2ª ventana: Elección del dispositivo que vamos a
programar (PIC 18F4520 en nuestro caso), y se pulsa
Siguiente.
http://paginaspersonales.deusto.es/jonathan.garibay/
10. Creación de un proyecto (Continuación…)
3ª ventana: Selección del Toolsuite.
Para programar en ensamblador Microchip MPASM
Toolsuite.
Para programar con el MPLAB C18 Microchip C18 Toolsuite.
http://paginaspersonales.deusto.es/jonathan.garibay/
11. Creación de un proyecto (Continuación…)
4ª ventana: se indica la carpeta y el nombre del proyecto.
En esta ventana también se pueden reconfigurar un proyecto
creado anteriormente.
http://paginaspersonales.deusto.es/jonathan.garibay/
12. Creación de un proyecto (Continuación…)
5ª ventana: si se van a utilizar librerías adicionales a las
de Microchip, aquí se pueden incluir en el proyecto.
http://paginaspersonales.deusto.es/jonathan.garibay/
13. Creación de un proyecto (Continuación…)
6ª ventana: ventana de confirmación con los principales
datos configurados.
Semostrará nuestro proyecto con las siguientes
ventanas.
http://paginaspersonales.deusto.es/jonathan.garibay/
14. Archivos de un proyecto
Los archivos con código fuente serán diferentes en el
caso de utilizar el lenguaje ensamblador (xxx.asm) o el C
(xxx.c y xxx.h):
Otros archivos importantes:
xxx.mcp y xxx.mcw son los ficheros del proyecto; el primero
guarda los datos del proyecto y el segundo el workspace.
xxx.hex es el fichero que contiene la codificación máquina de
nuestro programa después de la compilación.
xxx.err crea una línea por cada error encontrado en la
compilación.
xxx.lst crea una copia del código fuente incluyendo la línea de
error en la posición en la que se ha producido.
http://paginaspersonales.deusto.es/jonathan.garibay/
15. Creación de un fichero de código
Hayque incluir un nuevo fichero para el programa.
Para ello en File New se abre un nuevo fichero
que guardamos con el nombre que queramos (por
defecto, Program.asm o Main.c).
Si se programa en ensamblador, la extensión del fichero
será .asm,
y si se programa en C; para los ficheros de código la
extensión será .c, y para los fichero de cabecera será .h.
El
nuevo fichero habrá que incluirlo en el proyecto
manualmente.
http://paginaspersonales.deusto.es/jonathan.garibay/
16. Adición del fichero al proyecto
Se pulsa sobre la carpeta que corresponda (en este
caso Source Files) con el botón derecho del ratón y
seleccionando la opción AddFiles se incluye el fichero
creado anteriormente.
http://paginaspersonales.deusto.es/jonathan.garibay/
17. Compilación en C
Una vez que se ha editado el código del fichero
fuente, se puede compilar con la opción del menú
Project Build All.
Si se produce el error could not find file
‘c018i.o’, hay que incluir las librerías
propias del compilador.
Desde el menú Project Build Options
Project, se selecciona primero la Library
Search Path, se pulsa New y se incluye el
directorio Lib de la carpeta de instalación*
del MPLAB C18.
También hay que incluir en la opción
Include Search Path la ruta el directorio h
de la carpeta de instalación* del MPLAB
C18.
* El directorio de instalación suele ser
C:/mcc18/
http://paginaspersonales.deusto.es/jonathan.garibay/
18. Compilación en ensamblador
Una vez que se ha editado el código del fichero
fuente, se puede compilar con la opción del menú
Project Build All.
http://paginaspersonales.deusto.es/jonathan.garibay/
19. Compilación en C y ensamblador
Enla ventana Output se mostrará el resultado de la
compilación y una línea por cada error que se
produzca.
http://paginaspersonales.deusto.es/jonathan.garibay/
20. Palabra de configuración
En el menú Configuration, se puede modificar el dispositivo
seleccionado al comienzo (Select Device), y la palabra de
configuración (Configuration Bits).
La palabra de configuración se puede indicar en el código fuente.
http://paginaspersonales.deusto.es/jonathan.garibay/
21. Debbugers
MPLAB incluye diferentes posibilidades de
simulación y debugueo.
En el caso de que no sea necesario descargar el
programa en un micro se llama simulación,
y cuando se descarga el programa sobre la plataforma
real se llama debugueo.
Dentro del menú Debbuger Select Tool, tenemos
diferentes opciones a seleccionar.
http://paginaspersonales.deusto.es/jonathan.garibay/
22. MPLAB SIM – Simulación
El
simulador más sencillo de todos los disponibles
es el MPLAB SIM.
Es un simulador que reproduce el código escrito y nos
permite ver la situación interna del micro.
No es aconsejable la simulación de programas
complejos, pero sí para la comprobación de funciones,
sobretodo las de manejo de datos o cálculos aritméticos.
http://paginaspersonales.deusto.es/jonathan.garibay/
23. MPLAB SIM – Simulación (Continuación…)
Paracontrolar el flujo del programa tenemos las
opciones del menú Debbuger:
Run: ejecuta el programa indefinidamente o hasta que
encuentre un breakpoint.
Step Into: ejecuta una única instrucción cada vez y si se
encuentra con una subrutina, entra dentro de ella y la
ejecuta instrucción a instrucción.
Step Over: ejecuta una única instrucción cada vez y si se
encuentra con una subrutina la ejecuta completamente
de una vez.
Paracolocar un breakpoint, se hace doble click
sobre la línea de código que interese.
http://paginaspersonales.deusto.es/jonathan.garibay/
24. MPLAB SIM – Simulación (Continuación…)
Para conocer el estado del microcontrolador, se usan las
opciones del menú View:
EEPROM: muestra el contenido de esta memoria, el cual
puede ser modificado seleccionando la posición que se quiera
cambiar.
http://paginaspersonales.deusto.es/jonathan.garibay/
25. MPLAB SIM – Simulación (Continuación…)
File Register: muestra el contenido de la memoria de
datos (poco útil, mejor utilizar el Watch).
Watch: muestra el contenido de un registro identificado
con su nombre simbólico.
http://paginaspersonales.deusto.es/jonathan.garibay/
26. MPLAB SIM – Simulación (Continuación…)
Los Stimulus nos permiten simular los valores o
estados de las entradas de las puertas IO.
Se debe crear un Workbook desde el menú
DebbugerStimulus New Workbook.
http://paginaspersonales.deusto.es/jonathan.garibay/
27. MPLAB SIM – Simulación (Continuación…)
Existendiferentes tipos de stimulus, como pueden
ser asíncronos por flanco, por pulso o entradas de
reloj.
Se selecciona el pin sobre el que se va a actuar, la
acción, y se rellenan el resto de campos que sean
necesarios.
Para ejecutar el stimulus se pulsa sobre el botón Fire de
la fila correspondiente.
Sepueden guardar los Workbook de forma
independiente al proyecto, lo que los hace
reutilizables.
http://paginaspersonales.deusto.es/jonathan.garibay/
28. MPLAB SIM – Simulación (Continuación…)
Los puerto serie o puerto UARTs se utilizan bastante en
microcontroladores por lo que el simulador incluye el
suyo propio.
En DebbugerSetting seleccionamos la pestaña Uart1 IO, lo
habilitamos y seleccionamos la opción de salida Window.
http://paginaspersonales.deusto.es/jonathan.garibay/
29. MPLAB SIM – Simulación (Continuación…)
Si
se ejecuta el código de ejemplo que se ha escrito
nos mostrará el siguiente resultado por la salida
serie:
http://paginaspersonales.deusto.es/jonathan.garibay/
30. MPLAB ICD 2 - Debugueo
Uno de los más utilizados es el MPLAB ICD 2, del
que han sacado una nueva versión recientemente,
MPLAB ICD 3.
El funcionamiento es muy similar al del simulador,
pero con algunas limitaciones:
Se dispone de dos breakpoints.
No se utilizan los stimulus, ya que los valores de las E/S
son reales.
http://paginaspersonales.deusto.es/jonathan.garibay/
31. Proteus – Simulación
Proteus Isis es un entorno de desarrollo para diseño
electrónico, que además incluye diferentes
simuladores.
Dispone de un simulador de microcontroladores PIC que
se integra automáticamente con el MPLAB IDE.
Se simula de igual forma que el MPLAB SIM pero en
este caso podemos utilizar interruptores o
pulsadores para las entradas o diodos LED para las
salidas.
http://paginaspersonales.deusto.es/jonathan.garibay/
32. Proteus – Simulación (Continuación…)
Se pueden utilizar también elementos complejos
como terminales serie u osciloscopios Virtual
Instruments.
Seleccionando esta opción se pueden
incluir instrumentos virtuales para una
mejor simulación de los programas.
En el menú Debug se pueden habilitar
o deshabilitar estos instrumentos para
su uso en la simulación
http://paginaspersonales.deusto.es/jonathan.garibay/
33. Proteus – Simulación (Continuación…)
Una vez que se tenga instalado Proteus, en el menú
Debbuger Select Tool aparecerá la opción
Proteus VSM.
Una vez seleccionado se abre una ventana de
Proteus con algunas limitaciones donde podemos
abrir un diseño y ejecutar el programa sobre el
microcontrolador.
No se puede cambiar el diseño directamente sobre esta
ventana, pero una vez guardado el diseño modificado en
Proteus Isis se actualizará automáticamente.
http://paginaspersonales.deusto.es/jonathan.garibay/
35. MPLAB ICD 2 - Programador
Se puede también utilizar el MPLAB ICD 2 como
programador.
La programación implica que el programa se ejecute
autónomamente y no tengamos ningún control sobre
el.
A excepción de las entradas y salidas que utilice el
programa.
http://paginaspersonales.deusto.es/jonathan.garibay/
36. WinPIC800 – Programador
Es
un sencillo programa de grabación para un
número importante de grabadores.
http://paginaspersonales.deusto.es/jonathan.garibay/
37. WinPIC800 – Programador (Continuación…)
Problemas comunes:
Selección del grabador: es necesario seleccionar el
grabador en el menú ConfiguraciónHardware. El
seleccionado será Pic_School.
No configuración del reloj: se puede especificar en la
palabra de configuración en el MPLAB, pero puede ser
necesario volver a hacerlo aquí en la pestaña Config.
No se detecta el hardware: hay que revisar que está
seleccionada la familia PIC 18F en la parte superior
derecha.
http://paginaspersonales.deusto.es/jonathan.garibay/
38. GPUTILS (GNU PIC Utilities)
Las GPUTILS son las herramientas libres y
multiplataforma para ensamblar y enlazar.
Son 100% compatibles con el MPLAB.
Utilización:
gpasm pPIC fichero.asm
gpasm pp16f876 ejemplo.asm
http://paginaspersonales.deusto.es/jonathan.garibay/
39. CCS Info
CCS (http://www.ccsinfo.com/) es un compilador de
C diferente e incompatible al MPLAB C18 para
microcontroladores PIC.
No dispone de una versión gratuita.
http://paginaspersonales.deusto.es/jonathan.garibay/
40. Programar PICs en Linux
Existen varios compiladores OpenSource para los
microcontroladores PIC.
http://piklab.sourceforge.net/index.php: pkilab es un
programa opensource para la programación de
microcontroladores PIC en Linux.
En http://www.aquihayapuntes.com/programacion-de-
microcontroladores-pic-en-c-con-ubuntu-utilizando-el-
icd2.html hay un articulo que explica paso a paso su
instalación.
http://paginaspersonales.deusto.es/jonathan.garibay/