Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Hardware 25 3. Hardware 3.1 Microcontrolador MCF51QE128 de FreeScale 3.1.1 Definición de Microcontrolador Un microcontrolador (abreviado μC, UC o MCU) es un circuito integrado programable, capaz de ejecutar las órdenes grabadas en su memoria. Está compuesto de varios bloques funcionales, los cuales cumplen una tarea específica. Un microcontrolador incluye en su interior las tres principales unidades funcionales de una computadora: unidad central de procesamiento (CPU), memoria y periféricos de entrada/salida. Se puede decir que es una evolución del microprocesador, al añadirle a este último las funciones que antes era necesario situar externamente con otros circuitos. El ejemplo típico esta en los puertos de entrada/salida y en la memoria RAM, en los sistemas con microprocesadores es necesario desarrollar una lógica de control y unos circuitos para implementar las funciones anteriores, con un microcontrolador no hace falta porque lo lleva todo incorporado, además en el caso de tener que ampliar el sistema ya ofrece recursos que facilitan esto. En resumen, un microcontrolador es un circuito integrado independiente, que no necesita memoria ni puertos externos pues los lleva en su interior, que facilita la tarea de diseño y reduce el espacio, traduciéndose todo a una aplicación final más económica y fiable 3.1.2 El microcontrolador MCF51QE128 Una de las mayores ventajas de los microcontroladores Freescale son los bajos precios de éstos, la alta potencia en operación y el bajo consumo cuando se opera a máxima frecuencia de trabajo, especialmente cuando se lleva la operación a baja velocidad. Para este proyecto hemos elegido el microcontrolador MCF51QE128. Hardware 26 Es un microcontrolador con procesador interno (CPU) tipo COLDFIRE V1, y perteneciente a la familia FLEXIS, que surge con la innovación introducida por Freescale para permitir una fácil migración del mundo de los 8 bits al de los 32 bits. Esto asegura una gran compatibilidad con microcontrolador con núcleo de 8 bits, permitiendo migrar con muy pocos cambios en software y hardware. Sus características más importantes son: • Núcleo ColdFire V1 de 46 Dhrystone (2.1 MIPS) a 50 MHz. • Rango de operación de 1.8-3.6V. • Hasta 8K bytes SRAM y 32K bytes de flash. • 2 Módulos Seriales de comunicación (SCI) • 2 interfaces I2C • 2 Interfaces Seriales Sincrónicas (SPI). • 2 módulos de interrupciones de teclado (KBI) de ocho canales cada uno. • Timers de 16 bits: uno de 6 canales y dos de 3 canales • Conversor A/D de 12 bits de resolución de 20 canales. Figura 4 El microcontrolador MCF51QE128 Hardware 27 • Dos comparadores analógicos. • Hasta 54 Input / Output (I/O) generales. • Sistemas Integrados (PLL, software watchdog). • Internal clock source • Regulador de tensión con fast start up y regulación de baja tensión. • Oscilador de 32 kHz de low power. 3.1.3 Modos de funcionamiento Las máquinas ColdFire® V1 tienen la capacidad de trabajar en distintos modos de funcionamiento (Ver tabla 2), dentro de los cuales se pueden mencionar: • Modo de depuración para desarrollo de código: Manejado directamente por el módulo BDC (Background Debug Controller), el trabajo importante de este modo es el de poder analizar las operaciones del microcontrolador durante la ejecución del software del usuario. Por medio de este modo es posible descargar el bootloader o la aplicación del usuario dentro de la memoria FLASH. Este modo también puede ser usado para borrar y reprogramar la FLASH después de que esta ha sido programada con anterioridad. • Modo seguro: Mientras que el microcontrolador se encuentre en modo seguro, existen restricciones aplicadas a los comandos del depurador. • Modo RUN: Es el modo normal de operación y el más común, porque es el modo en el que el usuario puede ejecutar su código. La máquina reconoce la solicitud de entrada al modo cuando el pin BKGD/MS es llevado a alto con el flanco de bajada de la señal interna de RESET. Este modo presenta las siguientes variaciones: o Modo RUN normal: Una vez la CPU ha salido del estado de RESET, carga el registro SR (Status Register) y el registro PC (Program Counter) con el contenido de las direcciones 0x(00)00_0000 y 0x(00)00_0004 de la memoria y ejecuta la primera instrucción apuntada por el PC. Es importante saber que la arquitectura ColdFire® V1 usa direccionamientos por byte en el modo big endian. Hardware 28 o Modo RUN en bajo consumo (LPRUN: low Power RUN): En este modo el regulador interno se lleva al estado de standby y de esta manera ubicar la CPU en modo de bajo consumo. Es importante saber que el sistema queda alimentado de manera no regulada y que todos los periféricos no usados son privados de la señal de reloj, vía los registros SCGC1 y SCGC2. También es importante saber que la CPU no puede entrar en modo LPRUN cuando el sistema se encuentra en uso del BDM (Background Debug Module). Tabla 2 Modos de funcionamiento del microprocesador Hardware 29 Antes de ingresar al modo LPRUN, las siguientes acciones deberán ser ejecutadas: - El FLL (Frecuency Loop Locked) del módulo ICS (Internal Clock Source) es llevado a un estado de bypass, para la adopción de un modo de operación de bajo consumo llamado FBELP (FLL Bypassed External Low Power) - El bit HGO del registro ICSC2 es aclarado, para configurar un oscilador externo de bajo consumo. - La frecuencia del bus es menor que 125 kHz. - El módulo conversor análogo a digital (ADC) deberá trabajar en baja potencia o ser deshabilitado. - El módulo de detección de bajo voltaje deberá ser deshabilitado, debido a la condición de standby del regulador interno. - No se tiene disponibilidad sobre la programación o borrado de la FLASH. Finalmente, se puede ingresar al modo, llevando un “1” al bit LPR del registro SPMSC2 (System Power Management Status and Control 2 Register). Para regresar al modo normal de RUN, es necesario aclarar el bit LPR. El bit LPRS indicará si el regulador está en modo normal de funcionamiento y la máquina podrá correr a la máxima velocidad configurada. Si una interrupción se presenta, la máquina podrá salir del estado de LPRUN, esto se puede lograr poniendo en”1” el bit LPWUI del registro SPMSC2 y dentro de la rutina de atención a la interrupción se podrá habilitar la operación del ICS (Internal Clock Source) a máxima velocidad. • Modos de WAIT: Para entrar en este modo de bajo consumo es necesario ejecutar la instrucción STOP, después de configurar la máquina como se ilustra en la Tabla 2. Hardware 30 o Modo normal de WAIT: La CPU queda en modo STOP y el consumo se reduce significativamente, dado a que el reloj es interrumpido. La arquitectura ColdFire® V1 no hace diferencia entre elmodo STOP y el modo WAIT, ambos son catalogados como modos de STOP, desde la perspectiva del núcleo. La diferencia entre ambos modos sólo se aprecia desde el suministro del reloj a los periféricos del sistema. En modo STOP, la mayoría de los periféricos son desalimentados de reloj, mientras que en modo WAIT el reloj alimenta la mayoría de los módulos. Si es necesario que el sistema responda a comandos en el modo BDM, será prioritario poner a “1” el bit ENBDM. Al presentarse un evento de interrupción, estando la máquina en modo WAIT, la CPU ejecuta un proceso de excepción, comenzando con un servicio de apilamiento de información valiosa y luego conduciendo la máquina a un servicio de atención a la interrupción. o Modo LPWAIT: La diferencia respecto al modo normal de WAIT es que el regulador de la CPU sale de regulación y queda en estado de standby. Lo anterior reduce enormemente el consumo de la máquina, consumo que puede ser reducido aún más deshabilitando los módulos que no se utilicen. Esta última operación se puede lograr poniendoa cero los bits de los módulos a inactivar en el registro SCGC. Las restricciones vistas en el modo LPRUN se aplican al modo LPWAIT. Si el bit LPWUI es puesto a “1”, cuando la máquina ha ejecutado la instrucción STOP, el regulador regresa a su estado de regulación y el ICS puede ser llevado a su máxima velocidad en la entrada a la rutina de atención a la interrupción, que determinó la salida del estado de WAIT. Si el bit LPWUI es puesto a “0”, cuando la máquina ha ejecutado la instrucción STOP, la CPU regresa al modo LPRUN. • Modos de STOP: Existen tres modos de operación en STOP, siempre y cuando el bit STOPE del registro SOPT1 se encuentre en “1”. El bit WAITE del registro SOPT1 deberá ser aclarado, excepto cuando se desee trabajar en modo WAIT. Hardware 31 En el modo STOP3 las fuentes de reloj de la CPU son interrumpidas. Los diferentes modos de STOP son seleccionados mediante el bit PPDC del registro SPMSC2. La mayoría de los comandos del modo background (BDM) no son reconocidos en los modos de STOP, pero el comando BACKGROUND puede sacar la CPU del modo STOP4 y entrar en modo HALT. Quedando la CPU en el modo HALT y estando el bit ENBDM en “1”, todos los comandos del BDM se podrán utilizar. o Modo STOP2: La tabla 2 detalla la forma de ingresar al modo STOP2, en donde la mayoría de los módulos de la CPU son apagados, con excepción de la memoria RAM y el módulo RTC (Real Time Clock) de manera opcional. Al entrar a este modo, la CPU almacena el estado de los pines I/O en la RAM, con el propósito de recuperar su estado una vez se decida salir del modo. Para salir de este modo, es necesario introducir un flanco de bajada en el pin de RESET del sistema o generar un evento de excepción por interrupción en el módulo RTC, siempre y cuando esté habilitado. También, al salir del modo STOP2, la máquina ejecuta un estado de POR (Power On Reset) conformado por los siguientes eventos: - Todos los módulos de control y los registros de estado son inicializados por el controlador de manejo de la potencia, por el RTC y por el buffer de trazo del depurador (Debug Trace Buffer). Más adelante, en el texto, serán tratados otros registros afectados por este evento. - La función de RESET por LVD será habilitada y la CPU se quedará en estado de RESET si el voltaje de la fuente VDD queda por debajo del voltaje de comparación (LVD trip point). - La CPU comienza un proceso de excepción por RESET, realizando la captura de los vectores en las direcciones Hardware 32 0x(00)00_0000 y 0x(00)00_0004. Adicionalmente la bandera PPDF del registro SPMSC2 es puesta a “1”. Esta bandera es servida para que el usuario pueda ejecutar una rutina de recuperación por salida del modo STOP2. Para mantener el estado de los pines de I/O antes de entrar al modo STOP2, es necesario recuperar su estado desde la memoria RAM hacia los registros de los puertos. Esta acción exige que se escriba un “1”, antes de la recuperación, sobre el bit PPDACK del registro SPMSC2. En caso de no escribirse un “1” sobre el bit PPDACK, el estado de los pines I/O será asumido como el indicado para un RESET normal o por defecto. Para aquellos pines que están trabajando como servicio a los módulos, es necesario reconfigurar el periférico antes de escribir en el bit PPDACK. Si en el modo STOP2 se tiene la opción de oscilador para bajo rango (bit RANGE = 0 del registro ICSC2), como reloj para el RTC, es necesario reconfigurar el registro ICSC2 antes de escribir en el bit PPDACK. Para deshabilitar el reloj en el modo STOP2, es necesario conmutarse al modo FBI o FEI del módulo SCI, antes de ejecutar la instrucción STOP. o Modo STOP3: La tabla 2 detalla la forma de ingresar al modo STOP3, en donde el estado de todos los registros internos, el contenido de la memoria RAM y el estado de los pines I/O, se mantienen. El regulador interno entra a operar en modo de standby. Para salir de este modo, es necesario introducir un flanco de bajada en el pin de RESET del sistema o generarse un evento de excepción por interrupción de los siguientes módulos: RTC, ADC, ACMP, IRQ, SCI o KBI. Si se sale del modo STOP3 vía evento de RESET, el MCU es reinicializado y las operaciones son resumidas después de cargarse el vector de RESET. Si se sale del modo STOP3 vía evento de excepción por fuente de interrupción, el MCU cargará el vector adecuado, dependiendo del módulo que generó la interrupción. Hardware 33 o Modo STOP4: A diferencia de los modos STOP2 y STOP3, en este modo el regulador trabaja a plena regulación. Este modo es también llamado modo HALT y está relacionado directamente con la entrada a modo BDM desde STOP o por un evento de LVD desde STOP. Si el bit ENBDM está en “1” cuando la CPU ejecuta la instrucción STOP, el sistema suministra reloj a la lógica de control del modo background (BDM) de modo que ésta permanece activa durante el modo STOP. Si el usuario intenta entrar a STOP2 o STOP3 cuando el bit ENBDM está en “1”, el sistema queda en STOP4 (ver Tabla 2 para detalles). El ingreso a este modo también se obtiene si los bits LVDE o LVDSE del registro SPMSC1 están en “1” y se presenta un evento por de bajo voltaje con el módulo LVD, previamente habilitado. Es importante anotar que el LVD trabajará correctamente si el regulador interno se encuentra operando a plena regulación, lo cual descarta los modos STOP2 y STOP3 para esta condición. El LVD puede generar un evento de excepción de RESET o de interrupción. Para salir del modo STOP4 es necesario que se produzca un evento de RESET o alguna de las siguientes excepciones de interrupción: RTC, LVD, LVW, ADC, ACMP, IRQ, SCI o KBI. 3.1.4 Registros de la CPU Heredando de la máquina M68000, la arquitectura ColdFire® V1 no especifica registros acumuladores ni registros punteros (índices o bases), para la manipulación de datos y decodificación de las instrucciones en memoria. Esta arquitectura contiene un juego de registros generales, que cumplen con funciones de manipulación de datos y direccionamiento de memoria llamados los Dn y An, respectivamente. Hardware 34 El modelo de programación depende del concepto de nivel de privilegio, que el programador elige de la máquina. Existen dos niveles de privilegio llamados nivel de usuario y nivel de supervisor, que a continuación se describen. • Registros para nivel de supervisor únicamente: Están restringidos para el software de control de programa, en donde son implementadas funciones restringidas sobre la operación del sistema, funciones de control sobre los pines I/O y manipulación de la memoria. Los registros relacionados con el nivel de supervisor son: o Registro de Estado (SR: State Register): Utilizado para almacenar el estado del procesador y que a su vez incluye: - El registro CCR (Code Condition Register), que no es más que el registro de las banderas principales de la CPU. - Los bits de máscara de prioridad para los eventos de excepción por interrupción. - Otros bits de control en el nivel de supervisión. o Registro de Configuración de la CPU (CPUCR: CPU Configuration Register): Este registro suministra al nivel de supervisor la opción de configuración de funciones del núcleo. Ciertas características del hardware pueden ser habilitadas o inhibidas de forma individual, según sea el valor de los bits del CPUCR o Registro Base a Vector (VBR: Vector Base Register): Este registro contiene la dirección base a los vectores de excepción localizados en la memoria. Para acceder a la tabla de vectores, el desplazamiento de un vector es adicionado al VBR. Para los procesadores ColdFire®, los 20 bits de menor peso del VBR no son utilizados. Esto fuerza a que la tabla de vectores esté alineada con 16 bloques de 1MB Los 8 bits superiores del registro VBR son forzados a cero debido a queel núcleo del ColdFire® direcciona en 24 bits, es decir hasta 16 MB. El VBR puede ser utilizado para relocalizar la tabla de vectores de Hardware 35 excepción, desde su dirección inicial dentro de la FLASH (0x(00)00_0000) hacia la base de la RAM (0x(00)80_0000), si fuera necesario. • Registros para nivel de supervisor y usuario: Se acceden desde el nivel de supervisor o usuario, sin ninguna restricción. Estos registros son: o Registros de Dato (D0 – D7): Estos registros son para hacer operaciones sobre datos en formatos de 8, 16 o 32 bits. También, estos registros pueden ser usados como registro índice. Ante un evento de excepción por RESET, los registros D0 y D1 se precargan con un valor de configuración del hardware implementado en el núcleo ColdFire® V1. o Registros de Dirección (A0 – A6): Estos registros son usados como punteros pila por software, registro índice o registros base a direcciones. También, estos registros pueden ser usados como registros tipo dato para operaciones de 16 o 32 bits o Puntero a Pila del Usuario y el Supervisor (A7 y OTHER A7): El MCU ColdFire® V1 soporta dos punteros a pila de manera independiente. El puntero a pila para el nivel de supervisor es conocido como SSP (Supervisor Stack Pointer). Para el nivel de usuario el puntero a pila es USP (User Stack Pointer). El modelo de programación del BDM soporta lecturas y escrituras directas sobre el SSP y el USP, siendo responsabilidad del sistema de desarrollo externo, basado en el estado del bit S del registro SR, hacer la elección apropiada. o Registro de Código de Condiciones (CCR: Condition Code Register):Configura el byte de menor peso del registro SR e informa sobre el resultado de operaciones aritméticas y lógicas de la CPU Hardware 36 o Contador de Programa (PC: Program Counter): Este registro contiene la dirección de la siguiente instrucción a ser ejecutada (ver Figura 5.10). Durante la ejecución de una instrucción, el procesador incrementa automáticamente la dirección del PC (el incremento no necesariamente es 1, depende de la posición de la siguiente instrucción) o localiza un nuevo valor de dirección en el PC, si se trata de un salto, llamado a subrutina o atención a un proceso de excepción. El PC será cargado durante el proceso de excepción por RESET con el contenido de la dirección 0x(00)00_0004 (recordar que la carga es en modo big endian). 3.2 Módulo LCD La pantalla se trata de un módulo LCD ST7066U, cuyo fabricante es Powertip Technology Corporation, de 4 líneas de 20 caracteres que va alimentado a 5 V. Figura 5: Módulo LCD ST7066U Hardware 37 La pantalla cuenta con 16 patas, de las cuales, y según el manual que se nos ha facilitado, sólo 14 de ellas cuentan con una funcionalidad concreta que pasamos a detallar a continuación: Pin Símbolo Descripción 1 Vss Tierra de alimentación 2 Vdd Alimentación de +5V 3 V0 Contraste del cristal líquido. Normalmente se conecta a un potenciómetro a través del cual se aplica una tensión variable entre 0 y +5V que permite regular el contraste del cristal líquido. 4 RS Selección del registro de control/registro de datos: RS=0 Selección del registro de control RS=1 Selección del registro de datos 5 R/W Señal de lectura/escritura R/W=0 El Módulo LCD es escrito R/W=1 El Módulo LCD es leído 6 E Señal de activación del módulo LCD: E=0 Módulo desconectado y no funcionan las demás señales E=1 Modulo conectado 7-14 D0-D7 Bus de datos bidireccional. A través de estas líneas se realiza la transferencia de información entre el módulo LCD y el sistema informático que lo gestiona Tabla 3: Descripción de los pines del módulo LCD
Compartir