stringtranslate.com

Motorola 68HC12

Placa de evaluación del microcontrolador Dragon12-P ejecutándose en 68HC12

El 68HC12 (también abreviado como 6812 o HC12) es una familia de microcontroladores de Motorola Semiconductor (más tarde de Freescale y luego de NXP ). Introducida originalmente a mediados de la década de 1990, la arquitectura es una mejora del Freescale 68HC11 . Los programas escritos para el HC11 suelen ser compatibles con el HC12, que tiene algunas instrucciones adicionales . Los primeros derivados del 68HC12 tenían una velocidad de bus máxima 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 (denominados un único acumulador de 16 bits, D, cuando A y B están en cascada para permitir operaciones que involucran 16  bits ), dos registros 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 agrega y reemplaza una pequeña cantidad de instrucciones 68HC11 con nuevas formas que se acercan más al procesador 6809 . Más significativamente, cambia las codificaciones de instrucciones para que sean mucho más densas y agrega muchas funciones de indexación similares a 6809, algunas con incluso más flexibilidad. El resultado neto es que los tamaños de código suelen ser un 30% más pequeños. [1]

Derivados HCS12/MC9S12

A partir de 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 flash de hasta 512 KB.

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

Derivados MC9S12X

El MC9S12XDP512, que se introdujo en 2004, tiene una velocidad de bus de 40 MHz y un coprocesador periférico conocido como XGATE que permite descargar algunas tareas de la CPU. La CPU del derivado S12X también presenta varias instrucciones nuevas para aumentar 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; el HCS12X cuenta con el procesador periférico XGATE adicional.

La familia S12X ofrece dos métodos principales para abordar más de 64 KBytes.

XGATE

El coprocesador XGATE es un procesador RISC de 16 bits que funciona al doble del reloj del bus principal. Descarga el trabajo del núcleo S12X manejando solo interrupciones y no ejecuta un bucle en segundo plano. Las primeras versiones de XGATE no permiten interrupciones de mayor prioridad para adelantarse a una interrupción manejada actualmente, pero el "XGATEV3" como se presenta en el 9S12XEP100 (y otros) sí lo permite. El S12X puede desencadenar interrupciones de software en el núcleo XGATE y viceversa. Se implementa un sistema de semáforo 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 obtener una ventaja de velocidad. El XGATE tiene un espacio de direcciones parcial de 64 KBytes 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) "Transporte de código M68HC11 a dispositivos M68HC12", Nota de aplicación de semiconductores de Motorola AN1284/D, Motorola.

Otras lecturas

enlaces externos