PDF de programación - Capítulo 1/3 - Set de instrucciones - Curso sobre Microcontroladores

Imágen de pdf Capítulo 1/3 - Set de instrucciones - Curso sobre Microcontroladores

Capítulo 1/3 - Set de instrucciones - Curso sobre Microcontroladoresgráfica de visualizaciones

Publicado el 31 de Mayo del 2018
659 visualizaciones desde el 31 de Mayo del 2018
360,3 KB
10 paginas
Creado hace 13a (21/11/2010)
Curso sobre Microcontroladores
Familia HC9S08 de Freescale

Por Ing. Daniel Di Lella – EduDevices – www.edudevices.com.ar
e-mail: [email protected]
Responsable Area Educación – ELKO / ARROW – www.elkonet.com
e-mail: [email protected]

Capítulo 1.

Continuación .... (entrega nº 3)

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.

Hay un total de 250 instrucciones disponibles en el HC9S08. Aquí solo se mostrará en
forma general un resumen de las mismas, quedando para el lector ampliar la
información consultando en el curso sobre HC908 (www.edudevices.com.ar ) o bien
en el manual de referencia de la familia HC9S08.

Un comentario aparte merecen las instrucciones WAIT y STOP.

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.

En la instrucción STOP, en cambio, se interrumpen todos los clocks internos. A
diferencia de la familia HC908 que posee un solo modo STOP, la familia HC9S08
posee múltiples modos STOP con distinto grado de consumo y operatividad según se
hayan configurado previamente algunos bits de ciertos registros, en un posterior
capítulo se verán estos modos de bajo consumo que constituyen unas de las claves de
esta familia para ser utilizadas en aplicaciones portátiles con consumos extremadamente
bajos.

Soporte de Interrupciones.

Como se ha mencionado en varios párrafos de este capítulo, la familia HC9S08
mantiene compatibilidad con la familia HC908 y es por ello que el esquema de
Soporte de Interrupciones es idéntico al de la familia HC908.

Modo de “apilado” y “Desapilado” de los registros principales del CPU HCS08.

Diferencias entre las familias HC908 y HC9S08.

Como se ha mencionado a lo largo de este capítulo, la familia HC9S08 es 100%
compatible con la familia HC908, pero la nueva familia HC9S08 incorpora nuevas
instrucciones y varias mejoras orientadas a aumentar la capacidad de procesamiento,
facilidad para realizar la emulación en tiempo real y finalmente mejorar la eficiencia en
la densidad de código.

A continuación, mencionaremos en forma resumida las diferencias:

• Nuevos modos de direccionamiento para la instrucción LDHX

-
-
-
-
-

Indexado sin Offset (IX).
Indexado con Offset de 8 Bits (IX1).
Indexado con Offset de 16 Bits (IX2).
Indexado con Post Incremento.
Indexado con Offset de 8 Bits con Post Incremento.

Estos nuevos modos de direccionamiento ayudan a que el compilador mejore su
eficiencia de generación de código.

• Nuevos modos de direccionamiento para la instrucción STHX y CPHX.

- Modo de direccionamiento Extendido (EXT).
- Modo de direccionamiento Indexado utilizando el Stack Pointer con Offset

de 8 bits (SP1).

• 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.

• Aumento de la velocidad de procesamiento por medio del aumento de la

frecuencia de reloj del CPU (40 MHZ) y del BUS (20 MHZ).

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.

Módulos ICG / ICS –
Internal Clock Generator / Internal Clock Source.

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:

• Internal Clock Generator (ICG) (Generador de Clocks Interno).
• Internal Clock Source (ICS) (Fuente de Clock Interna).

ICG (Generador de Clocks Interno).

• Cuatro modos de operación:

- Self Clock Mode (SCM) (Clock interno fijo).
- FLL Engaged Internal clock mode (FEI) (FLL Interno Enganchado).
- FLL Bypassed, External (FBE) clock mode (FLL puenteado, clock

- FLL Engaged, External (FEE) clock mode (FLL enganchado con clock

Externo).

Externo).

• En los modos FEI y SCM no se requieren componentes externos.
• Todos los modos son seleccionables por programa.
• El programa del usuario puede seleccionar los distintos modos en cualquier

momento.

• FBUS = ½ ICGOUT.

Diagrama en bloques del módulo ICG

El módulo ICG esta formado por 4 grandes bloques funcionales.

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.

El bloque de FLL (Frecuency Loop lock) (Oscilador por enganche de Frecuencia)
toma la fuente de reloj interna o externa y multiplica ella a un valor más alto.

Finalmente, el bloque de selección de reloj permite conmutar las diferentes frecuencias
de reloj al sistema, distribuyéndolo en el.

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).

SCM (Self Clock Module) (Clock Interno Fijo).

• Es el modo por defecto luego de que el MCU sale del RESET.
• Rápido arranque del oscilador a 4 MHZ de FBUS sin programación del usuario.
• No se requiere conexión externa alguna.
• Las líneas del oscilador pueden usarse como I/O grales.
• No ajustable, pero puede modificarse escribiendo en el registro ICGFLT.
• Tiene la menor precisión de todos los osciladores disponibles.
• Consumo de potencia medio (menor que en los modos FEI o FFE).

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 modo FEI es otro modo de oscilador interno disponible en el módulo ICG.
Este modo está basado en un oscilador interno de baja frecuencia (243 Khz) que ingresa
como señal de referencia al FLL (Oscilador por Enganche de Frecuencia) y es
multiplicado en frecuencia hasta alcanzar la frecuencia final de salida FOUT.

El valor “N” es el factor de multiplicación entre 4 y 18 en incrementos de 2 y el valor
“R” es el divisor de frecuencia reducida (RFD) entre 1 a 128 en potencias de 2. Ambos
valores pueden programarse por medio del ICG Control Register 2.

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
  • Links de descarga
http://lwp-l.com/pdf11462

Comentarios de: Capítulo 1/3 - Set de instrucciones - Curso sobre Microcontroladores (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad