P01.Desarrollo de aplicaciones con mplab

Post on 18-Nov-2014

5.319 views 2 download

description

 

Transcript of P01.Desarrollo de aplicaciones con mplab

Sistemas Basados en

Microprocesadores

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

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

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…)

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

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.

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…)

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…)

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.

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…)

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…)

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…)

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…)

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

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

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.

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/

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.

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.

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.

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.

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

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…)

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.

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…)

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…)

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…)

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…)

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…)

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

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

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

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…)

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

Proteus – Simulación (Continuación…)

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

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

Es un sencillo programa de grabación para un

número importante de grabadores.

WinPIC800 – Programador

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…)

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

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.

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