Академический Документы
Профессиональный Документы
Культура Документы
de Ingeniera de Gijn
Curso 2006-2007
Prctica 2 Microcontroladores PIC: Proceso de diseo y entorno MPLAB Fechas: 2, 3, 9 y 10 de Noviembre de 2006 Se parte de un ejemplo simple para mostrar el entorno, realizar la edicin de un programa, el ensamblado, la simulacin, la depuracin sobre la aplicacin y finalmente la grabacin de un microcontrolador PIC16F877. Se trata de un ejemplo para la placa de demostracin PICDEM2 plus y se va realizar la depuracin mediante el mdulo ICD2 de Microchip.
Figura 1.- PICDEM2 plus y mdulo ICD2 de Microchip De todos los elementos disponibles en la placa de prcticas, se utilizar un pulsador conectado a la entrada 4 del PORTA y los 4 diodos LED presentes a la salida del PORTB (vase el esquema de la placa PICDEM2 plus al final de este documento). El ejemplo que se va a seguir consiste en contar y mostrar en binario por el PORTB, el nmero de veces que se acta sobre el pulsador conectado al pin 4 del PORTA (si est pulsado, el pin estar a nivel 0 y si est libre a 1). Se suministra el cdigo fuente del ejemplo y se prueba la versin en el fichero denominado: Cuenta.asm (en esta versin no se tienen en cuenta posibles rebotes en el pulsador)
1 de 12
Entorno MPLAB
Editor
(MPLAB IDE Editor)
MPLAB
Programadores de Microchip
Figura 2.- Entorno de trabajo integrado para microcontroladores PIC: MPLAB-IDE Pasos bsicos a dar: 1.- Crear un fichero de cdigo fuente
Se abre el editor de texto y escribimos el cdigo fuente en ensamblador 2.- Una vez escrito el cdigo completo, lo salvamos en un fichero con el nombre que se quiera y con la extensin .asm (p.e. cuenta.asm) que se ubicar en un directorio de trabajo determinado
3.- Ahora hay que definir un proyecto. Hay dos posibilidades para definir un proyecto: manualmente o mediante un asistente (Project Wizard) que es la manera ms sencilla y guiada
Seleccionaremos el dispositivo microcontrolador, la herramienta de generacin de cdigo mquina (mpasmwin), le daremos un nombre al proyecto e indicaremos el directorio donde lo situamos, a continuacin nos interrogar sobre los ficheros a aadir al proyecto y aadiremos el fichero del cdigo fuente que hemos escrito y almacenado en los pasos 1 y 2.
2 de 12
4.- Aparecer el proyecto con el nombre asignado y la extensin .mcp. El paso siguiente ser el ensamblado del cdigo: o bien
No hay diferencia entre una opcin u otra si hay un nico fichero de cdigo fuente. Sera distinto si hubiera varios ficheros que se ensamblan por separado y se enlazan luego con el montador de enlaces MPLINK. En el ensamblado pueden producirse errores que deben corregirse usando como informacin los ficheros de listado (extensin .lst) y de errores (.err). Hasta que no desaparezcan los errores, no se podr generar el cdigo mquina en un formato compatible con el resto de herramientas (extensin .hex). 5.- Una vez realizado el ensamblado del programa sin errores, podemos pasar a comprobar el funcionamiento del programa mediante un Simulador (slo software) o bien mediante una herramienta hardware que puede ser un Depurador o un Emulador. Para la verificacin con el SIMULADOR:
Para poder comprobar si nuestro programa funciona, debemos visualizar registros, bits, puertos, en dnde se encuentra la ejecucin (memoria de programa), estado de la pila hardware, tiempo transcurrido, etc. Para poder apreciar el estado de los registros durante la simulacin, abrimos:
En esa ventana, aadimos los registros a visualizar y con qu formato de representacin (hexadecimal, decimal, binario,...). Se aaden todos a partir de la tabla de smbolos existente o bien de la tabla de registros de funciones especiales. Otras visualizaciones de inters pueden ser:
View > Hardware Stack View > File Register View > Special Function Registers Debugger > Stopwatch
Pila hardware para guardar el PC Todos los reg. de datos Reg. de funciones especiales Tiempo transcurrido
3 de 12
6.- Se deben configurar los bits de funcionamiento del dispositivo, aunque durante la simulacin slo tendra efecto el posible desbordamiento del Watchdog si se encontrara activo
Configuration > Configuration Bits bits de configuracin Watchdog Timer > OFF
Tambin se pueden configurar opciones de la simulacin:
(SE TRATA DE UNA SIMULACIN Y NO HABR ENTRADAS QUE NO SEAN AQUELLAS QUE SE INTRODUZCAN DESDE UNA VENTANA DE EJECUCIN) Debugger > Stimulus Controller SCL Generator.
8.- Probar, ejecutar y depurar el cdigo Ejecucin en diversos modos posibles:
Debugger
> Run > Animate > Step Into > Step Over > Step Out
Ejecucin continua hasta parada: Halt Actualizando presentacin registros Paso a paso entrando en subprogr. Paso a paso saltando sobre subp. Paso a paso hasta salir de subpr.
Puntos de Ruptura:
9.- Si el programa no funciona, se debera modificar el cdigo con el Editor y volveramos a dar los pasos de nuevo desde el punto 4: Ensamblar
4 de 12
FICHEROS:
Ficheros del Entorno de Trabajo: Workspace (.mcw) Ficheros de Proyecto: Project (.mcp) Cdigo Fuente (.asm) Ficheros de inclusin y cabeceras (.inc) Programa Ensamblador Fichero de Listado (.lst) & Fichero de Errores (.err) & Fichero Hexadecimales (.hex) & Fichero cdigo para depuracin (.cod) Otros Ficheros Ficheros de Estmulos (.scl) Ficheros de Visualizacin (.wat) Ficheros de Configuracin (.cfg) Figura 3.- Ficheros generados con MPLAB
Proyectos: Projects: Los Proyectos se salvan al cerrarlos Project > Close y se pueden recuperar posteriormente Project > Open con lo que se restauran todas las ventanas abiertas, las herramientas activas y las condiciones en las que se estaba trabajando. De este modo, no resultara necesario volver a definir los estmulos, ventanas de visin, etc. Un proyecto engloba pues todos los ficheros necesarios para desarrollar la fase de ensamblado, simulacin, depuracin y programacin Entornos de Trabajo: Workspaces Contienen la informacin sobre el dispositivo, las ventanas abiertas, la configuracin, las herramientas activas, etc. Un entorno de Trabajo podra incluir a varios proyectos que estuvieran simultneamente abiertos Tambin se pueden salvar: y recuperar posteriormente:
PRUEBAS SOBRE EL HARDWARE DE LA APLICACIN: Empleo del ICD2 como depurador real ( In Circuit Debugger 2 ) Despus de realizada la simulacin del programa y considerando que ste puede funcionar desde el punto de vista software y trabajando con seales lgicas, procederamos a utilizar el debugger ICD2 que nos permite incluir, en la placa de circuito impreso de nuestra aplicacin, un microcontrolador grabado con nuestro cdigo y trabajando en modo depuracin, lo que implica que desde el entorno de trabajo MPLAB IDE podemos ejecutar de manera continua, parando, paso a paso, con animacin, estableciendo puntos de ruptura, viendo el estado de ciertos registros, etc. De esta manera podemos comprobar que nuestro programa funciona o no conjuntamente con el hardware de la aplicacin, manejando ya seales elctricas reales. Los pasos a dar seran los siguientes: 1.- Activacin del ICD2: seleccin del dispositivo y conexin
Ahora alimentamos la tarjeta de la aplicacin y nos aseguramos de que est conectado el ICD2 al puerto USB (o al puerto serie):
6 de 12
Y seleccionamos adecuadamente el oscilador, watchdog, etc. en este caso, S QUE ES MUY IMPORTANTE HACER LA SELECCIN ADECUADA YA QUE TRABAJAMOS DIRECTAMENTE SOBRE EL MICROCONTROLADOR
3.- Antes de programar (grabar) el microcontrolador y hacerlo trabajar en modo depuracin, podemos hacer que el ICD2 ajuste la grabacin a lo que ocupa realmente nuestro programa y que no sea necesario grabar la totalidad de la memoria de programa del microcontrolador
4.- Grabamos el microcontrolador con nuestro cdigo ms la parte necesaria para llevar a cabo la depuracin (son las 256 palabras finales y son transparentes al usuario)
Ejecutado este paso, el microcontrolador tendr grabada en su memoria tanto nuestro programa como el sistema operativo que permite la depuracin (poner en marcha, parar, transferir registros, etc). Pero para la puesta en ejecucin real del microcontrolador con el cdigo, ser necesario que desde el entorno MPLAB, se d la orden correspondiente a la EJECUCIN 5.- Ejecutamos, pero ahora ya sobre el hardware y en tiempo real Debugger > Run Ejecucin continua hasta parada Halt > Animate Actualizando presentacin registros > StepInto/ Over /Out Ejecuciones paso a paso 6.- Visualizacin de registros, pila, etc. (como en el caso del simulador) 7.- Para pruebas sucesivas, se repitiran los sucesivos pasos de: Edicin y modificacin del programa Ensamblado Programacin Ejecucin
7 de 12
PRUEBAS SOBRE EL HARDWARE DE LA APLICACIN: Empleo del ICD2 como Programador Una vez comprobado el funcionamiento del programa con el funcionamiento en modo debugger, se tratara ahora de grabarlo en un microcontrolador, para lo cual podramos utilizar tambin el ICD2 pero ahora en modo Programador Los pasos a dar seran los siguientes: 1.- Desactivacin del ICD2 como Debugger (MPLAB-ICD2 no puede trabajar a la vez en modo depuracin y en modo programador):
Ejecutado este paso correctamente, el microcontrolador tiene en su memoria de programa, nicamente el cdigo que nosotros le hemos transferido y empezar a ejecutarlo, a partir de la posicin inicial, en el momento en que lo liberemos de la conexin al ICD2. El microcontrolador YA ES AUTNOMO Y FUNCIONA DE ACUERDO AL PROGRAMA PRESENTE EN SU MEMORIA (No hay dependencia del entorno MPLAB)
8 de 12
ANEXOS: Un posible algoritmo que se podra utilizar para el ejemplo propuesto Inicializacin: o PORTB se define como puerto de salida o PORTB se pone a cero al principio o PORTA como puerto de entrada (por defecto son todos as) Bucle de Ejecucin continua Si la tecla est pulsada (RA4==0) entonces Llamada a Subprograma de Incremento si no Volvemos al principio del bucle Subprograma de Incremento Sumamos 1 a la combinacin presente en el PORTB Bucle de espera a que la tecla est liberada Si la tecla est pulsada (RA4==0) entonces Seguimos esperando dentro del bucle si no Retornamos del Subprograma
9 de 12
;Paso al banco 1 de la memoria de datos ;para definir el PORTB como salida ;Volvemos al banco 0 ;Ponemos a cero el PORTB para que aparezca ese ;valor cuando se defina como salida
ESPERA
BTFSS PORTA,4 ;Esperamos a que se pulse la tecla CALL INCREMENTO ;en cuyo caso RA4 pasa a 0 y vamos a GOTO ESPERA ;subprograma de INCREMENTO
;Subprograma de INCREMENTO INCREMENTO INCF PORTB,F SOLTAR BTFSS PORTA,4 GOTO SOLTAR RETURN END ;Si se puls incrementamos PORTB ;no salimos hasta que se haya soltado ;la tecla, en ese caso RA4 pasara a 1 ;y volvemos al programa principal
Pulsador en RA4
10 de 12
11 de 12