Articulo de referencia

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

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 activación rápida 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 MSP430G2xx Value 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 de 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 proporcionan opciones de memoria flash y ROM de máscara . Estos dispositivos ofrecen un funcionamiento 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 activación rápida 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 bajo consumo.

  • 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 activación rápida 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 Energía sin contacto [ enlace muerto 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 ambos 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 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 sola fuente de alimentación, 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 la función de vigilancia no es necesaria 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 acumulación múltiple, 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 caen 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 proporciona 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.
  • El 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 herramientas de desarrollo antiguas.

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:

A todas las demás instrucciones se les puede añadir una palabra de prefijo que las amplíe a 20 bits. La palabra de prefijo contiene un bit de tamaño de operando añadido, que se combina con el bit B/W existente para especificar el tamaño del operando. Existe una combinación de tamaños sin utilizar; hay indicios de que puede utilizarse en el futuro para un tamaño de operando de 32 bits. [17]

La palabra prefijo se presenta en dos formatos y la elección entre ellos depende de la instrucción que sigue. Si la instrucción tiene operandos que no son registros, se utiliza la forma simple, que proporciona dos campos de 4 bits para ampliar cualquier desplazamiento o constante inmediata en el flujo de instrucciones a 20 bits.

Si la instrucción es de registro a registro, se utiliza una palabra de extensión diferente. Esto incluye un indicador "ZC" que suprime el acarreo (útil para instrucciones como DADD que siempre utilizan el bit de acarreo) y un recuento de repeticiones. Un campo de 4 bits en la palabra de extensión codifica un recuento de repeticiones (0 a 15 repeticiones además de la ejecución inicial) o un número de registro que contiene un recuento de repeticiones de 4 bits.

Espacio de direcciones MSP430

El diseño general del espacio de direcciones MSP430 es:

0x0000–0x0007
Registros de funciones especiales del procesador (registros de control de interrupciones)
0x0008–0x00FF
Periféricos de 8 bits. Se debe acceder a ellos mediante cargas y almacenamientos de 8 bits.
0x0100–0x01FF
Periféricos de 16 bits. Se debe acceder a ellos mediante cargas y almacenamientos de 16 bits.
0x0200–0x09FF
Hasta 2048 bytes de RAM .
0x0C00–0x0FFF
1024 bytes de ROM del cargador de arranque (solo partes flash).
0x1000–0x10FF
256 bytes de datos flash ROM (solo partes flash).
0x1800-0x19FF
512 bytes de datos FRAM (la mayoría de los MCU FRAM, escribibles por el usuario, no contienen datos de calibración)
0x1100–0x38FF
RAM extendida en modelos con más de 2048 bytes de RAM. (0x1100–0x18FF es una copia de 0x0200–0x09FF)
0x1100–0xFFFF
Hasta 60 kilobytes de ROM de programa. Las ROM más pequeñas comienzan en direcciones más altas. Los últimos 16 o 32 bytes son vectores de interrupción .

Algunos modelos incluyen más de 2048 bytes de RAM; en ese caso, la RAM comienza en 0x1100. Los primeros 2048 bytes (0x1100–0x18FF) se reflejan en 0x0200–0x09FF para garantizar la compatibilidad. Además, algunos modelos recientes rompen las reglas de 8 y 16 bits para periféricos, lo que permite el acceso de 16 bits a periféricos en el rango de direcciones de 8 bits para periféricos.

Existe una nueva versión extendida de la arquitectura (denominada MSP430X) que permite un espacio de direcciones de 20 bits . Permite agregar ROM de programa a partir de 0x10000.

La serie '5xx tiene un espacio de direcciones muy rediseñado, con los primeros 4K dedicados a periféricos y hasta 16K de RAM.

Referencias

  1. ^ Evanczuk, Stephen (20 de agosto de 2013). "Presentación de diapositivas: las MCU más populares de la historia". edn.com . Electronics Design Network . Consultado el 3 de septiembre de 2020 .
  2. ^ MSP430 funcionará con uvas – video en YouTube
  3. ^ "Microcontroladores de señal mixta MSP430FR573x" (PDF) . ti.com . Texas Instruments . Consultado el 27 de julio de 2024 .
  4. ^ "Microcontroladores MSP430". ti.com . Texas Instruments . Consultado el 27 de julio de 2024 .
  5. ^ "Técnica de conversión analógica a digital de pendiente única con microcontroladores MSP430™" (PDF) . Texas Instruments . 2017. Archivado (PDF) del original el 3 de febrero de 2023 . Consultado el 3 de septiembre de 2023 .
  6. ^ ab D. Peters, D. Raskovic y D. Thorsen, "Un sistema integrado paralelo energéticamente eficiente para aplicaciones de satélites pequeños", ISAST Transactions on Computers and Intelligent Systems , vol. 1(2), 2009
  7. ^ "Microcontroladores de consumo ultrabajo MSP430: tercer trimestre de 2000" (PDF) . Texas Instruments . Consultado el 5 de julio de 2024 .
  8. ^ Bierl, Lutz (2004). El gran libro de prácticas MSP430 . Franzis. pag. 21.ISBN 377234299X.
  9. ^ "Boletín de productos - Microcontroladores de consumo ultrabajo MSP430 - Segundo trimestre de 1999" (PDF) . Texas Instruments . Consultado el 5 de julio de 2024 .
  10. ^ Microcontroladores MSP430 de menor potencia de Texas Instruments
  11. ^ ab "Familia MSP430FR4xx y MSP430FR2xx - Guía del usuario". Texas Instruments. pág. 43.
  12. ^ Sitio web de Energía
  13. ^ Artículo MSP430 [ enlace muerto permanente ‍] publicado en la revista IEEE .
  14. ^ Soluciones visuales
  15. ^ MSP430 LaunchPad (MSP-EXP430G2), Wiki de procesadores integrados de Texas Instruments
  16. ^ "Microcontrolador de ultra bajo consumo MSP430" (PDF) . Texas Instruments . Consultado el 9 de julio de 2008 .[ enlace muerto permanente ]
  17. ^ El bit de tamaño se denomina A/L, donde L(long) es utilizado por otros procesadores para indicar operandos de 32 bits. Además, la descripción de la instrucción SXTX (Guía del usuario de la familia MSP430F5xx alau208f página 237) describe el efecto de la instrucción en los bits de registro 20 a 31.

Sitios comunitarios y de información

  • Página de inicio de TI MSP430
  • Placa de desarrollo TITAN MSP430
  • Foro de la comunidad TI E2E MSP430
  • Comunidad MSP430 patrocinada por Texas Instruments
  • Grupo Yahoo! MSP430
  • MSP430.info
  • Foro inglés-japonés MSP430
  • 43oh.com – Noticias, proyectos y foros de MSP430
  • TinyOS-MSP430 – Puerto TinyOS
  • Páginas del proyecto MSP430 Egel: alrededor de 50 ejemplos con fuentes, esquemas y bien documentados.

Generadores de código C de programación visual

  • Sistema de desarrollo integrado basado en modelos VisSim MSP430

Compiladores, ensambladores e IDE

  Compilador gratuito y IDE

  • IDE de Arduino IDE de Arduino
  • IDE basado en Eclipse de Code Composer Studio
  • Estudio de Code Composer Cloud
  • IDE Kickstart de IAR Embedded Workbench (tamaño limitado a 4/8/16 KB; depende del dispositivo utilizado)
  • Cadena de herramientas GCC para los microcontroladores MSP430
  • Sistema de desarrollo MSP430
  • naken_asm Ensamblador, desensamblador y simulador MSP430 de código abierto.
  • Binarios MSP430 GCC 4.x preconstruidos para Windows
  • Compilador noForth MSP430 de 16 bits con ensamblador, desensamblador y fuentes.
  • FastForth con terminal de 5 MBds, ensamblador, controlador de tarjeta SD...
  • Banco de trabajo integrado IAR para TI MSP430
  • Rowley CrossWorks para MSP430 (solo un período de evaluación de 30 días)
  • Cadena de herramientas GCC para los microcontroladores MSP430 (compilador C gratuito)
  • Sistema de desarrollo MSP430
  • Un complemento para Visual Studio que admite MSP430 a través de MSP430-GCC (evaluación de 30 días)

  IDE varios

  • Herramientas de desarrollo AQ430 para microcontroladores MSP430
  • Herramientas C de ImageCraft
  • Compilador ForthInc Forth
  • MPE Forth IDE y compilador cruzado para MSP430 actualmente en versión beta
  • HI-TECH C para MSP430 (se abandonó el soporte para MSP430 en 2009)

Lista de herramientas de depuración (no completa)

Otras herramientas

  • WSim: un emulador basado en software para realizar estimaciones y depuraciones completas de la plataforma
  • MSPSim: un emulador/simulador MSP430 basado en Java
  • MSP430Static: una herramienta de ingeniería inversa en Perl
  • GoodFET: un depurador JTAG MSP430 abierto en C y Python
  • mspdebug: un depurador JTAG MSP430 de código abierto
  • Trace32 MSP430 SIM: área de descarga con simulador de conjunto de instrucciones MSP430 gratuito para evaluación
  • ERIKA Enterprise: una implementación RTOS de código abierto y gratuita de la API ISO 17356 (derivada de la API OSEK/VDX)
  • Energia se basa en Wiring y Arduino y utiliza el IDE de Processing. La plataforma de hardware se basa en TI MSP430 LaunchPad
Obtenido de "https://es.wikipedia.org/w/index.php?title=TI_MSP430&oldid=1246236107#Serie_de_soC_de_RF_(CC430)"