stringtranslate.com

TI MSP430

MSP 430 FG438 controlando un medidor de glucosa
Fotografía de dos placas de experimentación para el chipset MSP430 de Texas Instruments. A la izquierda la versión con chip más grande, a la derecha una versión pequeña en formato USB.

El MSP430 es una familia de microcontroladores de señal mixta de Texas Instruments , presentado por primera vez el 14 de febrero de 1992. [1] Construido alrededor de una CPU de 16 bits , el MSP430 fue diseñado para bajo consumo de energía, [2] aplicaciones integradas y bajo costo.

Características

Medidor de glucosa Aktivmed GlucoCheck Comfort: placa de circuito impreso debajo de la pantalla LCD que aloja una CPU MSP 430

La característica fundamental del MSP430 es el bajo consumo de energía. Los primeros MSP430 (MSP430C3xx) tenían un consumo alrededor de 400 uA/MHz y menos de 2 uA en modo de bajo consumo con temporizador básico activo y controlador de LCD . Los MSP más recientes (MSP430FR5xx) tienen un consumo en modo activo alrededor de 100-120 uA/MHz y 500 nA en modo de bajo consumo con RTC activo . El consumo de la propia CPU es inferior a 32 uA/MHz. [3] La serie MSP430FR, que utiliza FRAM en lugar de una flash , también permite una escritura rápida en una memoria no volátil sin requisitos de energía adicionales.

Los MSP430 utilizan hasta siete modos de bajo consumo diferentes. Los tiempos de activación difieren según el modo y la generación de MSP430. Los procesadores más rápidos de la familia MSP430 tienen tiempos de activación inferiores a 1 microsegundo.

Los MSP430 pueden funcionar a una velocidad de hasta 25 MHz, mientras que las operaciones de registro a registro requieren 1 ciclo por instrucción. La familia MSP430 tiene más de 550 tipos, [4] sin contar las variantes de encapsulado. Hay microcontroladores con 0,5-512 kB de memoria flash o 0,5-256 kB de memoria FRAM y hasta 66 kB de memoria RAM .

El dispositivo viene en una variedad de generaciones con los periféricos habituales:

Algunas opciones periféricas menos habituales incluyen amplificadores operacionales en chip (op-amp) para acondicionamiento de señal , convertidor digital a analógico (DAC) de 12 bits, controlador de pantalla de cristal líquido (LCD), multiplicador de hardware , USB y acceso directo a memoria (DMA) para resultados de ADC. Aparte de algunas versiones antiguas de memoria de solo lectura programable borrable ( EPROM , como MSP430E3xx) y ROM de máscara de alto volumen (MSP430Cxxx), todos los dispositivos están habilitados para programación en el sistema a través de Joint Test Action Group ( JTAG ), cuatro cables completos o Spy-Bi-Wire ), un cargador de arranque integrado (BSL) que utiliza UART como RS-232 o USB en dispositivos con soporte USB. No se incluye BSL en los dispositivos de la familia F20xx, G2xx0, G2xx1, G2xx2 o I20xx.

Limitaciones de memoria

Sin embargo, existen limitaciones que impiden su uso en sistemas embebidos más complejos . El MSP430 no tiene un bus de memoria externo , por lo que está limitado a la memoria en chip, hasta 512 KB de memoria flash y 66 KB de memoria de acceso aleatorio (RAM), que pueden ser demasiado pequeñas para aplicaciones que necesitan grandes buffers o tablas de datos. Además, aunque tiene un controlador DMA , es muy difícil usarlo para mover datos fuera del chip debido a la falta de un estroboscopio de salida DMA. [6]

Generaciones MSP430

Existen seis generaciones generales de procesadores MSP430. En orden de desarrollo, son: generación '3xx, generación '1xx, generación '4xx, generación '2xx, generación '5xx y generación '6xx. El dígito después de la generación identifica el modelo (generalmente los números de modelo más altos son más grandes y más capaces), el tercer dígito identifica la cantidad de memoria incluida y el cuarto, si está presente, identifica una variante menor del modelo. La variación más común es un convertidor analógico a digital en chip diferente .

Las generaciones 3xx y 1xx están limitadas a un espacio de direcciones de 16 bits. En las generaciones posteriores, esto se amplió para incluir instrucciones '430X' que permiten un espacio de direcciones de 20 bits. Como sucedió con otras arquitecturas de procesador (por ejemplo, el procesador del PDP-11 ), la ampliación del rango de direccionamiento más allá del tamaño de palabra de 16 bits introdujo algunas peculiaridades e ineficiencias para programas de más de 64 KB.

En la siguiente lista, resulta útil pensar en la capacidad típica de 200 mA·Hr de una pila de botón de litio CR2032 como 200.000 μA·Hr, o 22,8 μA·año. Por lo tanto, considerando solo el consumo de la CPU, una batería de este tipo podría suministrar un consumo de corriente de 0,7 μA durante 32 años. (En realidad, la autodescarga de la batería reduciría esta cifra).

La importancia de la retención de RAM frente al modo de reloj en tiempo real es que en el modo de reloj en tiempo real la CPU puede entrar en modo de suspensión con un reloj en marcha que la reactivará en un momento futuro específico. En el modo de retención de RAM, se requiere alguna señal externa para reactivarla, por ejemplo, la señal del pin de entrada/salida (E/S) o la interrupción de recepción del esclavo SPI.

Serie MSP430x1xx

La serie MSP430x1xx es la primera generación con memoria flash. En general, son más capaces que la generación 3xx, pero no tienen un controlador LCD integrado . Estos microcontroladores de consumo ultrabajo basados ​​en memoria flash o ROM ofrecen 8 MIPS, funcionamiento de 1,8 a 3,6 V, hasta 60 KB de memoria flash y una amplia gama de periféricos analógicos y digitales.

  • Descripción general de la especificación de potencia, tan baja como:
    • Retención de RAM de 0,1 μA
    • Modo de reloj en tiempo real de 0,7 μA
    • 200 μA/MIPS activo
    • Cuenta con una rápida reactivación desde el modo de espera en menos de 6 μs.
  • Parámetros del dispositivo
    • Opciones de Flash: 1–60 KB
    • Opciones de ROM: 1–16 KB
    • RAM: 128 B–10 KB
    • Opciones GPIO: 14, 22, 48 pines
    • Opciones de ADC: pendiente, SAR de 10 y 12 bits
    • Otros periféricos integrados: DAC de 12 bits, hasta 2 temporizadores de 16 bits, temporizador de vigilancia, reinicio por caída de tensión, SVS, módulo USART (UART, SPI), DMA, multiplicador 16×16, Comparator_A, sensor de temperatura

Serie MSP430F2xx

La serie MSP430F2xx es similar a la generación '1xx, pero funciona con un consumo de energía aún menor, admite un funcionamiento de hasta 16 MHz y tiene un reloj en chip más preciso (±2 %) que facilita su funcionamiento sin un cristal externo. Estos dispositivos de consumo de energía ultrabajo basados ​​en flash ofrecen operaciones de 1,8 a 3,6 V. Incluye el oscilador de muy baja potencia (VLO), resistencias pull-up/pull-down internas y opciones de bajo número de pines.

  • Descripción general de la especificación de potencia, tan baja como:
    • Retención de RAM de 0,1 μA
    • Modo de espera de 0,3 μA (VLO)
    • Modo de reloj en tiempo real de 0,7 μA
    • 220 μA/MIPS activo
    • Cuenta con reactivación ultrarrápida desde el modo de espera en menos de 1 μs
  • Parámetros del dispositivo
    • Opciones de Flash: 1–120 KB
    • Opciones de RAM: 128 B – 8 KB
    • Opciones de GPIO: 10, 11, 16, 24, 32 y 48 pines
    • Opciones de ADC: pendiente, SAR de 10 y 12 bits, Sigma Delta de 16 y 24 bits
    • Otros periféricos integrados: amplificadores operacionales, DAC de 12 bits, hasta 2 temporizadores de 16 bits, temporizador de vigilancia, reinicio por caída de tensión, SVS, módulo USI (I²C, SPI), módulo USCI, DMA, multiplicador 16×16, Comparator_A+, sensor de temperatura

Serie MSP430G2xx

La serie Value MSP430G2xx incluye microcontroladores de potencia ultrabaja basados ​​en memoria flash de hasta 16 MIPS con funcionamiento de 1,8 a 3,6 V. Incluye el oscilador de potencia muy baja (VLO), resistencias pull-up/pull-down internas y opciones de bajo número de pines a precios más bajos que la serie MSP430F2xx.

  • Consumo ultrabaja, tan bajo como (@2,2 V):
    • Retención de RAM de 0,1 μA
    • 0,4 μA Modo de espera (VLO)
    • Modo de reloj en tiempo real de 0,7 μA
    • 220 μA/MIPS activo
    • Activación ultrarrápida desde el modo de espera en <1 μs
  • Parámetros del dispositivo
    • Opciones de Flash: 0,5–56 KB
    • Opciones de RAM: 128 B–4 KB
    • Opciones GPIO: 10, 16, 24, 32 pines
    • Opciones de ADC: pendiente, SAR de 10 bits
    • Otros periféricos integrados: E/S táctil capacitiva, hasta 3 temporizadores de 16 bits, temporizador de vigilancia, reinicio por caída de tensión, módulo USI (I²C, SPI), módulo USCI, Comparator_A+, sensor de temperatura

Serie MSP430x3xx

La serie MSP430x3xx es la generación más antigua, lanzada entre 1995 y 1998. [7] El MSP430 fue diseñado como sucesor del TSS400 para instrumentos de medición alimentados por batería. [8] Todos los MSP430x3xx tenían un controlador LCD integrado y también un oscilador controlado digitalmente (DCO) con bucle de bloqueo de frecuencia (FLL) que proporcionaba un reloj de sistema estable (de 1 a 4 MHz) utilizando un cristal de baja frecuencia (32 kHz). [9] Esta generación no admite memoria EEPROM , solo ROM de máscara y EPROM programable una sola vez y borrable por UV . Las generaciones posteriores solo brindan opciones de memoria flash y ROM de máscara . Estos dispositivos ofrecen operación de 2,5 a 5,5 V, hasta 32 KB de ROM.

  • Descripción general de la especificación de potencia, tan baja como:
    • Retención de RAM de 0,1 μA
    • Modo de reloj en tiempo real de 0,9 μA
    • 160 μA/MIPS activo
    • Cuenta con una rápida reactivación desde el modo de espera en menos de 6 μs.
  • Parámetros del dispositivo:
    • Opciones de ROM: 2–32 KB
    • Opciones de RAM: 512 B–1 KB
    • Opciones GPIO: 14, 40 pines
    • Opciones de ADC: pendiente, SAR de 14 bits
    • Otros periféricos integrados: controlador LCD, multiplicador

Serie MSP430x4xx

La serie MSP430x4xx es similar a la generación '1xx, pero incluye un controlador LCD integrado y son más grandes y, a menudo, más capaces. Estos dispositivos basados ​​en memoria flash o ROM ofrecen 8-16 MIPS a 1,8-3,6 V, con FLL y SVS. Ideales para aplicaciones médicas y de medición de baja potencia.

  • Descripción general de la especificación de potencia, tan baja como:
    • Retención de RAM de 0,1 μA
    • Modo de reloj en tiempo real de 0,7 μA
    • 200 μA/MIPS activo
    • Cuenta con una rápida reactivación desde el modo de espera en menos de 6 μs.
  • Parámetros del dispositivo:
    • Opciones de Flash/ROM: 4 – 120 KB
    • Opciones de RAM: 256 B – 8 KB
    • Opciones GPIO: 14, 32, 48, 56, 68, 72, 80 pines
    • Opciones de ADC: pendiente, SAR de 10 y 12 bits, Sigma Delta de 16 bits
    • Otros periféricos integrados: SCAN_IF, ESP430, DAC de 12 bits, amplificadores operacionales, RTC, hasta 2 temporizadores de 16 bits, temporizador de vigilancia, temporizador básico, reinicio por caída de tensión, SVS, módulo USART (UART, SPI), módulo USCI, controlador LCD, DMA, multiplicador 16x16 y 32x32, Comparator_A, sensor de temperatura, velocidad de CPU de 8 MIPS

Serie MSP430x5xx

La serie MSP430x5xx puede funcionar a una velocidad de hasta 25 MHz, tiene una memoria flash de hasta 512 KB y una RAM de hasta 66 KB. Esta familia basada en flash presenta un bajo consumo de energía activa con hasta 25 MIPS a un funcionamiento de 1,8 a 3,6 V (165 uA/MIPS). Incluye un innovador módulo de administración de energía para un consumo de energía óptimo y USB integrado. [10]

  • Descripción general de la especificación de potencia, tan baja como:
    • Retención de RAM de 0,1 μA
    • Modo de reloj en tiempo real de 2,5 μA
    • 165 μA/MIPS activo
    • Cuenta con una rápida reactivación desde el modo de espera en menos de 5 μs.
  • Parámetros del dispositivo:
    • Opciones de Flash: hasta 512 KB
    • Opciones de RAM: hasta 66 KB
    • Opciones de ADC: SAR de 10 y 12 bits
    • Opciones GPIO: 29, 31, 47, 48, 63, 67, 74, 87 pines
    • Otros periféricos integrados opcionales: DAC de 12 bits, PWM de alta resolución, 5 VI/O, USB, interruptor de batería de respaldo, hasta 4 temporizadores de 16 bits, temporizador de vigilancia, reloj de tiempo real, reinicio por caída de tensión, SVS, módulo USCI, DMA, multiplicador 32x32, Comp B, sensor de temperatura

Serie MSP430x6xx

La serie MSP430x6xx puede funcionar a una velocidad de hasta 25 MHz, tiene una memoria flash de hasta 512 KB y una RAM de hasta 66 KB. Esta familia basada en flash presenta un bajo consumo de energía activa con hasta 25 MIPS a un funcionamiento de 1,8 a 3,6 V (165 uA/MIPS). Incluye un innovador módulo de administración de energía para un consumo de energía óptimo y USB integrado. Muchos dispositivos de la serie 6xx son compatibles en cuanto a pines con un dispositivo análogo de la serie 5xx, excepto que el dispositivo 6xx agrega compatibilidad con USB.

  • Descripción general de la especificación de potencia, tan baja como:
    • Retención de RAM de 0,1 μA
    • Modo de reloj en tiempo real de 2,5 μA
    • 165 μA/MIPS activo
    • Cuenta con una rápida reactivación desde el modo de espera en menos de 5 μs.
  • Parámetros del dispositivo:
    • Opciones de Flash: hasta 512 KB
    • Opciones de RAM: hasta 66 KB
    • Opciones de ADC: SAR de 12 bits
    • Opciones GPIO: 74 pines
    • Otros periféricos integrados: USB, LCD, DAC, Comparator_B, DMA, multiplicador 32x32, módulo de gestión de energía (BOR, SVS, SVM, LDO), temporizador de vigilancia, RTC, sensor de temperatura

Serie de SoC RF (CC430)

La serie RF SoC (CC430) ofrece una integración estrecha entre el núcleo del microcontrolador, los periféricos, el software y el transceptor RF. Cuenta con un transceptor RF de <1 GHz, con funcionamiento de 1,8 V a 3,6 V. Es posible programar con el entorno de desarrollo integrado (IDE) de Arduino a través de la API panStamp.

  • Descripción general de la especificación de potencia, tan baja como:
    • Retención de RAM de 1 μA
    • Modo de reloj en tiempo real de 1,7 μA
    • 180 μA/MIPS activo
  • Parámetros del dispositivo:
    • Opciones de velocidad: hasta 20 MHz
    • Opciones de Flash: hasta 32 KB
    • Opciones de RAM: hasta 4 KB
    • Opciones de ADC: SAR de 12 bits
    • Opciones GPIO: 30 y 44 pines
    • Otros periféricos integrados: Controlador LCD, hasta 2 temporizadores de 16 bits, temporizador de vigilancia, RTC, módulo de administración de energía (BOR, SVS, SVM, LDO), módulo USCI, DMA, multiplicador 32x32, Comp B, sensor de temperatura

Serie FRAM

La serie FRAM de Texas Instruments ofrece memoria unificada con particionamiento dinámico y velocidades de escritura en memoria 100 veces más rápidas que la memoria flash. FRAM también es capaz de mantener el estado de energía cero en todos los modos de energía, lo que significa que las escrituras están garantizadas, incluso en caso de pérdida de energía. Con una resistencia de escritura de más de 100 billones de ciclos, ya no se necesita EEPROM. Consumo de energía activa de menos de 100 μA/MHz.

  • Descripción general de la especificación de potencia, tan baja como:
    • Retención de RAM de 320 nA
    • Modo de reloj en tiempo real de 0,35 μA
    • 82 μA/MIPS activo
  • Parámetros del dispositivo:
    • Opciones de velocidad: 8 a 24 MHz
    • Opciones de FRAM: de 4 a 256 KB
    • Opciones de RAM: 0,5 a 8 KB
    • Opciones de ADC: SAR de 10 o 12 bits
    • Opciones GPIO: 17 a 83 pines GPIO
    • Otros posibles periféricos integrados: MPU, hasta 6 temporizadores de 16 bits, temporizador de vigilancia, RTC, módulo de gestión de energía (BOR, SVS, SVM, LDO), módulo USCI, DMA, multiplicador, Comp B, sensor de temperatura, controlador LCD, I2C y UART BSL, interfaz de escaneo extendido, multiplicador de 32 bits, AES, CRC, aceleración del procesamiento de señales, toque capacitivo, modulación IR

Serie de baja tensión

La serie de bajo voltaje incluye las piezas MSP430C09x y MSP430L092, capaces de funcionar a 0,9 V. Estas 2 series de microcontroladores de 16 bits de bajo voltaje tienen configuraciones con dos temporizadores de 16 bits, un convertidor de analógico a digital (A/D) de 8 bits, un convertidor de digital a analógico (D/A) de 8 bits y hasta 11 pines de E/S.

  • Descripción general de la especificación de potencia, tan baja como:
    • Retención de RAM de 1 μA
    • Modo de reloj en tiempo real de 1,7 μA
    • 180 μA/MIPS activo
  • Parámetros del dispositivo:
    • Opciones de velocidad: 4 MHz
    • Opciones de ROM: 1–2 KB
    • Opciones de SRAM: 2 KB
    • Opciones de ADC: SAR de 8 bits
    • Opciones GPIO: 11 pines
    • Otros periféricos integrados: hasta 2 temporizadores de 16 bits, temporizador de vigilancia, reinicio por caída de tensión, SVS, comparador, sensor de temperatura

Otras familias MSP430

Más familias dentro de MSP430 incluyen piezas de función fija, automotrices y de temperatura extendida.

Función fija: El microcontrolador MSP430BQ1010 de 16 bits es un dispositivo avanzado de función fija que forma la unidad de control y comunicaciones en el lado del receptor para la transferencia de energía inalámbrica en aplicaciones portátiles. El MSP430BQ1010 cumple con la especificación del Wireless Power Consortium (WPC). Para obtener más información, consulte Contactless Power [ enlace inactivo permanente ] .

Automotriz: Los microcontroladores (MCU) MSP430 de Texas Instruments (TI) son procesadores de señal mixta, basados ​​en RISC y de 16 bits que cuentan con certificación AEC-Q100 y son adecuados para aplicaciones automotrices en entornos con temperaturas ambiente de hasta 105 °C. Controladores compatibles con LIN para el MCU MSP430 proporcionados por IHR GmbH.

Temperatura extendida: los dispositivos MSP430 son muy populares en entornos hostiles, como la detección industrial, por su bajo consumo de energía y su innovadora integración analógica. Algunas aplicaciones en entornos hostiles incluyen transporte/automoción, energía renovable, militar/espacial/aviónica, exploración minera, industrial y seguridad.

  • Definiciones del dispositivo:
    • Alta temperatura: -55 °C a 150 °C
    • EP: Productos mejorados -55 °C a 125 °C
    • Q1: Automotriz Q100 calificado de -40 °C a 105 °C
    • T: Aplicaciones de temperatura extendida de -40 °C a 105 °C

Tenga en cuenta que cuando el tamaño de la memoria flash supera las 64 000 palabras (128 KB), las direcciones de instrucciones ya no se pueden codificar en solo dos bytes. Este cambio en el tamaño del puntero provoca algunas incompatibilidades con las piezas anteriores.

Periféricos

Los periféricos MSP430 son generalmente fáciles de usar, con direcciones (en su mayoría) consistentes entre los modelos y sin registros de solo escritura (a excepción del multiplicador de hardware).

Puertos de E/S de propósito general 0–10

Si no se necesita el periférico, el pin se puede utilizar para E/S de propósito general. Los pines se dividen en grupos de 8 bits llamados "puertos", cada uno de los cuales está controlado por una serie de registros de 8 bits. En algunos casos, los puertos se organizan en pares a los que se puede acceder como registros de 16 bits.

La familia MSP430 define 11 puertos de E/S, P0 a P10, aunque ningún chip implementa más de 10 de ellos. P0 solo se implementa en la familia '3xx. P7 a P10 solo se implementan en los miembros más grandes (y las versiones con mayor número de pines) de las familias '4xx y '2xx. Las familias '5xx y '6xx más nuevas tienen P1 a P11, y los registros de control se reasignan para proporcionar más pares de puertos. Cada puerto está controlado por los siguientes registros. Los puertos que no implementan características particulares (como interrupción en cambio de estado) no implementan los registros correspondientes.

P x EN
Entrada del puerto x . Este es un registro de solo lectura y refleja el estado actual de los pines del puerto.
P x FUERA
Salida del puerto x . Los valores escritos en este registro de lectura/escritura se expulsan de los pines correspondientes cuando están configurados para salida.
P x DIR
Dirección de datos del puerto x . Los bits escritos como 1 configuran el pin correspondiente para la salida. Los bits escritos como 0 configuran el pin para la entrada.
P x SEL
Selección de función del puerto x . Los bits escritos como 1 configuran el pin correspondiente para que lo use el periférico especializado. Los bits escritos como 0 configuran el pin para E/S de propósito general. El puerto 0 (solo partes '3xx) no está multiplexado con otros periféricos y no tiene un registro P0SEL.
P x REN
Habilitación de resistencias del puerto x (solo '2xx y '5xx). Los bits configurados en este registro habilitan resistencias pull-up o pull-down débiles en los pines de E/S correspondientes, incluso cuando están configurados como entradas. La dirección de pull se establece mediante el bit escrito en el registro P x OUT.
P x DS
Intensidad de la unidad del puerto x (solo '5xx). Los bits configurados en este registro habilitan salidas de corriente alta. Esto aumenta la potencia de salida, pero puede causar interferencia electromagnética (EMI).

Los puertos 0 a 2 pueden producir interrupciones cuando cambian las entradas. Otros registros configuran esta capacidad:

P x IES
Selección de flanco de interrupción del puerto x . Selecciona el flanco que hará que se active el bit P x IFG. Cuando el bit de entrada cambia de coincidir con el estado P x IES a no coincidir con él (es decir, siempre que un bit en P x IES XOR P x IN cambia de estar en blanco a estar activado), se activa el bit P x IFG correspondiente.
P x IE
Habilitación de interrupción del puerto x . Cuando este bit y el bit P x IFG correspondiente están configurados, se genera una interrupción.
P x IFG
Indicador de interrupción del puerto x . Se activa siempre que el pin correspondiente realiza el cambio de estado solicitado por P x IES. Solo se puede borrar mediante software. (También se puede configurar mediante software).
P x IV
Vector de interrupción del puerto x (solo '5xx). Este registro de 16 bits es un codificador de prioridad que se puede utilizar para manejar interrupciones de cambio de pin. Si n es el bit de interrupción con el número más bajo que está pendiente en P x IFG y habilitado en P x IE, este registro se lee como 2 n +2. Si no existe dicho bit, se lee como 0. El factor de escala de 2 permite el uso directo como un desplazamiento en una tabla de ramificación . La lectura de este registro también borra el indicador P x IFG informado.

Algunos pines tienen propósitos especiales, ya sea como entradas o salidas. (Por ejemplo, los pines del temporizador se pueden configurar como entradas de captura o salidas PWM). En este caso, el bit P x DIR controla cuál de las dos funciones realiza el pin cuando se establece el bit P x SEL. Si solo hay una función especial, generalmente se ignora P x DIR. El registro P x IN aún se puede leer si se establece el bit P x SEL, pero se deshabilita la generación de interrupciones. Si P x SEL está despejado, la entrada de la función especial se congela y se desconecta del pin externo. Además, configurar un pin para una salida de propósito general no deshabilita la generación de interrupciones.

Periféricos integrados

Cosa análoga
  • Convertidor analógico a digital
La línea MSP430 ofrece dos tipos de conversión de analógico a digital (ADC). Convertidores de aproximación sucesiva de 10 y 12 bits , así como un convertidor sigma-delta de 16 bits . Los controladores de transferencia de datos y un búfer de conversión y control de 16 palabras permiten que el MSP430 convierta y almacene muestras sin la intervención de la CPU, lo que minimiza el consumo de energía.
  • Pool analógico
El módulo Analog Pool (A-POOL) se puede configurar como un ADC, DAC, comparador, SVS o sensor de temperatura. Permite flexibilidad para que el usuario programe una serie de funciones analógicas con una sola configuración.
  • Comparador A, A+
El módulo comparador del MSP430 proporciona conversiones de analógico a digital con pendiente precisa. Monitorea señales analógicas externas y proporciona mediciones de voltaje y valor de resistencia. Capaz de seleccionar modos de potencia.
  • DAC12
El módulo DAC12 es un DAC de 12 bits con salida de voltaje que incluye selección de referencia interna/externa y tiempo de establecimiento programable para un consumo de energía óptimo. Se puede configurar en modo de 8 o 12 bits. Cuando hay varios módulos DAC12, se pueden agrupar para una operación de actualización sincrónica.
  • Amplificadores operacionales
Cuentan con una fuente de alimentación única, funcionamiento a baja corriente con salidas de riel a riel y tiempos de estabilización programables. Opciones de configuración seleccionables por software: modo de ganancia unitaria, modo comparador, PGA inversor, PGA no inversor, amplificador diferencial y de instrumentación.
  • Sigma Delta (SD)
Los módulos SD16/SD16_A/SD24_A cuentan con convertidores A/D sigma-delta de 16/24 bits con una referencia interna de 1,2 V. Cada convertidor tiene hasta ocho entradas multiplexadas totalmente diferenciales, incluido un sensor de temperatura integrado. Los convertidores son moduladores sigma-delta de sobremuestreo de segundo orden con relaciones de sobremuestreo seleccionables de hasta 1024 (SD16_A/SD24_A) o 256 (SD16).
Temporizadores
  • Temporizador básico (BT)
El BT tiene dos temporizadores independientes de 8 bits que se pueden conectar en cascada para formar un temporizador/contador de 16 bits. Ambos temporizadores se pueden leer y escribir mediante software. El BT se ha ampliado para proporcionar un reloj en tiempo real integrado. Un calendario interno compensa los meses con menos de 31 días e incluye corrección de años bisiestos.
  • Reloj en tiempo real
Los RTC_A/B son módulos de contador de hardware de 32 bits que proporcionan contadores de reloj con un calendario, una alarma programable flexible y calibración. El RTC_B incluye un sistema de respaldo de batería conmutable que permite que el RTC funcione cuando falla la fuente de alimentación principal.
  • Temporizadores de 16 bits
Timer_A, Timer_B y Timer_D son temporizadores/contadores asincrónicos de 16 bits con hasta siete registros de captura/comparación y varios modos de funcionamiento. Los temporizadores admiten múltiples capturas/comparaciones, salidas PWM y temporización por intervalos. También tienen amplias capacidades de interrupción. Timer_B presenta características adicionales, como longitudes de temporizador programables (8, 10, 12 o 16 bits) y actualizaciones de registros de comparación con doble búfer, mientras que Timer_D presenta un modo de alta resolución (4 ns).
El WDT+ realiza un reinicio controlado del sistema después de que ocurre un problema de software. Si transcurre el intervalo de tiempo seleccionado, se genera un reinicio del sistema. Si no se necesita la función de vigilancia en una aplicación, el módulo se puede configurar como un temporizador de intervalos y puede generar interrupciones en intervalos de tiempo seleccionados.
Sistema
  • Estándar de cifrado avanzado (AES)
El módulo acelerador AES realiza el cifrado y descifrado de datos de 128 bits con claves de 128 bits de acuerdo con el estándar de cifrado avanzado en hardware y se puede configurar con el software del usuario.
  • Reinicio por apagón (BOR)
El circuito BOR detecta voltajes de suministro bajos y reinicia el dispositivo activando una señal de reinicio de encendido (POR) cuando se aplica o se quita la energía. El circuito BOR de potencia cero del MCU MSP430 está encendido continuamente, incluso en todos los modos de bajo consumo.
  • Controlador de acceso directo a memoria (DMA)
El controlador DMA transfiere datos de una dirección a otra a lo largo de todo el rango de direcciones sin intervención de la CPU. El DMA aumenta el rendimiento de los módulos periféricos y reduce el consumo de energía del sistema. El módulo cuenta con hasta tres canales de transferencia independientes.
Aunque el subsistema DMA del MSP430 es muy capaz, tiene varios defectos, el más significativo de los cuales es la falta de un estroboscopio de transferencia externo. Aunque una transferencia DMA se puede activar externamente, no hay ninguna indicación externa de finalización de una transferencia. En consecuencia, el DMA hacia y desde fuentes externas se limita a transferencias por byte activadas externamente, en lugar de bloques completos automáticamente a través de DMA. Esto puede conducir a una complejidad significativa (como la necesidad de un ajuste manual extenso del código) al implementar comunicaciones de procesador a procesador o de procesador a USB. [6] La referencia citada utiliza un modo de temporizador oscuro para generar estroboscopios de alta velocidad para transferencias DMA. Los temporizadores no son lo suficientemente flexibles como para compensar fácilmente la falta de un estroboscopio de transferencia DMA externo.
Las operaciones DMA que implican transferencias de palabras a ubicaciones de bytes provocan un truncamiento a 8 bits en lugar de una conversión a transferencias de dos bytes. Esto hace que el DMA con valores A/D o D/A de 16 bits sea menos útil de lo que podría ser (aunque es posible realizar el DMA de estos valores a través del puerto A o B en algunas versiones del MSP 430 utilizando un disparador visible externamente por transferencia, como una salida de temporizador).
  • Módulo de emulación mejorado (EEM)
El EEM ofrece distintos niveles de funciones de depuración, como de 2 a 8 puntos de interrupción de hardware, puntos de interrupción complejos, interrupción cuando se realiza una lectura o escritura en una dirección específica, etc. Integrado en todos los dispositivos MSP430 basados ​​en flash.
  • Multiplicador de hardware
Algunos modelos MSP430 incluyen un periférico multiplicador de hardware mapeado en memoria que realiza varias operaciones de multiplicación y acumulación de 16×16+32→33 bits. A diferencia de lo que ocurre con el MSP430, este periférico incluye un registro de solo escritura de 2 bits implícito, lo que hace que sea prácticamente imposible cambiar de contexto . Este periférico no interfiere con las actividades de la CPU y se puede acceder a él mediante el DMA. El MPY en todos los dispositivos MSP430F5xx y algunos MSP430F4xx presenta hasta 32 bits x 32 bits.
Los 8 registros utilizados son:
El primer operando se escribe en uno de los cuatro registros de 16 bits. La dirección escrita determina la operación realizada. Si bien el valor escrito se puede leer desde cualquiera de los registros, el número de registro escrito no se puede recuperar.
Si se desea una operación de multiplicación-acumulación, los registros ResLoy ResHitambién deben inicializarse.
Luego, cada vez que se realiza una escritura en el OP2registro, se realiza una multiplicación y el resultado se almacena o se agrega a los registros de resultados. El SumExtregistro es un registro de solo lectura que contiene el resultado de la suma (0 o 1) en el caso de una multiplicación sin signo), o la extensión del signo de la suma de 32 bits (0 o -1) en el caso de una multiplicación con signo. En el caso de una multiplicación-acumulación con signo, el SumExtvalor debe combinarse con el bit más significativo del SumHicontenido anterior para determinar el resultado real de la multiplicación (-1, 0 o +1).
El resultado está disponible después de tres ciclos de reloj de retraso, que es el tiempo necesario para obtener la siguiente instrucción y la siguiente palabra de índice. Por lo tanto, el retraso suele ser invisible. Solo se requiere un retraso explícito si se utiliza un modo de direccionamiento indirecto para obtener el resultado.
  • Unidad de protección de memoria (MPU)
La MPU FRAM protege contra escrituras accidentales en segmentos de memoria de solo lectura designados o la ejecución de código desde una memoria constante. La MPU puede configurar cualquier porción de memoria con direccionamiento a nivel de bit, lo que hace que toda la memoria sea accesible para operaciones de lectura, escritura y ejecución en dispositivos FRAM.
  • Módulo de gestión de energía (PMM)
El PMM genera un voltaje de suministro para la lógica del núcleo y proporciona varios mecanismos para la supervisión y el monitoreo tanto del voltaje aplicado al dispositivo como del voltaje generado para el núcleo. Está integrado con un regulador de voltaje de baja caída (LDO), un restablecimiento por caída de voltaje (BOR) y un supervisor y monitor de voltaje de suministro.
  • Supervisor de tensión de alimentación (SVS)
El SVS es un módulo configurable que se utiliza para monitorear el voltaje de suministro del AVCC o un voltaje externo. El SVS se puede configurar para establecer un indicador o generar un reinicio de encendido (POR) cuando el voltaje de suministro o el voltaje externo cae por debajo de un umbral seleccionado por el usuario.
Comunicación e interfaz
  • Entradas y salidas de detección táctil capacitiva
El módulo de E/S de detección táctil capacitiva integrado ofrece varios beneficios para las aplicaciones de botones y controles deslizantes táctiles. El sistema no requiere componentes externos para crear la autooscilación (lo que reduce la lista de materiales) y el capacitor (que define la frecuencia de la autooscilación) se puede conectar directamente. Además, no hay necesidad de multiplexores externos para permitir múltiples pads y cada pad de E/S puede servir directamente como una entrada de detección de capacitores. Una histéresis de ~0,7 V garantiza un funcionamiento robusto. El control y la secuenciación se realizan completamente en software.
  • E/S de propósito general
Los dispositivos MSP430 tienen implementados hasta 12 puertos de E/S digitales. Cada puerto tiene ocho pines de E/S. Cada pin de E/S se puede configurar como entrada o salida, y se puede leer o escribir en él de forma individual. Los puertos P1 y P2 tienen capacidad de interrupción. Los dispositivos MSP430F2xx, F5xx y algunos F4xx cuentan con resistencias pull-up o pull-down integradas y configurables de forma individual.
  • Interfaz de RF de sub-GHz
El transceptor flexible CC1101 sub-1 GHz ofrece la sensibilidad y el rendimiento de bloqueo necesarios para lograr enlaces de comunicación exitosos en cualquier entorno de RF. También presenta un bajo consumo de corriente y admite velocidades de datos y formatos de modulación flexibles.
  • USART (UART, SPI, I²C)
La interfaz periférica de recepción/transmisión sincrónica/asincrónica universal (USART) admite comunicación SPI sincrónica y RS-232 asincrónica con un módulo de hardware. Los módulos USART MSP430F15x/16x también admiten I²C, velocidad de transmisión programable y capacidad de interrupción independiente para recepción y transmisión.
  • USB
El módulo USB es totalmente compatible con la especificación USB 2.0 y admite control, interrupción y transferencias masivas a una velocidad de datos de 12 Mbps (velocidad máxima). El módulo admite operaciones de suspensión, reanudación y activación remota de USB y se puede configurar para hasta ocho puntos finales de entrada y ocho de salida. El módulo incluye una interfaz física integrada (PHY), un bucle de enganche de fase (PLL) para la generación de reloj USB y un sistema de suministro de energía flexible que permite dispositivos alimentados por bus y autoalimentados.
  • USCI (UART, SPI, I²C, LIN, IrDA)
El módulo de interfaz de comunicación serial universal (USCI) cuenta con dos canales independientes que se pueden utilizar simultáneamente. El canal asíncrono (USCI_A) admite el modo UART, el modo SPI, la conformación de pulsos para IrDA y la detección automática de la velocidad en baudios para las comunicaciones LIN. El canal síncrono (USCI_B) admite los modos I²C y SPI.
  • Interfaz de usuario (SPI, I²C)
El módulo de interfaz serial universal (USI) es una interfaz de comunicación serial síncrona con una longitud de datos de hasta 16 bits y puede admitir la comunicación SPI e I²C con un software mínimo.
  • Modulación infrarroja
Esta función, disponible en los chips de las series MSP430FR4xxx y MSP430FR2xxx, se configura a través del conjunto de registros SYSCFG. Este periférico se conecta a otros periféricos (temporizadores, eUSCI_A) para generar una señal modulada por infrarrojos en un pin de salida. [11]
Medida
  • ESP430 (integrado en dispositivos FE42xx)
El módulo ESP430CE realiza cálculos de medición independientemente de la CPU. El módulo tiene un SD16 independiente, un multiplicador de HW y el motor de procesador integrado ESP430 para aplicaciones de medición de energía monofásica.
  • Interfaz de escaneo (SIF)
El módulo SIF, una máquina de estados programable con un front-end analógico, se utiliza para medir automáticamente el movimiento lineal o rotatorio con el menor consumo de energía posible. El módulo admite distintos tipos de sensores LC y resistivos, así como codificación en cuadratura.
Mostrar
  • Pantalla LCD/LCD_A/LCD_B
El controlador LCD/LCD_A controla directamente las pantallas LCD de hasta 196 segmentos. Admite pantallas LCD estáticas de 2, 3 y 4 mux. El módulo LCD_A tiene una bomba de carga integrada para el control del contraste. El módulo LCD_B permite el parpadeo de segmentos individuales con una memoria de parpadeo independiente.
  • LCD_E
El controlador LCD_E viene con los nuevos microcontroladores de la serie MSP430FR4xxx y controla directamente las pantallas LCD de hasta 448 segmentos. Admite pantallas LCD estáticas de 2, 3, 4, 5, 6, 7 y 8 mux (polarización de 1/3). Los pines de segmento y comunes se pueden reprogramar para utilizar los pines de control de la pantalla LCD disponibles. Este periférico se puede controlar en modo de bajo consumo LPM3.5 (RTC en ejecución + apagado del núcleo de la CPU principal). [11]

Entorno de desarrollo de software

Texas Instruments ofrece varias placas de experimentación de hardware que admiten chips MSP430 grandes (aproximadamente dos centímetros cuadrados) y pequeños (aproximadamente un milímetro cuadrado). TI también ofrece herramientas de desarrollo de software, tanto directamente como en conjunto con socios (consulte la lista completa de compiladores, ensambladores e IDE). Una de estas cadenas de herramientas es el compilador IAR C/C++ y el entorno de desarrollo integrado o IDE. Se puede descargar una edición Kickstart de forma gratuita desde TI o IAR; está limitada a 8 KB de código C/C++ en el compilador y el depurador ( se pueden desarrollar y depurar programas en lenguaje ensamblador de cualquier tamaño con esta cadena de herramientas gratuita).

TI también combina una versión de su propio compilador y herramientas con su IDE Code Composer Studio (CCS) basado en Eclipse . Vende versiones con todas las funciones y ofrece una versión gratuita para descargar que tiene un límite de tamaño de código de 16 KB. CCS admite emuladores en circuito e incluye un simulador y otras herramientas; también puede funcionar con otros procesadores vendidos por TI.

Para aquellos que se sienten más cómodos con Arduino , también existe otro software, Energia , una plataforma de creación de prototipos electrónicos de código abierto con el objetivo de llevar el marco de trabajo de Wiring y Arduino al LaunchPad basado en Texas Instruments MSP430, donde se puede exportar el código de Arduino para programar chips MSP430. La última versión de Energia es compatible con MSP-EXP430G2xxx, MSP-EXP430FR5739, MSP-EXP430FR5969, MSP-EXP430FR5994, MSP-EXP430F5529LP, Stellaris EK-LM4F120XL, Tiva-C EK-TM4C123GXL, Tiva-C EK-TM4C1294XL, CC3200 Wi-Fi LaunchPad. [12]

La comunidad de código abierto produce un conjunto de herramientas de desarrollo de software de libre acceso basado en el conjunto de herramientas GNU . El compilador GNU se encuentra actualmente disponible en tres versiones:

(MSPGCC)

(Uniarca MSPGCC)

TI consultó a RedHat para brindar soporte oficial para la arquitectura MSP430 al compilador C/C++ de GNU Compiler Collection . Este compilador msp430-elf-gcc es compatible con la versión 6.0 y posteriores de Code Composer Studio de TI.

Hay un proyecto llvm-msp430 en sus primeras etapas, que eventualmente podría proporcionar un mejor soporte para MSP430 en LLVM .

Existen otros conjuntos de herramientas de desarrollo comerciales, que incluyen editor, compilador, enlazador, ensamblador, depurador y en algunos casos asistentes de código. VisSim , un lenguaje de diagrama de bloques para el desarrollo basado en modelos, genera código C de punto fijo eficiente directamente desde el diagrama. [13] El código generado por VisSim para un control PID basado en ADC+PWM de bucle cerrado en el F2013 se compila en menos de 1 KB de flash y 100 bytes de RAM. [14] VisSim tiene bloques periféricos en chip para toda la familia MSP430 I²C, ADC, SD16, PWM.

Plataformas de desarrollo de bajo costo

El MSP430F2013 y sus hermanos se distinguen por el hecho de que (a excepción del MSP430G2 Value Line) es el único componente MSP430 que está disponible en un encapsulado dual en línea (DIP). Otras variantes de esta familia solo están disponibles en varios encapsulados de montaje superficial. TI se ha tomado la molestia de respaldar la plataforma de desarrollo eZ430 al hacer que los chips en bruto sean fáciles de usar para los aficionados en prototipos.

eZ430-F2013

TI ha abordado el problema del bajo presupuesto ofreciendo una placa de experimentación muy pequeña, la eZ430-F2013 , en una memoria USB (ahora obsoleta). Esto facilitó a los diseñadores la elección del chip MSP430 para plataformas de desarrollo económicas que se pueden utilizar con un ordenador. La eZ430-F2013 contiene un microcontrolador MSP430F2013 en una placa de prototipos desmontable y un CD con software de desarrollo. Es útil [ cita requerida ] para escuelas, aficionados e inventores de garaje. También es bien recibido [ cita requerida ] por ingenieros de grandes empresas que realizan prototipos de proyectos con problemas de presupuesto de capital.

Plataforma de lanzamiento MSP430

Texas Instruments lanzó el MSP430 LaunchPad en julio de 2010 a un costo de $4.30. El MSP430 LaunchPad tiene un emulador flash integrado , USB , 2 LED programables y 1 botón pulsador programable. [15] Como complemento a la experimentación con el LaunchPad, hay disponible una placa de protección.

Desde entonces, TI ha proporcionado varios LaunchPads nuevos basados ​​en la plataforma MSP430:

  • MSP-EXP430F5529LP cuenta con el MCU compatible con dispositivos USB MSP430F5529 con 128 KB de flash y 8 KB de SRAM
  • MSP-EXP430FR5969 cuenta con el MCU FRAM MSP430FR5969 con 64 KB de FRAM y 2 KB de SRAM
  • MSP-EXP430FR4133 cuenta con el MCU FRAM MSP430FR4133 con 16 KB FRAM, 2 KB SRAM y LCD integrado
  • MSP-EXP430FR6989 cuenta con el MCU FRAM MSP430FR6989 con 128 KB FRAM, 2 KB SRAM, LCD integrado y periférico de interfaz de escaneo extendido.
  • MSP-EXP430FR2311 cuenta con el MCU FRAM MSP430FR2311 con 4 KB FRAM, 1 KB SRAM, amplificador operacional y periférico amplificador de transimpedancia.
  • MSP-EXP430FR2433 cuenta con el MCU FRAM MSP430FR2433 con 15,5 KB FRAM, 4 KB SRAM
  • El MSP-EXP430FR2355 cuenta con el MCU FRAM MSP430FR2355 con 32 KB de FRAM, 4 KB de SRAM, ADC de 12 bits, DAC de 12 bits, OpAmp/PGA, ICC para interrupciones anidadas.
  • MSP-EXP430FR5994 cuenta con el MCU FRAM MSP430FR5994 con 256 KB FRAM, 8 KB SRAM, ADC de 12 bits y periférico LEA DSP.

Los tres LaunchPads incluyen un depurador JTAG eZ-FET con UART de canal posterior capaz de alcanzar velocidades de 1 Mbit/s. Los LaunchPads FRAM (por ejemplo, MSP-EXP430FR5969, MSP-EXP430FR4133) incluyen EnergyTrace, una función compatible con el IDE Code Composer Studio de TI para supervisar y analizar el consumo de energía.

Interfaz de depuración

Al igual que otros proveedores de microcontroladores, TI ha desarrollado una interfaz de depuración de dos cables que se encuentra en algunas de sus piezas MSP430 y que puede reemplazar la interfaz JTAG más grande. La herramienta de desarrollo eZ430 contiene una herramienta de emulación flash (FET) conectada por USB completa para este nuevo protocolo de dos cables, llamada Spy-Bi-Wire por TI. Spy-Bi-Wire se introdujo inicialmente solo en los dispositivos más pequeños de la familia 'F2xx con un número limitado de pines de E/S, como el MSP430F20xx, MSP430F21x2 y MSP430F22x2. El soporte para Spy-Bi-Wire se ha ampliado con la introducción de la última familia '5xx, donde todos los dispositivos tienen soporte para la interfaz Spy-Bi-Wire además de JTAG.

La ventaja del protocolo Spy-Bi-Wire es que utiliza sólo dos líneas de comunicación, una de las cuales es la línea dedicada _RESET. La interfaz JTAG en los componentes MSP430 con menor número de pines está multiplexada con líneas de E/S de propósito general. Esto hace que sea relativamente difícil depurar circuitos construidos alrededor de chips pequeños con bajo presupuesto de E/S, ya que el hardware JTAG de 4 pines completo entrará en conflicto con cualquier otra cosa conectada a esas líneas de E/S. Este problema se alivia con los chips compatibles con Spy-Bi-Wire, que aún son compatibles con la interfaz JTAG normal para compatibilidad con versiones anteriores de las antiguas herramientas de desarrollo.

Las herramientas de depuración JTAG y de programación flash basadas en OpenOCD y ampliamente utilizadas en la comunidad de arquitectura ARM no están disponibles para el MSP430. Las herramientas de programación especialmente diseñadas para el MSP430 son ligeramente menos costosas que las interfaces JTAG que utilizan OpenOCD. Sin embargo, si se descubre a mitad del proyecto que se necesitan más MIPS, más memoria y más periféricos de E/S, esas herramientas no se transferirán a un procesador de otro proveedor.

Procesador MSP430

La CPU MSP430 utiliza una arquitectura de von Neumann , con un único espacio de direcciones para instrucciones y datos. La memoria está direccionada por bytes y los pares de bytes se combinan en orden little-endian para formar palabras de 16 bits .

El procesador contiene 16 registros de 16 bits, [16] de los cuales cuatro están dedicados a propósitos especiales: R0 es el contador de programa , R1 es el puntero de pila , R2 es el registro de estado y R3 es un "generador de constantes" que lee como cero e ignora las escrituras. Las codificaciones de modo de dirección agregadas que utilizan R3 y R2 permiten un total de seis valores constantes de uso común (0, 1, 2, 4, 8 y −1) sin necesidad de una palabra de operando inmediata. R4 a R15 están disponibles para uso general.

El conjunto de instrucciones es muy simple: existen 27 instrucciones en tres familias. La mayoría de las instrucciones se presentan en versiones con sufijo .B (byte de 8 bits) y .W (palabra de 16 bits), según el valor de un bit B/W: el bit se establece en 1 para 8 bits y 0 para 16 bits. La falta de un sufijo equivale a .W. Las operaciones de byte en la memoria afectan solo al byte direccionado, mientras que las operaciones de byte en los registros borran el byte más significativo.

Las instrucciones son de 16 bits, seguidas de hasta dos palabras de extensión de 16 bits. Los modos de direccionamiento se especifican mediante el campo As de 2 bits y el campo Ad de 1 bit. Se pueden construir algunas versiones especiales utilizando R0, y los modos distintos del registro directo que utilizan R2 (el registro de estado) y R3 (el generador de constantes) se interpretan de manera especial. Ad puede utilizar solo un subconjunto de los modos de direccionamiento para As.

Los modos de direccionamiento indexados agregan una palabra de extensión de 16 bits a la instrucción. Si tanto el origen como el destino están indexados, la palabra de extensión del origen aparece primero. x hace referencia a la siguiente palabra de extensión en el flujo de instrucciones de la tabla siguiente.

Las instrucciones generalmente toman 1 ciclo por palabra obtenida o almacenada, por lo que los tiempos de instrucción varían desde 1 ciclo para una instrucción simple de registro a registro hasta 6 ciclos para una instrucción con origen y destino indexados.

La extensión MSP430X con direccionamiento de 20 bits agrega instrucciones adicionales que pueden requerir hasta 10 ciclos de reloj. Establecer o borrar un bit periférico requiere dos ciclos de reloj. Un salto, realizado o no, requiere dos ciclos de reloj. Con la serie 2xx, 2 MCLK son 125 ns a 16 MHz.

Se permiten movimientos al contador del programa y se realizan saltos. El retorno desde una subrutina, por ejemplo, se implementa como MOV @SP+,PC .

Cuando se utilizan R0 (PC) o R1 (SP) con el modo de direccionamiento de incremento automático, siempre se incrementan en dos. Los demás registros (R4 a R15) se incrementan en el tamaño del operando, ya sea 1 o 2 bytes.

El registro de estado contiene 4 bits de estado aritmético, una habilitación de interrupción global y 4 bits que deshabilitan varios relojes para ingresar al modo de bajo consumo. Al manejar una interrupción, el procesador guarda el registro de estado en la pila y borra los bits de bajo consumo. Si el controlador de interrupción no modifica el registro de estado guardado, al regresar de la interrupción se reanudará el modo de bajo consumo original.

Pseudooperaciones

Muchas instrucciones agregadas se implementan como alias para las formas de las instrucciones anteriores. Por ejemplo, no hay una instrucción específica de "retorno de subrutina", pero se implementa como "MOV @SP+,PC". Las instrucciones emuladas son:

Tenga en cuenta que las constantes inmediatas −1 (0xffff), 0, 1, 2, 4 y 8 se pueden especificar en una instrucción de una sola palabra sin necesidad de un operando inmediato separado.

Extensión de 20 bits MSP430X

El MSP430 básico no puede admitir más memoria (ROM + RAM + periféricos) que su espacio de direcciones de 64K. Para ello, una versión ampliada del MSP430 utiliza registros de 20 bits y un espacio de direcciones de 20 bits, lo que permite hasta 1 MB de memoria. Esta versión utiliza el mismo conjunto de instrucciones que la versión básica, pero con dos extensiones:

  1. Un número limitado de instrucciones de 20 bits para operaciones comunes y
  2. Un mecanismo de palabra de prefijo general que puede extender cualquier instrucción a 20 bits.

Las instrucciones extendidas incluyen algunas capacidades adicionales, en particular cambios de múltiples bits y operaciones de carga/almacenamiento de múltiples registros.

Las operaciones de 20 bits utilizan el sufijo de longitud "A" (para la dirección) en lugar de .B o .W. .W sigue siendo el valor predeterminado. En general, las operaciones más cortas borran los bits de orden superior del registro de destino.

Las nuevas instrucciones son las siguientes:

All other instructions can have a prefix word added which extends them to 20 bits. The prefix word contains an added operand size bit, which is combined with the existing B/W bit to specify the operand size. One unused size combination exists; indications suggest that it may be used in future for a 32-bit operand size.[17]

The prefix word comes in two formats, and the choice between them depends on the instruction which follows. If the instruction has any non-register operands, then the simple form is used, which provides 2 4-bit fields to extend any offset or immediate constant in the instruction stream to 20 bits.

If the instruction is register-to-register, a different extension word is used. This includes a "ZC" flag which suppresses carry-in (useful for instructions like DADD which always use the carry bit), and a repeat count. A 4-bit field in the extension word encodes either a repeat count (0–15 repetitions in addition to the initial execution), or a register number which contains a 4-bit repeat count.

MSP430 address space

The general layout of the MSP430 address space is:

0x0000–0x0007
Processor special function registers (interrupt control registers)
0x0008–0x00FF
8-bit peripherals. These must be accessed using 8-bit loads and stores.
0x0100–0x01FF
16-bit peripherals. These must be accessed using 16-bit loads and stores.
0x0200–0x09FF
Up to 2048 bytes of RAM.
0x0C00–0x0FFF
1024 bytes of bootstrap loader ROM (flash parts only).
0x1000–0x10FF
256 bytes of data flash ROM (flash parts only).
0x1800-0x19FF
512 bytes of data FRAM (most FRAM MCUs, user-writable containing no calibration data)
0x1100–0x38FF
Extended RAM on models with more than 2048 bytes of RAM. (0x1100–0x18FF is a copy of 0x0200–0x09FF)
0x1100–0xFFFF
Up to 60 kilobytes of program ROM. Smaller ROMs start at higher addresses. The last 16 or 32 bytes are interrupt vectors.

A few models include more than 2048 bytes of RAM; in that case RAM begins at 0x1100. The first 2048 bytes (0x1100–0x18FF) is mirrored at 0x0200–0x09FF for compatibility. Also, some recent models bend the 8-bit and 16-bit peripheral rules, allowing 16-bit access to peripherals in the 8-bit peripheral address range.

There is a new extended version of the architecture (named MSP430X) which allows a 20-bit address space. It allows added program ROM beginning at 0x10000.

The '5xx series has a greatly redesigned address space, with the first 4K devoted to peripherals, and up to 16K of RAM.

References

  1. ^ Evanczuk, Stephen (20 August 2013). "Slideshow: The most-popular MCUs ever". edn.com. Electronics Design Network. Retrieved 3 September 2020.
  2. ^ MSP430 will run on grapes – video on YouTube
  3. ^ "MSP430FR573x Mixed-Signal Microcontrollers" (PDF). ti.com. Texas Instruments. Retrieved 27 July 2024.
  4. ^ "MSP430 microcontrollers". ti.com. Texas instruments. Retrieved 27 July 2024.
  5. ^ "Single-Slope Analog-to-Digital Conversion Technique Using MSP430™ MCUs" (PDF). Texas Instruments. 2017. Archived (PDF) from the original on 3 February 2023. Retrieved 3 September 2023.
  6. ^ a b D. Peters, D. Raskovic, and D. Thorsen, "An Energy Efficient Parallel Embedded System for Small Satellite Applications", ISAST Transactions on Computers and Intelligent Systems, vol. 1(2), 2009
  7. ^ "MSP430 Ultra-Low-Power Microcontrollers - Third Quarter 2000" (PDF). Texas Instruments. Retrieved 5 July 2024.
  8. ^ Bierl, Lutz (2004). Das große MSP430 Praxisbuch. Franzis. p. 21. ISBN 377234299X.
  9. ^ "Product Bulletin - MSP430 Ultra-low-power Microcontrollers - Second Quarter, 1999" (PDF). Texas Instruments. Retrieved 5 July 2024.
  10. ^ Lowest Power MSP430 Microcontrollers from Texas Instruments
  11. ^ a b "MSP430FR4xx and MSP430FR2xx family - User's Guide". Texas Instruments. p. 43.
  12. ^ Energia website
  13. ^ MSP430 article[permanent dead link] published in IEEE magazine.
  14. ^ Visual Solutions
  15. ^ MSP430 LaunchPad (MSP-EXP430G2), Texas Instruments Embedded Processors Wiki
  16. ^ "MSP430 Ultra-Low-Power Microcontroller" (PDF). Texas Instruments. Retrieved 9 July 2008.[permanent dead link]
  17. ^ The size bit is named A/L, where L (long) is used by other processors to indicate 32-bit operands. Also the description of the SXTX instruction (MSP430F5xx Family User's Guide alau208f page 237) describes the effect of the instruction in register bits 20–31.

External links

Community and information sites

Visual programming C code generators

Compilers, assemblers and IDEs

  Free Compiler and IDEs

  • Arduino IDE Arduino IDE
  • Code Composer Studio Eclipse based IDE
  • Code Composer Studio Cloud
  • IAR Embedded Workbench Kickstart IDE (size limited to 4/8/16 KB – depends on device used)
  • GCC toolchain for the MSP430 Microcontrollers
  • MSP430 Development System
  • naken_asm Open-Source MSP430 assembler, disassembler, simulator.
  • Pre-built MSP430 GCC 4.x binaries for Windows
  • MSP430 16-bit noForth compiler With assembler, disassembler and sources.
  • FastForth with 5 MBds terminal, assembler, SD_Card driver...
  • IAR Embedded Workbench for TI MSP430
  • Rowley CrossWorks for MSP430 (only a 30-day evaluation period)
  • GCC toolchain for the MSP430 Microcontrollers (Free C-compiler)
  • MSP430 Development System
  • A plugin for Visual Studio that supports MSP430 via MSP430-GCC (30-day evaluation)

  Miscellaneous IDEs

  • AQ430 Development Tools for MSP430 Microcontrollers
  • ImageCraft C Tools
  • ForthInc Forth-Compiler
  • MPE Forth IDE & Cross-Compiler for MSP430 currently in Beta
  • HI-TECH C for MSP430 (Dropped MSP430 Support in 2009)

List of debugging tools (not complete)

Other tools