Академический Документы
Профессиональный Документы
Культура Документы
Capítulo 1.
Set de Instrucciones.
El set de instrucciones de la familia HC9S08 (CPU HCS08) es esencialmente idéntico
al de la familia HC908, solo se agregan variantes de direccionamiento para las
instrucciones LDHX / STHX y la nueva instrucción BGND que permite al MCU
entrar al modo “BackGround” que es un modo muy poderoso utilizado para la
depuración de código en tiempo real y se ampliará la información en un capítulo
posterior.
La instrucción WAIT detiene la actividad del CPU al quitarle el clock (reloj) a este,
pero permite que todos los otros relojes sigan corriendo dentro del MCU. Al igual que
en la familia HC908, todos los periféricos restantes siguen con sus operaciones
normalmente, lo que permite una rápida respuesta ante interrupciones exteriores, pero
el consumo, si bien es reducido no es el menor de todos.
Soporte de Interrupciones.
• Nueva instrucción BGND que permite “activar” el modo BDM (Background Debug
Module) para colocar al MCU en modo “Debug” que permite la emulación en
tiempo real, por medio de una simple instrucción dentro del código original del
usuario.
Gracias a la nueva tecnología CMOS que posee la familia HC9S08, el CPU HC9S08
puede “correr” a la velocidad de reloj de 40 MHZ y la frecuencia del Bus (FBUS) es la
mitad de dicha frecuencia, o sea, 20 MHZ, el lector debe tener en cuenta que en la
familia HC908, la frecuencia del oscilador principal era dividida por 4 para obtener así
Fbus = Fosc / 4. .
Esto permite que cada ciclo de instrucción se ejecute en tan solo 50 nanosegundos!!, y
si además tomamos en cuenta que en muchas instrucciones se han “achicado” la
cantidad de ciclos de máquina por instrucción, se logra una notable mejora con
respecto a la familia HC908, que puede llegar a ser 3X (3 veces más rápida) superior
en perfomance corriendo igual código.
Capítulo 2.
Uno de los grandes cambios de la familia HC9S8 con respecto a la familia HC908 es el
módulo de generación de clock. Si bien en la familia HC908 se dispone de una gran
variedad de opciones de osciladores externos, internos, y del tipo R-C, la flexibilidad y
variedad de opciones que presenta la familia HC9S08 es muy grande dándole a este
módulo una gran importancia dentro del esquema de mejoras implementadas.
La sección generadora de Clocks (reloj) está compuesta por dos módulos, según el tipo
de dispositivo HC9S08 elegido:
El bloque oscilador (OSC) permite que el usuario pueda conectar un cristal o resonador
externo con el módulo ICG. El usuario por programa puede seleccionar entre un cristal
de baja frecuencia (rango entre 32 a 100 KHZ) o un cristal de alta frecuencia (rango
entre 1 a 16 MHZ) utilizando las líneas externas OSC1 y OSC2 para conectar el cristal
y su circuito asociado. También este bloque permite que ingrese una señal externa
conectada a la línea OSC1 proveniente de un oscilador implementado en forma externa
(hasta 40 MHZ) en el sistema.
Para mayor flexibilidad, se puede configurar el bloque oscilador (OSC) para operar en
modo “baja potencia” o modo “Alta amplitud”.
El reloj interno de referencia incluye una fuente de reloj de 8 MHZ , que puede
seleccionarse como reloj de referencia para el módulo BDC (Background Debug
Controller) y permitir así cierta independencia de dicho módulo de la frecuencia de
Bus utilizada en el proyecto. Además incluye un reloj de 243 KHZ el cuál puede ser
ajustado para lograr una mayor precisión y obtener así una fuente confiable de muy bajo
costo.
Las señales presentes son, ICGOUT la cuál es la frecuencia de salida del módulo ICG y
constituye la frecuencia de referencia del BUS (FBUS = ½ ICGOUT), ICGERCLK,
la cuál es la frecuencia de referencia desde el cristal o fuente de reloj externa y la señal
FEE (habilitación de frecuencia fija) la cuál controla el sistema de frecuencia fija de
reloj.
La señal ICGCLK es una fuente de reloj de 8 MHZ generada por el bloque fuente de
referencia interna que se utiliza para el módulo BDC (Backgraund Debug Controller).
El SCM es el oscilador por defecto del módulo ICG y está disponible tan pronto como
el MCU sale del reset. Este oscilador no requiere de ajustes, y si bien puede ajustarse
por medio de la escritura del registro ICGFLT no es recomendable hacerlo sin un
profundo conocimiento del funcionamiento del oscilador.
FEI - FLL Engaged Internal clock mode (FLL Interno Enganchado).
• FOUT = (243KHZ / 7) x 64 x N / R
• N = 4 a 18 en incrementos de 2.
• R = 1 a 128 en potencia de 2.
• El oscilador de referencia (243KHZ) es ajustable en +/- 25% con una precisión del
0,5% en todo el rango de temperatura de trabajo.
• Se puede programar la indicación de la perdida del enganche del FLL para que
genere un RESET o una interrupción.
• Las líneas del oscilador pueden utilizarse como I/O generales.
• No se necesitan componentes externos.
• El consumo de energía es superior al modo SCM.
El reloj de referencia de baja frecuencia es ajustable en +/- 25% por medio de dos
registros (ICGTRIM / FTRIM) ubicados dentro del mapa de memoria de RAM y
todos los chips de la familia HC9S08 poseen valores de calibración de fábrica en 2
posiciones de memoria FLASH que pueden ser re – escritos o borrados por el programa
del usuario. Estos valores de fábrica en FLASH, pueden copiarse en los registros de
ajuste del oscilador de referencia para lograr que el oscilador quede ajustado dentro del
rango de +/- 0,5%. También, el entorno integrado CodeWarrior, junto con las
herramientas disponibles para la familia HC9S08 (USBMULTILINKBDME,
R(S)_POD, etc.) poseen mecanismos automáticos de ajuste de la frecuencia que
escriben los valores correctos de ajuste en las posiciones de FLASH reservadas desde
fábrica. De esta forma, el usuario no necesita conocer los valores de calibración de
fábrica, ya que el sistema contempla la calibración automática.
Al igual que en el modo SCM, cuando se utiliza el modo FEI, las líneas del oscilador
pueden utilizarse como líneas I/O de uso general.
FBE (FLL Bypassed External clock) (Oscilador Externo con FLL
puenteado).
Al igual que en el modo SCM, el modo FBE no utiliza el bloque del FLL para
multiplicar la frecuencia de reloj externa. Este modo permite que puedan emplearse
cristales de baja (32 a 100Khz) y de alta frecuencia (1 a 16 Mhz) conectados a los pines
OSC1 / OSC2 del MCU. También este modo permite ingresar desde el exterior con un
oscilador externo desde DC a 40 Mhz por el pin OSC1.
Cuando se utiliza un cristal externo o resonador, se debe tener especial cuidado de
poner en “1” el bit REFS en el ICG Control Register 1. Este bit debe permanecer
en “0” cuando se utiliza un oscilador externo, ya que no hay un tema de “ganancias
de lazo” en juego para los circuitos osciladores y si solo se requiere no exceder la
frecuencia de entrada a un máximo de 40 Mhz.
El modo FBE es el más preciso de todos los modos disponibles en el módulo ICG de los
HC9S08 y su precisión solo está limitada a la precisión del oscilador externo utilizado
como referencia. También este modo es el de más bajo consumo de todos, ya que al no
utilizar el FLL este módulo no consume y con ello se logra un ahorro considerable de
energía.
FEE (FLL Engaged, External (FEE) clock mode (FLL enganchado con
clock Externo).
Nota de Redacción: El lector puede descargar este capítulo y capítulos anteriores del
curso desde la sección “Artículos” (Curso_HC9S08) en el sitio web de EduDevices
(www.edudevices.com.ar )