Articulo de referencia

Motorola 68HC12

Placa de evaluación del microcontrolador Dragon12-P funcionando con 68HC12 El 68HC12 (también abreviado como 6812 o HC12) es una familia de microcontroladores de Motorola Semico...

Placa de evaluación del microcontrolador Dragon12-P funcionando con 68HC12

El 68HC12 (también abreviado como 6812 o HC12) es una familia de microcontroladores de Motorola Semiconductor (posteriormente de Freescale y luego de NXP ). Introducido originalmente a mediados de la década de 1990, su arquitectura es una mejora del Freescale 68HC11 . Los programas escritos para el HC11 suelen ser compatibles con el HC12, que cuenta con algunas instrucciones adicionales . Las primeras versiones del 68HC12 tenían una velocidad máxima de bus de 8 MHz y tamaños de memoria flash de hasta 128 KB .  

Arquitectura

Al igual que el 68HC11, el 68HC12 tiene dos acumuladores de 8 bits, A y B (que se denominan un único acumulador de 16 bits, D, cuando A y B se combinan para permitir operaciones que involucren 16 bits ), dos registros de procesador de 16 bits , X e Y, un contador de programa de 16 bits, un puntero de pila de 16 bits y un registro de código de condición de 8 bits . A diferencia del 68HC11, el procesador tiene rutas de datos internas de 16 bits. 

El 68HC12 añade y reemplaza un pequeño número de instrucciones del 68HC11 con nuevas formas más similares a las del procesador 6809. Más significativamente, modifica las codificaciones de las instrucciones para hacerlas mucho más densas y añade muchas características de indexación parecidas a las del 6809, algunas incluso con mayor flexibilidad. El resultado final es que el tamaño del código suele ser un 30 % menor. [ 1 ]

Derivados de HCS12/MC9S12

A partir del año 2000, la familia se amplió con la introducción de los derivados MC9S12, que tienen velocidades de bus de hasta 25  MHz y tamaños de memoria flash de hasta 512  KB.

Freescale presentó el MC9S12NE64  en septiembre de 2004, afirmando ser el "primer microcontrolador Flash Fast Ethernet de un solo chip de la industria". Cuenta con una CPU HCS12 de 25 MHz, 64  KB de memoria EEPROM FLASH, 8  KB de RAM y un controlador Ethernet de 10/100 Mbit/s . 

Derivados de MC9S12X

El MC9S12XDP512 , presentado en 2004, cuenta con una velocidad de bus de 40  MHz y un coprocesador periférico denominado XGATE, que permite descargar algunas tareas de la CPU. La CPU de la variante S12X también incorpora varias instrucciones nuevas para mejorar el rendimiento.

Freescale anunció el MC9S12XEP100 en mayo de 2006 para ampliar aún más la familia S12X a  una velocidad de bus de 50 MHz y agregar una unidad de protección de memoria (basada en segmentación ) y un esquema de hardware para proporcionar EEPROM emulada .

Los productos HCS12 contienen un único procesador, mientras que los HCS12X incorporan el procesador periférico XGATE adicional.

La familia S12X ofrece dos métodos principales para direccionar más de 64 KB.

  • Regiones de memoria paginadas en el  mapa local de 64 KB: PPAGE para datos de programa paginados, RPAGE para RAM paginada, EPAGE para EEPROM/flash paginada.
  • El direccionamiento global permite el acceso a cualquier dirección dentro del espacio de direcciones de 8 MB . GPAGE se utiliza junto con códigos de operación especiales (gldaa, etc.). 

XGATE

El coprocesador XGATE es un procesador RISC de 16 bits que opera al doble de la frecuencia del bus principal. Descarga trabajo del núcleo S12X gestionando únicamente interrupciones y no ejecuta un bucle en segundo plano. Las primeras versiones del XGATE no permiten que las interrupciones de mayor prioridad anulen una interrupción que se esté gestionando, pero la versión "XGATEV3", presente en el 9S12XEP100 (y otros), sí lo permite. El S12X puede generar interrupciones por software en el núcleo XGATE y viceversa. Se implementa un sistema de semáforos para permitir que los núcleos S12X y XGATE sincronicen el acceso a los periféricos.

Normalmente, el código XGATE se copia a la RAM al iniciar el dispositivo y luego se ejecuta desde la RAM para optimizar la velocidad. El XGATE dispone de un espacio de direcciones parcial de 64 KB sin paginación. Los registros comparten direcciones, pero la memoria flash y la RAM aparecen en direcciones diferentes entre los núcleos. (Consulte la hoja de datos para obtener más detalles).

Referencias

  1. Sibigtroth, James M. (1996) "Transporting M68HC11 Code to M68HC12 Devices", Motorola Semiconductor Application Note AN1284/D, Motorola.

Lecturas adicionales

  • Sistemas embebidos: diseño y aplicaciones con los microcontroladores 68HC12 y HCS12 ; Steven Barrett y Daniel Pack; 645 páginas; 2005.
  • Manual de referencia del Motorola 68HC12 ; Motorola; 1996.
  • Código fuente del kernel en tiempo real gratuito para HCS12 con aplicaciones de ejemplo.
  • Proyecto oficial OpenTCP de Freescale en SourceForge para la familia MC9S12NE.
  • Entrenador, placa de evaluación y placa de desarrollo DRAGON12-light HCS12/9S12
  • Entorno de desarrollo MiniIDE que funciona con 68HC11 y 68HC12.
  • Grupo de discusión 68HC12