stringtranslate.com

ST6 y ST7

Microcontrolador ST62E40, basado en la arquitectura ST6

ST6 y ST7 son líneas de productos de microcontroladores de 8 bits de STMicroelectronics . Se utilizan comúnmente en pequeñas aplicaciones integradas como lavadoras .

Aunque utilizan periféricos similares y se comercializan como parte de la misma línea de productos, [1] [2] las dos arquitecturas son en realidad bastante diferentes.

Ambos tienen un acumulador de 8 bits que se utiliza para la mayoría de las operaciones, además de dos registros de índice de 8 bits (X e Y) que se utilizan para el direccionamiento de la memoria. Además, ambos tienen instrucciones de 8 bits seguidas de hasta 2 bytes de operandos, y ambos admiten la manipulación y bifurcación en bits individuales de memoria.

Ahí terminan las similitudes.

El ST6 es una arquitectura Harvard con un espacio de direcciones de datos de 8 bits (256 bytes) y un espacio de programa separado de 12 bits (4096 bytes). Los operandos siempre tienen una longitud de 1 byte y algunas instrucciones admiten dos operandos, como "mover una dirección de memoria inmediata de 8 bits a una dirección de memoria de 8 bits". Las llamadas a subrutinas se realizan utilizando una pila de hardware separada. Los registros de datos (pero no el contador o las banderas del programa) están mapeados en memoria.

Los modos de direccionamiento del ST6 se limitan a la dirección de memoria absoluta inmediata de 8 bits y registran los modos indirectos (X) e (Y).

El ST7 es una arquitectura von Neumann con un único espacio de direcciones de 16 bits (64 kiB). Los primeros 256 bytes de RAM (la página cero ) tienen flexibilidad adicional. No hay instrucciones de dos operandos excepto "bit de prueba y rama". Sus registros no están mapeados en memoria y utiliza RAM de propósito general (más un registro de puntero de pila ) para llamadas de subrutinas.

El ST7 admite una amplia variedad de modos de direccionamiento, incluidos base+índice y doble indirecto.

Tres miembros de la familia de microcontroladores ST6: ST62E01, ST62E20, ST62E25

Arquitectura ST6

El ST6 tiene 64 bytes de RAM y 4096 bytes de ROM de programa . Se accede a cantidades mayores cambiando de banco la sección baja de 2K de la ROM.

El espacio de direcciones RAM es en realidad de 256 bytes, divididos de la siguiente manera:

No asignado al espacio de direcciones hay un contador de programa de 12 bits y una pila de hardware asociada (de cuatro o seis niveles de profundidad, según el modelo). Solo hay dos bits de estado ( acarreo y cero ), y están almacenados según el modo del procesador, con bits de estado separados para operación normal, de interrupción y de interrupción no enmascarable .

Las primeras cuatro ubicaciones de RAM de uso general también se conocen como registros X, Y, V y W, y algunas instrucciones pueden acceder a ellas mediante modos especiales de direccionamiento corto. Los registros X e Y sirven como registros de índice y pueden usar modos de direccionamiento indirecto (X)y (Y).

El conjunto de instrucciones consta de un byte de código de operación, seguido de hasta dos operandos de un byte. El conjunto de instrucciones se puede resumir de la siguiente manera:

†: ^ ab De manera confusa, los diferentes modelos de la familia ST6 usan diferentes convenciones para el valor del bit de acarreo después de una resta. Los procesadores ST60 usan la convención "carry", que borra el bit si la resta se desborda, mientras que los procesadores ST62 y ST63 usan la convención "préstamo", que establece el bit en ese caso. [3] : 21–22,42 

Arquitectura ST7

El ST7 tiene seis registros: el acumulador, los registros de índice X e Y, el puntero de pila, el contador de programa y el registro de código de condición. Además, el direccionamiento doble indirecto permite que la página cero de la RAM sirva como registros adicionales. Una característica inusual pero útil es que una interrupción empuja cuatro de estos registros a la pila (A y X, así como los habituales PC y CC), y el retorno de interrupción los restaura.

Las instrucciones ALU se dividen en dos categorías, dos operandos y un operando.

Las instrucciones de dos operandos utilizan el acumulador como primera fuente. El modo de direccionamiento especifica la segunda fuente, que puede ser:

El destino suele ser el acumulador, pero algunas instrucciones modifican la segunda fuente. (En tales casos, los operandos inmediatos están prohibidos).

Las instrucciones de un operando utilizan el operando especificado tanto para el origen como para el destino. El operando puede ser:

El registro más el desplazamiento calcula una suma de ancho completo, por lo que la forma de 8 bits puede direccionar la memoria hasta 255+255 = 510.

Además de lo anterior, hay tres bytes de prefijo que pueden anteponerse a cualquier instrucción para la que tengan sentido:

Referencias

  1. ^ Hoja de datos: ST62T00C/T01C de 1998
  2. ^ "Directorio de microcontroladores/microprocesadores EDN 2006, microprocesadores de 8 bits ordenados por arquitectura de conjunto de instrucciones" (PDF) . pag. 26.100616 edn.com
  3. ^ ab "Manual de programación familiar ST6" (PDF) . Revisión 2.0. STMicroelectrónica . Octubre de 2004 . Consultado el 28 de febrero de 2017 .
  4. ^ "Manual de programación familiar ST7" (PDF) . Revisión 2. STMicroelectronics . Noviembre de 2005 . Consultado el 28 de febrero de 2017 .