3. Hardware - bibing.us.esbibing.us.es/proyectos/abreproy/12132/fichero/3.+Hardware.pdf · último...
Embed Size (px)
Transcript of 3. Hardware - bibing.us.esbibing.us.es/proyectos/abreproy/12132/fichero/3.+Hardware.pdf · último...

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 poniendo a 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 que
el 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