P01.Desarrollo de aplicaciones con mplab

40
Sistemas Basados en Microprocesadores Desarrollo de aplicaciones con MPLAB

description

 

Transcript of P01.Desarrollo de aplicaciones con mplab

Page 1: P01.Desarrollo de aplicaciones con mplab

Sistemas Basados en

Microprocesadores

Desarrollo de aplicaciones con MPLAB

Page 2: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

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.

Presentación

Page 3: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

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.

Partes de MPLAB IDE

Page 4: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

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

Partes de MPLAB IDE (Continuación…)

Page 5: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

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.

Toolsuites

Page 6: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

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.

Page 7: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

Para indicar a MPLAB donde se encuentra el

compiler/linker se utiliza la opción del menú

Project Set Lenguage Tool Locations…

Instalación del MPLAB C18 (Continuación…)

Page 8: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

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/

Instalación del MPLAB C18 (Continuación…)

Page 9: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

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.

Page 10: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

3ª ventana: Selección del Toolsuite.

Para programar en ensamblador Microchip MPASM

Toolsuite.

Para programar con el MPLAB C18 Microchip C18 Toolsuite.

Creación de un proyecto (Continuación…)

Page 11: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

4ª ventana: se indica la carpeta y el nombre del proyecto.

En esta ventana también se pueden reconfigurar un proyecto

creado anteriormente.

Creación de un proyecto (Continuación…)

Page 12: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

5ª ventana: si se van a utilizar librerías adicionales a las

de Microchip, aquí se pueden incluir en el proyecto.

Creación de un proyecto (Continuación…)

Page 13: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

6ª ventana: ventana de confirmación con los principales

datos configurados.

Se mostrará nuestro proyecto con las siguientes

ventanas.

Creación de un proyecto (Continuación…)

Page 14: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

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.

Archivos de un proyecto

Page 15: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

Hay que 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.

Creación de un fichero de código

Page 16: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

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.

Page 17: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

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 OptionsProject, 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/

Page 18: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

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.

Page 19: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

Compilación en C y ensamblador

En la ventana Output se mostrará el resultado de la

compilación y una línea por cada error que se

produzca.

Page 20: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

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.

Page 21: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

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.

Page 22: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

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.

MPLAB SIM – Simulación

Page 23: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

Para controlar 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.

Para colocar un breakpoint, se hace doble click

sobre la línea de código que interese.

MPLAB SIM – Simulación (Continuación…)

Page 24: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

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.

Page 25: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

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.

MPLAB SIM – Simulación (Continuación…)

Page 26: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

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.

MPLAB SIM – Simulación (Continuación…)

Page 27: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

Existen diferentes 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.

Se pueden guardar los Workbook de forma

independiente al proyecto, lo que los hace

reutilizables.

MPLAB SIM – Simulación (Continuación…)

Page 28: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

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.

MPLAB SIM – Simulación (Continuación…)

Page 29: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

Si se ejecuta el código de ejemplo que se ha escrito

nos mostrará el siguiente resultado por la salida

serie:

MPLAB SIM – Simulación (Continuación…)

Page 30: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

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.

MPLAB ICD 2 - Debugueo

Page 31: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

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.

Proteus – Simulación

Page 32: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

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

Page 33: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

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.

Proteus – Simulación (Continuación…)

Page 34: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

Proteus – Simulación (Continuación…)

Page 35: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

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.

MPLAB ICD 2 - Programador

Page 36: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

Es un sencillo programa de grabación para un

número importante de grabadores.

WinPIC800 – Programador

Page 37: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

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.

WinPIC800 – Programador (Continuación…)

Page 38: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

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

Page 39: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

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.

Page 40: P01.Desarrollo de aplicaciones con mplab

http://paginaspersonales.deusto.es/jonathan.garibay/

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.

Programar PICs en Linux