Está en la página 1de 9

Cd. 285744 285728 285750. Informe 04-GRUPO 9.

Microcontroladores: Programacin del MCU y Configuracin del modulo Oscilador

Julin A. Alarcn, Felipe Castaeda, Daniel M. Vargas, Microcontroladores. UNIVERSIDAD NACIONAL DE COLOMBIA.
Resumen En este informe se encuentra consignado una serie de conceptos, y recomendaciones sobre el trabajo con el modulo oscilador de microcontroladores HC08, se muestra en detalle cuales son los registros a configurar y manipular para activar este mdulo y como es su funcionamiento Palabras Clave cristal, frecuencia, led, oscilador, watchdog

II. INTRODUCCIN
En el mundo de la electrnica, quizs nada es tan importante, pero a la vez tan subestimado para el correcto funcionamiento de todos los sistemas, componentes y dems, como lo es la correcta sincronizacin de los mismos mediante el tiempo. Sin una forma de establecer el inicio y el fin de un programa o tarea, como podra saber un sistema cuando recibi un dato para procesarlo, o en qu momento enviar cierta informacin que a la vez debe hacerse en forma ordenada y precisa para que otro sistema la analice e interpreta acertadamente. Todo esto hace pensar que en general si establecemos una base de tiempo sobre la cual corran todos estos sistemas juntos, la sincronizacin ya no sera un problema. El siguiente problema viene precisamente de cmo hacer para generar esta base de tiempo, y en esto los microcontroladores tienen varias formas, como lo son los osciladores de cristal de cuarzo, o tambin la combinacin RC o tambin una fuente como un generador de seales que otorgue una seal al sistema. Lo que pocos saban es que en el caso de los microcontroladores HC08 y en especfico con el que se trabaja en este informe MC68HC908QY4 tienen internamente su propio oscilador para generar una seal de reloj, el cual es interesante de estudiar y aprender a manejar. A continuacin se presentan una serie de casos y guas para aprender sobre el manejo del mdulo oscilador de este microcontrolador.

I. OBJETIVOS A. Objetivo General


Conocer y aplicar conocimientos acerca de la programacin del mdulo oscilador del microcontrolador Motorola, para avanzar en la creacin de mejores y ms completos programas para este microcontrolador.

B. Objetivos Especficos
Revisar la documentacin de microcontroladores HC08 sobre la configuracin del mdulo oscilador. Programar el microcontrolador con diferentes osciladores, tanto internos como externos. Practicar la programacin de los puertos de entrada/salida de los microcontroladores Motorola.

III. MATERIALES
Computador.

27 de Abril de 2013

Cd. 285744 285728 285750. Informe 04-GRUPO 9. Software para la edicin, ensamblado, simulacin y programacin de microcontroladores Motorola Metrowerks (Code Warrior) o WinIde. Conjunto de Instrucciones del microcontrolador MC68HC908XX. Quemador o Programador de Microcontroladores Motorola. Microcontrolador MC68HC908XX. Cristal 4 10 MHz, 2 condensadores de 22pf, Leds indicadores, micro switches, pulsadores, condensadores y resistencias varias.

2 puede configurarse igualmente como puerto del microcontrolador o como salida del oscilador interno. Ms adelante se ver en detalle cmo se realiza este tipo de configuraciones y que registros deben ser afectados para que esto suceda. Adicionalmente ambos pines tienen asignados una prioridad de funciones para tener en cuenta si varias funciones son asignadas o habilitadas para un solo pin. Estas prioridades de la ms alta a la ms baja siguiendo la flecha se observan en la figura 2.

IV. PROCEDIMIENTO Y ANLISIS DEL LABORATORIO


A. Describa cuales son los pines que utiliza un microcontrolador Motorola para configurar las entradas del mdulo oscilador al igual que la prioridad de asignacin de funciones. Los pines usados para configurar las entradas del mdulo oscilador en el microcontrolador son los pines 4 y 5 del mismo, los cuales se sealan en la figura 1.

Figura 2. Prioridad de los pines 4 y 5 del microcontrolador MC68HC908QY4 [2]. B. Realice un programa donde se hace la configuracin del mdulo oscilador con reloj interno e indique su diagrama de flujo. Para configurar el MC68HC908QY4 en modo oscilador interno, principalmente tenemos 2 registros internos, los cuales se llaman CONFIG2 y OSCSTAT. En el registro CONFIG2 son importantes el bit 1, que corresponde a habilitar el Pin RSTEN de reset activo, adems tambin colocar a cero los bits 4 y 5 que corresponden a los pines de OSC1 y OSC2 lo que significa que trabajaremos con el oscilador interno.

Figura 1. Pines microcontrolador MC68HC908QY4 [1] El pin 4 corresponde al llamado pin OSC1 y el pin 5 se le llama OSC2, ambos dependiendo del tipo de oscilador que se use en el microcontrolador tienen diferentes funciones. Por ejemplo con oscilador de cristal de cuarzo externo, ambos pines hacen par para generar la seal de reloj necesaria para el microcontrolador; con una fuente de reloj externa, como por ejemplo un generador de seales, esta se conecta al pin 4 (OSC1), mientras que el pin 5 se habilita como entrada o salida correspondiente al Puerto A del microcontrolador; para seal de reloj interna o un oscilador externo tipo RC, el pin OSC2 27 de Abril de 2013

Por otro lado en el registro OSCSTAT ponemos a cero el bit 1 de ECGST Generador de reloj externo, y el bit 2 ECGON para indicarle que una fuente externa de reloj no es utilizada. El programa lo podemos apreciar en la figura 3, y el correspondiente diagrama de flujo se observa en la figura 4.

Cd. 285744 285728 285750. Informe 04-GRUPO 9.

3 ubicacin de memoria $0038 y se ve en la figura 7. Finalmente se modifica tambin el registro PTAPUE de la direccin $000B de la figura 8.

Figura 5.Registro CONFIG2.

Figura 6.Registro OSCSTAT.

Figura 7.Registro OSCTRIM. Figura 3. Programa para configurar en oscilador interno el microcontrolado en CODEWARRIOR IDE.

Figura 8.Registro PTAPUE.

D. Calcule los ciclos que se tarda el programa en ejecutarse, segn la configuracin indique cual es el tiempo de bus y el tiempo total de ejecucin, determine la frecuencia de encendido y apagado del PTA1. El programa consta principalmente de 3 partes, una que la denominaremos de Configuracin general del microcontrolador, la otra que es la Rutina principal y la tercera es una Rutina de retraso o demora. Figura 4. Diagrama de flujo para configurar en oscilador interno el microcontrolador. C. Con la ayuda de la hoja tcnica de datos de su microcontrolador seleccionado, establezca cuales son los registros utilizados para poder trabajar con el modulo oscilador, y su ubicacin dentro de la memoria de registros de funcin especfica. Como se vio en el anterior punto los registros que usamos para configurar el modulo oscilador interno son CONFIG2 que se encuentra en la direccin de memoria $001E y se ve en la figura 5. El registro OSCSTAT tambin es usado, y se encuentra en la direccin de memoria $0036 y se ve en la figura 6; tambin usamos el registro OSCTRIM para modificar el valor al que oscila internamente, el cual se encuentra en la La primera parte de Configuracin General, apagamos el watchdog, y configuramos los registros para trabajar con oscilador interno como se mostr en los puntos anteriores. Esta primera parte del cdigo se ve en la figura 9, frente a cada lnea de instruccin se indica al final del comentario un numero entre llaves cuadradas [], el cual corresponde al nmero de ciclos de bus que toma realizar dicha instruccin. Este parte de cdigo toma en total 31 ciclos para ejecutarse

27 de Abril de 2013

Cd. 285744 285728 285750. Informe 04-GRUPO 9.

Figura 9.Codigo de configuracin del microcontrolador en oscilador interno. La segunda parte consiste en la rutina principal, en la cual primero se pone un uno en el PTA1 para prender el led, luego se llama la rutina de retardo para que permanezca encendido un momento; posteriormente se pone a cero, y se vuelve a llamar la rutina de retraso para que conserve este estado el mismo tiempo que duro encendido, y se repite este ciclo infinitas veces. Nuevamente en frente de cada instruccin aparece el nmero de ciclos de bus que tarda en ejecutarse; cabe aclarar que en el caso de la rutina de retardo esta toma un total de 3256799 ciclos en ejecutarse, pero adems se tiene en cuenta que la instruccin para saltar a dicha rutina toma 5 ciclos la cual es BSR. El total de ciclos que lleva ejecutar la rutina principal ser entonces de 6513622.

Figura 11. Rutina de Retardo del programa. El tiempo total de ejecucin de encendido y apagado del led, corresponde a la cantidad de ciclos que tarda en ejecutarse una vez la rutina principal, los cuales son 6513622 ciclos de bus. Para este caso se configur el registro OSCTRIM con un valor de $00, por lo tanto el valor del oscilador interno es del valor mximo en el que puede estar, y es de 16MHz . Entonces el tiempo de ejecucin del programa ser:

La frecuencia de encendido del led ser entonces: Figura 10. Rutina principal del programa. La ltima parte corresponde a la rutina de retraso, la cual es un serie de instrucciones a modo de la instruccin for de lenguajes ms elevado anidadas, en las cuales bsicamente se va decrementando un nmero hasta llegar a cero, una y otra vez con el nico propsito de gastar ciclos de reloj para que el led dure en un determinado estado el tiempo suficiente como para que lo podamos observar. El programa se aprecia en la figura 11 y emplea un total de 3256799 ciclos de reloj en ejecutarse.

E. Con ayuda del osciloscopio mida la frecuencia del oscilador interno y la de prendido y apagado del PTA1. Realizando medidas a la frecuencia del oscilador interno con el registro OSCTRIM con un valor de $95 y configurando el registro PTAPUE, en su bit ms significativo para ponerlo en 1 y habilitar la salida por este pin de la frecuencia de oscilacin interna, se obtuvo la figura 12 del osciloscopio, en el cual se muestra una frecuencia de 11.88MHz la cual est dentro

27 de Abril de 2013

Cd. 285744 285728 285750. Informe 04-GRUPO 9. de los valores microcontrolador de oscilacin interna del

5 G. Disee un programa donde se trabaje con oscilador externo, indique la configuracin del mdulo y los pasos para la transicin de OSC interno a externo. Para pasar de oscilador Interno a Externo hay una serie de pasoso que se recomienda realizar para no tener ningn problema a la hora de ejecutar el programa o querer programar el microcontrolador. Estos pasos son: 1. Configurar el registro CONFIG2 de la figura 5 poniendo en 1 el bit 4 correspondiente OSCOPT0, y en cero el bit de 5 de OSCOPT1 habilitando un oscilador externo. 2. Realizar un retardo de aproximadamente 4096 ciclos de la fuente de reloj externa, para permitir la estabilizacin del sistema al hacer el cambio del tipo de oscilador. 3. Luego de terminar el retardo, habilitar mediante software el bit ECGON del registro OSCSTAT de la figura 6, colocando un 1 en este bit. 4. Esperar dos flancos de subida del reloj externo para verificar el reloj externo. 5. Luego el microcontrolador habilita el bit ECGST del registro OSCSTAT poniendo un uno asegurando que la fuente de reloj externa ha sido acoplada y luego detiene el oscilador interno. El cdigo realizado en el entorno CODE WARRIOR IDE para la configuracin del oscilador externo se puede ver en la figura 13.

Figura 12. Seal en el osciloscopio de la frecuencia del oscilador interno. La frecuencia de encendido del led se mostr en ese caso de 0.516 Hz F. Realice 5 ajustes en el registro OSCTRIM y repita Los puntos D y E. En la tabla 1 se puede ver, diferentes valores del registro OSCTRIM, a la vez que se midi con ayuda del osciloscopio los valores de frecuencia del LED y el valor mismo de oscilacin interna. Es claro como a medida que se aumenta el valor de OSCTRIM, el valor de la frecuencia de oscilacin va cayendo hasta su valor mnimo, y lo contrario si se disminuye el valor de OSCTRIM la frecuencia de oscilacin aumenta hasta llegar a su mximo.

Valor OSCTRIM $99 $75 $60 $46 $1A

f BUS(MHz) 3.06 3.27 3.41 3.59 3.83

Tiempo ejecucin programa(seg) 2.14 1.97 1.91 1.83 1.71

f LED(Hz) 0.467 0.502 0.523 0.551 0.592

Tabla 1. Configuracin del registro OSCTRIM.

27 de Abril de 2013

Cd. 285744 285728 285750. Informe 04-GRUPO 9.

6 monitor y pasar a modo usuario, se prendi como se ve en la figura 15.

Figura 15.Programa corriendo en el microcontrolador. Figura 13. Configuracin del microcontrolador en oscilador externo. H. Realice la depuracin paso a paso en el microcontrolador en el modo circuit&programing, luego simule el oscilador externo son la ayuda de un pulsador, Se puede?, Concluya. Para probar el programa y quemarlo en el microcontrolador, se agreg nuevamente las lneas de cdigo para prender y apagar el led en el puerto PTA1; el cdigo completo se ve en la figura 14. Se comenz a presionar entonces el pulsador rojo de la figura 15 para simular un fuente de reloj externa, lo que produca que el led efectivamente comenzara a prender y apagar al presionar varias veces en pulsador, como por ejemplo en la figura 16 donde se ve que el presionarlo se apaga el led.

Figura 16.Pulsando para simular un fuente de reloj externa. Sin embargo, al presionar el pulsador, no se genera un nico pulso de reloj como se espera, sino que por la pieza mecnica del pulsador, se genera una oscilacin que se va a atenuando hasta llegar al estado correcto, esto produce que no sea constante los ciclos de reloj en el microcontrolador, y por lo tanto que al final no se ejecute de manera correcta el programa ya que no se tiene una manera de temporizar y coordinar de manera correcta las instrucciones. Esto sera ms evidente por ejemplo a la hora de usar otros mdulos que requieren que la coordinacin de esta seal de reloj para ejecutar

Figura 14.Programa con oscilador externo.

Se procedi entonces a quemar el microcontrolador, y se observ como el led en el puerto PTA1 luego de desconectar el modo

27 de Abril de 2013

Cd. 285744 285728 285750. Informe 04-GRUPO 9. sus funciones, como por ejemplo el convertidor anlogo digital, lo cual hara imposible con esta seal de reloj tan inestable realizar dicha funcin.

V. PREGUNTAS
Como se ajusta la frecuencia del oscilador en la simulacin y para que se utiliza en el entorno de Code warrior Run Hill cycle. Una vez se ejecuta la simulacin, en la ventana se da click en la pestaa HC08FCS, se baja hasta CLOCK MODULE y en ella se da click en la opcin CHANGE EXTERNAL CLOCK FRECUENCY, como se ve en la figura 18.

I.

Disee un programa donde se active un led, este debe estar activado dos segundo, y apagado 3 segundo. Ese proceso se debe repetir 10 veces. Luego se debe incrementar en un segundo el tiempo en ON y OFF. Para este programa nuevamente, se escogi usar un oscilador interno, y viendo los datos de la tabla 1, con un valor de OSCTRIM de $75 se lograba una frecuencia de intermitencia del led de medio segundo. Por tanto usando este mismo programa pero agregando un contador de 10, se hizo que para cuando se decrementara el acumulador donde se carg previamente el nmero $0A, y este llegara a cero, saltara a otra rutina donde el tiempo de intermitencia del led aumenta en un segundo. El programa principal se puede ver en la figura 17.

Figura 18.Cambio del valor del oscilador en la simulacin. Adicionalmente, en este misma pestaa de HC08FCS abajo encontramos la opcin RUN TILL CYCLE, la cual nos deja avanzar el programa hasta un ciclo que le especifiquemos en decimal como se ve en la figura 19, siempre y cuando el ciclo al que se quiere ir, no haya sido ejecutado.

Figura 18. Opcion Run till Cycle.

Figura 17.Intermitencia de un led, variando el tiempo de la intermitencia. La rutina de retardo es la que se aprecia en la figura 11, y la rutina para configurar el oscilador interno se ve en la figura 9, solo que en este caso el valor de OSCTRIM es de $75.

Para que se utiliza en el entorno de Code warrior Trace. Para el desarrollo de su programa utilcelo y presente un ejemplo. Trace es igualmente una herramienta de simulacin de un programa, el cual permite realizar en una sola ventana un anlisis de las diferentes instrucciones que se ejecutan, es una ventana de resumen de los componentes mas

27 de Abril de 2013

Cd. 285744 285728 285750. Informe 04-GRUPO 9. importantes y actividad en los registros de inters del microcontrolador. Esta se encuentra en la pestaa HC08FCS al final de ella. Nos permite por ejemplo hacer una anlisis paso a paso de cada instruccin como se ve en la figura 19

seal de reloj muy precisa, que no se propensa a cambios mayores al 1% por ejemplo, en este caso el modulo oscilador interno se vuelve obsoleto. Para el oscilador externo, la opcin ms popular es usar un cristal de cuarzo, por su facilidad de adquisicin, relativo bajo costo y el hecho que evita tambin tener circuitos engorrosos que consumen potencia adicional para generar la seal de reloj. El entorno de desarrollo CODEWARRIOR IDE es mucho ms verstil y completo en cuanto a herramientas de simulacin se refiere, en comparacin por ejemplo con el software WIN IDE, lo cual puede facilitar en gran medida la depuracin de programas, pero a veces se queda corto cuando se producen errores de sintaxis en el cdigo y no muestra de manera precisa los errores que se pudieron haber cometido.
VII. BIBLIOGRAFA

Figura 19.Herramienta Trace con su modo Instructions. As como tambin permite realizar un anlisis grfico, de los ciclos de reloj que se van produciendo con cada instruccin, como se ve en la figura 20.

[1] http://pdf1.alldatasheet.net/datasheetpdf/view/136239/FREESCALE/MC68HC908QY4A.ht ml, pagina 20. [2] http://pdf1.alldatasheet.net/datasheetpdf/view/136239/FREESCALE/MC68HC908QY4A.ht ml, pagina 23.

Figura 20.Herramienta Trace con su modo Graphical.

VI. CONCLUSIONES La facilidad de este tipo de microcontroladores de tener un oscilador interno, facilita su montaje en circuitos, ya que ahorra espacio y consumo de potencia de otros dispositivos para generar la seal de reloj, sin mencionar la posibilidad de usar esta seal de reloj para otros circuitos, ya que esta se puede sacar mediante un pin del microcontrolador. Sin embargo si se necesita una

27 de Abril de 2013

Cd. 285744 285728 285750. Informe 04-GRUPO 9.

27 de Abril de 2013

También podría gustarte