Logo Studenta

3 Hardware

¡Este material tiene más páginas!

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

Continuar navegando