TI MSP430


De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

MSP 430 FG438 conduciendo un medidor de glucosa
Foto de dos placas de experimentación para el chipset MSP430 de Texas Instruments. A la izquierda la versión de 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 , presentada por primera vez el 14 de febrero de 1992. [1] Construido alrededor de una CPU de 16 bits , el MSP430 está diseñado para aplicaciones integradas de bajo costo y, específicamente, bajo consumo de energía [2] .

Aplicaciones

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

El MSP430 se puede utilizar para dispositivos integrados de baja potencia . La corriente consumida en modo inactivo puede ser inferior a 1 µA. La velocidad máxima de la CPU es de 25 MHz. Puede estrangularse para reducir el consumo de energía. El MSP430 también usa seis modos diferentes de bajo consumo, que pueden deshabilitar relojes y CPU innecesarios. Además, el MSP430 es capaz de despertarse por debajo de 1 microsegundo, lo que permite que el microcontrolador permanezca en modo de suspensión por más tiempo, minimizando su consumo de corriente promedio. El dispositivo viene en una variedad de configuraciones con los periféricos habituales: oscilador interno , temporizador que incluye PWM , perro guardián , USART , SPI , I²C, ADC de 10/12/14/16/24 bits y circuitos de reinicio de caída de voltaje . Algunas opciones de periféricos menos habituales incluyen comparadores (que se pueden usar con los temporizadores para hacer ADC simple), amplificadores operacionales en chip para acondicionamiento de señal , DAC de 12 bits , controlador LCD , multiplicador de hardware , USB y DMA para resultados de ADC. Aparte de algunas versiones anteriores de EPROM (MSP430E3xx) y ROM de máscara de alto volumen (MSP430Cxxx), todos los dispositivos son programables en el sistema a través de JTAG (cuatro cables completos oSpy-Bi-Wire ), un cargador de arranque (BSL) integrado que utiliza UART como RS232 o USB en dispositivos con soporte USB. (No se incluye BSL en los dispositivos de la familia F20xx, G2xx0, G2xx1, G2xx2 e I20xx).

Sin embargo, existen limitaciones que excluyen 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 RAM ) que puede ser demasiado pequeña para aplicaciones que requieren grandes búferes 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 una luz estroboscópica de salida DMA. [3]

Generaciones MSP430

Hay seis generaciones generales de procesadores MSP430. En orden de desarrollo, son la generación '3xx, la generación' 1xx, la generación '4xx, la generación' 2xx, la generación '5xx y la 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 a bordo y el cuarto, si está presente, identifica una variante menor del modelo. La variación más común es un convertidor de 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 ), extender el rango de direccionamiento más allá del tamaño de palabra de 16 bits introdujo algunas peculiaridades e ineficiencias para programas mayores de 64 kBytes.

En la siguiente lista, es útil pensar en la capacidad típica de 200 mA · Hr de una celda 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 CPU, dicha batería 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 este número).

La importancia de la 'retención de RAM' frente al 'modo de reloj de tiempo real' es que en el modo de reloj de tiempo real la CPU puede ir a dormir con un reloj en funcionamiento que lo despertará en un momento futuro específico. En el modo de retención de RAM, se requiere alguna señal externa para activarlo, por ejemplo, señal de pin de E / S o interrupción de recepción de esclavo SPI.

Serie MSP430x1xx

La serie MSP430x1xx es la generación básica sin un controlador LCD integrado. Por lo general, son más pequeños que la generación '3xx'. Estas MCU de potencia ultrabaja basadas en flash o ROM ofrecen 8 MIPS, funcionamiento de 1,8 a 3,6 V, flash de hasta 60 KB y una amplia gama de periféricos analógicos y digitales.

  • Resumen de especificaciones de energía, tan bajo 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 despertador rápido 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 de apagó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 a una potencia aún menor, admite un funcionamiento de hasta 16 MHz y tiene un reloj en chip más preciso (± 2%) que facilita el funcionamiento sin un cristal externo. Estos dispositivos de potencia ultrabaja basados ​​en flash ofrecen un funcionamiento de 1,8 a 3,6 V. Incluye el oscilador de muy baja potencia (VLO), resistencias internas pull-up / pull-down y opciones de recuento de pines bajo.

  • Resumen de especificaciones de energía, tan bajo 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 despertador ultrarrápido 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 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 de apagó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 cuenta con MCU de potencia ultrabaja basados ​​en flash de hasta 16 MIPS con funcionamiento de 1,8 a 3,6 V. Incluye el oscilador de muy baja potencia (VLO), resistencias internas pull-up / pull-down y opciones de recuento de pines bajo, a precios más bajos que la serie MSP430F2xx.

  • Potencia ultrabaja, tan baja como (a 2,2 V):
    • Retención de RAM de 0,1 μA
    • 0,4 μA en modo de espera (VLO)
    • Modo de reloj en tiempo real de 0,7 μA
    • 220 μA / MIPS activo
    • Despertar ultrarrápido 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 de apagó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, diseñada para instrumentación portátil con un controlador LCD integrado. Esto también incluye un oscilador de bucle con bloqueo de frecuencia que se puede sincronizar automáticamente con un cristal de baja velocidad (32 kHz). Esta generación no admite memoria EEPROM , solo ROM de máscara y EPROM programable de una sola vez y borrable 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.

  • Resumen de especificaciones de energía, tan bajo 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 despertador rápido 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 '3xx, pero incluye un controlador LCD integrado y es más grande y más capaz. Estos dispositivos basados ​​en flash o ROM ofrecen un funcionamiento de 8 a 16 MIPS a 1,8 a 3,6 V, con FLL y SVS. Ideal para aplicaciones médicas y de medición de baja potencia.

  • Resumen de especificaciones de energía, tan bajo 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 despertador rápido 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 de apagón, SVS, módulo USART (UART, SPI), módulo USCI, Controlador LCD, DMA, multiplicador 16 × 16 y 32x32, Comparator_A, sensor de temperatura, velocidad de CPU de 8 MIPS

Serie MSP430x5xx

La serie MSP430x5xx puede funcionar hasta 25 MHz, tener hasta 512 KB de memoria flash y hasta 66 KB de RAM. Esta familia basada en flash presenta un bajo consumo de energía activa con hasta 25 MIPS a una operación de 1.8–3.6 V (165 uA / MIPS). Incluye un módulo de administración de energía innovador para un consumo de energía óptimo y USB integrado. [4]

  • Resumen de especificaciones de energía, tan bajo 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 despertador rápido 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: PWM de alta resolución, 5 VI / O's, USB, interruptor de batería de respaldo, hasta 4 temporizadores de 16 bits, temporizador de vigilancia, reloj en tiempo real, reinicio de apagón, SVS, módulo USCI, DMA, multiplicador de 32x32, Comp B, sensor de temperatura

Serie MSP430x6xx

La serie MSP430x6xx puede funcionar hasta 25 MHz, tener hasta 512 KB de memoria flash y hasta 66 KB de RAM. Esta familia basada en flash presenta un bajo consumo de energía activa con hasta 25 MIPS a una operación de 1.8–3.6 V (165 uA / MIPS). Incluye un módulo de administración de energía innovador para un consumo de energía óptimo y USB integrado.

  • Resumen de especificaciones de energía, tan bajo 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 despertador rápido 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 de 32x32, módulo de administración de energía (BOR, SVS, SVM, LDO), temporizador de vigilancia, RTC, sensor de temperatura

Serie RF SoC (CC430)

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

  • Resumen de especificaciones de energía, tan bajo 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 gestió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 proporciona memoria unificada con particiones dinámicas y velocidades de acceso a la memoria 100 veces más rápidas que flash. FRAM también es capaz de retención de estado de energía cero en todos los modos de energía, lo que significa que las escrituras están garantizadas, incluso en el caso de una pérdida de energía. Con una resistencia de escritura de más de 100 billones de ciclos, EEPROM ya no es necesaria. Consumo de energía activa a menos de 100μA / MHz.

  • Resumen de especificaciones de energía, tan bajo como:
    • Retención de RAM de 320 nA
    • 0.35 μA modo de reloj en tiempo real
    • 82 μA / MIPS activo
  • Parámetros del dispositivo:
    • Opciones de velocidad: 8 a 24 MHz
    • Opciones de FRAM: 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 extendida, multiplicador de 32 bits, AES, CRC, aceleración de procesamiento de señal, toque capacitivo, modulación IR

Serie de baja tensión

La serie de bajo voltaje incluye las piezas MSP430C09x y MSP430L092. Estas 2 series de microcontroladores de bajo voltaje de 16 bits 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.

  • Resumen de especificaciones de energía, tan bajo 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 de bajada, SVS, comparador, sensor de temperatura

Otras familias de MSP430

Las familias adicionales dentro de MSP430 incluyen piezas de función fija , automotriz 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. MSP430BQ1010 cumple con la especificación Wireless Power Consortium (WPC). Para obtener más información, consulte Energía sin contacto [ enlace muerto permanente ] .

Automotriz : Los microcontroladores (MCU) automotrices MSP430 de Texas Instruments (TI) son procesadores de señal mixta basados ​​en RISC de 16 bits que cuentan con la certificación AEC-Q100 y son adecuados para aplicaciones automotrices en entornos de hasta 105 ° C de temperatura ambiente. Controladores compatibles con LIN para la 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 para entornos hostiles incluyen transporte / automoción, energía renovable, militar / espacial / aviónica, exploración de minerales, industrial y seguridad y protección.

  • Definiciones de dispositivos:
    • HT: -55 ° C a 150 ° C
    • EP: Productos mejorados -55 ° C a 125 ° C
    • Q1: Q100 automotriz calificado -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 es superior a 64 K palabras (128 KBytes), las direcciones de instrucción 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 modelos y sin registros de solo escritura (excepto por el multiplicador de hardware).

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

Si no se necesita el periférico, el pin puede usarse 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 un número de registros de 8 bits. En algunos casos, los puertos están dispuestos 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 versiones de 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 el cambio de estado) no implementan los registros correspondientes.

P x IN
Entrada puerto x . Este es un registro de solo lectura y refleja el estado actual de los pines del puerto.
P x SALIDA
Salida puerto x . Los valores escritos en este registro de lectura / escritura se eliminan por los pines correspondientes cuando se configuran para la 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 utilice 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 resistencia del puerto x (solo '2xx y' 5xx). Los bits establecidos 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 del tirón se establece mediante el bit escrito en el registro P x OUT.
P x DS
Fuerza de la unidad del puerto x (solo '5xx). Los bits establecidos en este registro habilitan salidas de alta corriente. Esto aumenta la potencia de salida, pero puede causar EMI .

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

P x IES
Selección de borde de interrupción de puerto x . Selecciona el borde que hará que se establezca 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 claro a establecido), se establece 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 se establecen ambos, se genera una interrupción.
P x IFG
Indicador de interrupción del puerto x . Se establece siempre que el pin correspondiente realice 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 tal bit, se lee como 0. El factor de escala de 2 permite el uso directo como un desplazamiento en una tabla de bifurcaciones . La lectura de este registro también borra el indicador P x IFG informado .

Algunos pines tienen propósitos especiales 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 el bit P x SEL está establecido, pero la generación de interrupciones está deshabilitada. Si P x SEL está limpio, la entrada de la función especial se congela y se desconecta del pin externo. Además, configurar un pin para salida de propósito general no deshabilita la generación de interrupciones.

Periféricos integrados

Cosa análoga
  • Conversor 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, minimizando el consumo de energía.
  • Piscina analógica
El módulo Analog Pool (A-POOL) se puede configurar como ADC, DAC, comparador, SVS o sensor de temperatura. Ofrece 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 analógicas a digitales de pendiente de precisión. Monitorea señales analógicas externas y proporciona medición de voltaje y valor de resistencia. Capaz de modos de potencia seleccionables.
  • DAC12
El módulo DAC12 es un DAC de salida de voltaje de 12 bits con 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 presentes, pueden agruparse para una operación de actualización síncrona.
  • Amplificadores operacionales
Cuentan con suministro único, operación de 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 incorporado. 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 pueden leerse y escribirse mediante software. El BT se amplía para proporcionar un RTC integrado. Un calendario interno compensa los meses con menos de 31 días e incluye la corrección de los años bisiestos.
  • Reloj en tiempo real
RTC_A / B son módulos de contador de hardware de 32 bits que proporcionan a los contadores de reloj un calendario, una alarma programable flexible y calibración. El RTC_B incluye un sistema de respaldo de batería conmutable que brinda la capacidad de que el RTC funcione cuando falla el suministro primario.
  • Temporizadores de 16 bits
Timer_A, Timer_B y Timer_D son temporizadores / contadores asíncronos 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 de 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 registro de comparación con doble búfer, mientras que Timer_D presenta un modo de alta resolución (resolución de 4 ns).
  • Perro guardián (WDT +)
El WDT + realiza un reinicio controlado del sistema después de que ocurre un problema de software. Si el intervalo de tiempo seleccionado expira, 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.
  • Restablecimiento de caída de voltaje (BOR)
El circuito BOR detecta tensiones de suministro bajas y reinicia el dispositivo activando una señal de reinicio de encendido (POR) cuando se aplica o se retira la energía. El circuito BOR de potencia cero del MCU MSP430 se enciende 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 en todo el rango de direcciones sin la 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 presenta hasta tres canales de transferencia independientes.
Aunque el subsistema DMA del MSP430 es muy capaz, tiene varias fallas, la más significativa de las cuales es la falta de una luz estroboscópica de transferencia externa. Aunque una transferencia de DMA se puede activar externamente, no hay ninguna indicación externa de que la transferencia se haya completado. En consecuencia, el DMA hacia y desde fuentes externas está limitado a disparos externos por transferencias de bytes, en lugar de bloques completos automáticamente a través de DMA. Esto puede dar lugar a una complejidad significativa (como en el caso de que se requiera un ajuste manual extenso del código) al implementar comunicaciones de procesador a procesador o de procesador a USB. [3] La referencia citada utiliza un modo de temporizador oscuro para generar luces estroboscópicas de alta velocidad para transferencias DMA. Los temporizadores no son lo suficientemente flexibles como para compensar fácilmente la falta de una luz estroboscópica de transferencia DMA externa.
Las operaciones DMA que implican transferencias de palabras a ubicaciones de bytes provocan el truncamiento a 8 bits en lugar de la conversión a transferencias de dos bytes. Esto hace que DMA con valores A / D o D / A de 16 bits sea menos útil de lo que podría ser (aunque es posible DMA estos valores a través del puerto A o B en algunas versiones del MSP 430 usando un disparador visible externamente por transferencia, como una salida de temporizador).
  • Módulo de emulación mejorado (EEM)
El EEM proporciona diferentes niveles de funciones de depuración, como 2-8 puntos de interrupción de hardware, puntos de interrupción complejos, interrupción cuando se produce lectura / escritura en la dirección especificada y más. 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 acumulación y multiplicación de 16 × 16 + 32 → 33 bits. Inusualmente para el MSP430, este periférico incluye un registro de solo escritura de 2 bits implícito, lo que hace que sea efectivamente imposible el cambio de contexto . Este periférico no interfiere con las actividades de la CPU y el DMA puede acceder a él. El MPY en todos los dispositivos MSP430F5xx y algunos MSP430F4xx cuentan con 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 la realización de la suma (0 o 1) en caso de una multiplicación sin signo), o la extensión de signo de la suma de 32 bits (0 o -1) en caso de una multiplicar. 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 ejecución (-1, 0 o +1).
El resultado está disponible después de tres ciclos de retardo de reloj, que es el tiempo necesario para obtener una instrucción siguiente y una palabra de índice siguiente. Por tanto, el retraso suele ser invisible. Solo se requiere un retraso explícito si se usa un modo de direccionamiento indirecto para obtener el resultado.
  • Unidad de protección de memoria (MPU)
FRAM MPU protege contra escrituras accidentales en segmentos de memoria designados de solo lectura o ejecución de código desde una memoria constante. La MPU puede establecer cualquier porción de memoria con direccionamiento a nivel de bits, haciendo que la memoria completa sea accesible para operaciones de lectura, escritura y ejecución en dispositivos FRAM.
  • Módulo de administració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 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), reinicio de caída de voltaje (BOR) y un supervisor y monitor de voltaje de suministro.
  • Supervisor de suministro de voltaje (SVS)
El SVS es un módulo configurable que se utiliza para monitorear el voltaje de suministro 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
  • E / S de detección táctil capacitiva
El módulo de E / S de sensor táctil capacitivo integrado ofrece varios beneficios para las aplicaciones de botones táctiles y controles deslizantes táctiles. El sistema no requiere componentes externos para crear la autooscilación (reduciendo la lista de materiales) y el condensador (que define la frecuencia de la autooscilación) se puede conectar directamente. Además, no hay necesidad de MUX externos para permitir múltiples pads y cada pad de E / S puede servir directamente como una entrada de detección de cap. Una histéresis de ~ 0,7 V garantiza un funcionamiento robusto. El control y la secuenciación se realiza completamente en software.
  • E / S de uso 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 individualmente. Los puertos P1 y P2 tienen capacidad de interrupción. MSP430F2xx, F5xx y algunos dispositivos F4xx cuentan con resistencias pull-up o pull-down integradas y configurables individualmente.
  • Interfaz de RF de sub-GHz
El flexible transceptor 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 flexibles y formatos de modulación.
  • USART (UART, SPI, I²C)
La interfaz periférica universal de recepción / transmisión síncrona / asíncrona (USART) admite comunicación asíncrona RS-232 y SPI síncrona con un módulo de hardware. Los módulos USART MSP430F15x / 16x también admiten I²C, velocidad en baudios programable y capacidad de interrupción independiente para recibir y transmitir.
  • USB
El módulo USB es totalmente compatible con la especificación USB 2.0 y admite transferencias de control, interrupciones y 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 bloqueo de fase (PLL) para la generación de reloj USB; y un sistema de suministro de energía flexible que permite dispositivos autoalimentados y alimentados por bus.
  • USCI (UART, SPI, I²C, LIN, IrDA)
El módulo de interfaz de comunicación serie universal (USCI) cuenta con dos canales independientes que se pueden utilizar simultáneamente. El canal asíncrono (USCI_A) admite el modo UART; Modo SPI; conformación de pulsos para IrDA; y detección automática de velocidad en baudios para comunicaciones LIN. El canal síncrono (USCI_B) admite los modos I²C y SPI.
  • USI (SPI, I²C)
El módulo de interfaz serie universal (USI) es una interfaz de comunicación serie síncrona con una longitud de datos de hasta 16 bits y puede admitir comunicaciones SPI e I²C con un software mínimo.
  • Modulación infrarroja
Disponible en los chips de las series MSP430FR4xxx y MSP430FR2xxx, esta función se configura mediante el 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. [5] (página 43)
Medida
  • ESP430 (integrado en dispositivos FE42xx)
El módulo ESP430CE realiza cálculos de medición independientes de la CPU. El módulo tiene SD16 separado, multiplicador de HW y el motor de procesador integrado ESP430 para aplicaciones de medición de energía monofásicas.
  • Interfaz de escaneo (SIF)
El módulo SIF, una máquina de estado programable con una interfaz analógica, se utiliza para medir automáticamente el movimiento lineal o de rotación con el menor consumo de energía posible. El módulo cuenta con soporte para diferentes tipos de LC y sensores resistivos y para codificación en cuadratura.
Mostrar
  • LCD / LCD_A / LCD_B
El controlador LCD / LCD_A controla directamente los LCD de hasta 196 segmentos. Admite pantallas LCD estáticas, de 2 mux, 3 mux y 4 mux. El módulo LCD_A tiene bomba de carga integrada para control de contraste. LCD_B habilita el parpadeo de segmentos individuales con memoria parpadeante separada.
  • LCD_E
El controlador LCD_E viene con los microcontroladores de la serie MSP430FR4xxx más nuevos y controla directamente LCD de hasta 448 segmentos. Admite pantallas LCD estáticas, 2-mux, 3-mux, 4-mux, 5-mux, 6-mux, 7-mux, 8-mux (sesgo de 1/3). Los pines de segmento y comunes se pueden reprogramar a los pines de la unidad LCD disponibles. Este periférico puede funcionar en LPM3.5 (RTC en ejecución + modo de bajo consumo de apagado del núcleo de la CPU principal). [5]

Entorno de desarrollo de software

Texas Instruments proporciona 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 esas 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á limitado 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 hay otro software Energia Energia , una plataforma de creación de prototipos de electrónica de código abierto con el objetivo de llevar el marco de cableado y Arduino al LaunchPad basado en Texas Instruments MSP430, donde el código Arduino se puede exportar para programar MSP430. papas fritas. 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-TM4C4C123GXL, CC-C123GXL. [6]

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 está actualmente rechazado en tres versiones:

( MSPGCC )

( Uniarca MSPGCC )

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

Existe un proyecto llvm-msp430 muy temprano , que eventualmente puede proporcionar un mejor soporte para MSP430 en LLVM .

Se encuentran disponibles otros conjuntos de herramientas de desarrollo comercial, 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 un código C de punto fijo eficiente directamente desde el diagrama. [7] 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 memoria flash y 100 bytes de RAM. [8] 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 (excepto por el MSP430G2 Value Line ) es la única pieza del MSP430 que está disponible en un paquete dual en línea (DIP). Otras variantes de esta familia solo están disponibles en varios paquetes de montaje en superficie. TI se ha tomado algunas molestias para respaldar la plataforma de desarrollo eZ430 al hacer que los chips en bruto sean fáciles de usar para los aficionados en los 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. Esto facilita a los diseñadores la elección del chip MSP430 para plataformas de desarrollo económicas que se pueden utilizar con una computadora. El eZ430-F2013 contiene un microcontrolador MSP430F2013 en una placa de prototipos desmontable y un CD adjunto con el software de desarrollo. Es útil [ cita requerida ] para escuelas, aficionados e inventores de garaje. También es bienvenido [ cita requerida ] por ingenieros de grandes empresas que crean prototipos de proyectos con problemas de presupuesto de capital.

LaunchPad MSP430

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

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

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

Los tres LaunchPads incluyen un depurador eZ-FET JTAG con canal de retorno UART capaz de velocidades de 1 Mbit / s. Los FRAM LaunchPads (por ejemplo, MSP-EXP430FR5969, MSP-EXP430FR4133) incluyen EnergyTrace, una función compatible con Code Composer Studio IDE de TI para monitorear 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 partes MSP430 y que puede reemplazar la interfaz JTAG más grande. La herramienta de desarrollo eZ430 contiene una herramienta de emulación flash completa conectada por USB ("FET") para este nuevo protocolo de dos cables, denominado " Spy-Bi-Wire " de 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 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 son compatibles con la interfaz Spy-Bi-Wire además de JTAG.

La ventaja del protocolo Spy-Bi-Wire es que utiliza solo dos líneas de comunicación, una de las cuales es la línea _RESET dedicada. La interfaz JTAG en las partes del MSP430 de menor cantidad de pines está multiplexada con líneas de E / S de uso general. Esto hace que sea relativamente difícil depurar circuitos construidos alrededor de chips pequeños de bajo presupuesto de E / S, ya que el hardware JTAG completo de 4 pines 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 siguen siendo compatibles con la interfaz JTAG normal para la compatibilidad con las antiguas herramientas de desarrollo.

Las herramientas de depuración y programación flash de JTAG basadas en OpenOCD y ampliamente utilizadas en la comunidad ARM no están disponibles para el MSP430. Las herramientas de programación especialmente diseñadas para MSP430 son ligeramente menos costosas que las interfaces JTAG que usan OpenOCD. Sin embargo, si un proyecto descubre a mitad de camino 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.

CPU MSP430

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

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

El conjunto de instrucciones es muy simple; hay 27 instrucciones en tres familias. La mayoría de las instrucciones están disponibles en versiones con sufijo .B (bytes 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 -poco. Un sufijo faltante es equivalente a .W. Las operaciones de bytes a la memoria afectan solo al byte direccionado, mientras que las operaciones de bytes a 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 Anuncio de 1 bit. Algunas versiones especiales se pueden construir usando R0, y los modos distintos al registro directo usando R2 (el registro de estado) y R3 (el generador constante) se interpretan especialmente. El anuncio solo puede usar un subconjunto de los modos de direccionamiento para As.

Los modos de direccionamiento indexado agregan una palabra de extensión de 16 bits a la instrucción. Si tanto la fuente como el destino están indexados, la palabra de extensión de la fuente es lo primero. x se refiere a la siguiente palabra de extensión en el flujo de instrucciones en la tabla siguiente.

Las instrucciones generalmente toman 1 ciclo por palabra obtenida o almacenada, por lo que los tiempos de instrucción van desde 1 ciclo para una instrucción simple registro-registro hasta 6 ciclos para una instrucción con el origen y el 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 relojes. Un salto, dado o no, requiere dos relojes. Con la serie 2xx, 2 MCLK es de 125 ns a 16 MHz.

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

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

El registro de estado contiene 4 bits de estado aritméticos, 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 manejador de interrupciones no modifica el registro de estado guardado, al regresar de la interrupción se reanudará el modo original de bajo consumo.

Pseudooperaciones

Se implementan varias instrucciones adicionales como alias para los formularios 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 MSP430X de 20 bits

El MSP430 básico no puede admitir más memoria (ROM + RAM + periféricos) que su espacio de direcciones de 64K. Para admitir esto, una forma extendida del MSP430 utiliza registros de 20 bits y un espacio de direcciones de 20 bits, lo que permite hasta 1 MB de memoria. Utiliza el mismo conjunto de instrucciones que el formulario básico, pero con dos extensiones:

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

Las instrucciones extendidas incluyen algunas capacidades adicionales, en particular cambios de bits múltiples 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 predeterminado. En general, las operaciones más cortas borran los bits de orden superior del registro de destino.

Las nuevas instrucciones son las siguientes:

Todas las demás instrucciones pueden tener una palabra de prefijo agregada que las amplíe a 20 bits. La palabra de prefijo contiene un bit de tamaño de operando adicional, que se combina con el bit B / W existente para especificar el tamaño del operando. Hay una combinación de tamaño sin usar; hay indicios de que esto podría usarse en el futuro para un tamaño de operando de 32 bits. [11]

La palabra de prefijo viene 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 de registro, entonces se usa la forma simple, que proporciona 2 campos de 4 bits para extender 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 una bandera "ZC" que suprime el acarreo (útil para instrucciones como DADD que siempre usan el bit de acarreo) y un recuento de repetición. Un campo de 4 bits en la palabra de extensión codifica un recuento de repeticiones (de 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 del 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 estos mediante cargas y almacenes de 8 bits.
0x0100–0x01FF
Periféricos de 16 bits. Se debe acceder a estos mediante cargas y almacenes 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 memoria flash ROM de datos (solo partes flash).
0x1800-0x19FF
512 bytes de datos FRAM (la mayoría de las MCU FRAM, que el usuario puede escribir y que 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 compatibilidad. Además, algunos modelos recientes modifican las reglas de los periféricos de 8 y 16 bits, lo que permite el acceso de 16 bits a los periféricos en el rango de direcciones de periféricos de 8 bits.

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

La serie '5xx tiene un espacio de direcciones muy rediseñado, con el primer 4K dedicado 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 . Red de Diseño de Electrónica . Consultado el 3 de septiembre de 2020 .
  2. ^ MSP430 se ejecutará en uvas - video en YouTube
  3. ^ a b D. Peters, D. Raskovic y D. Thorsen, "Un sistema integrado en paralelo energéticamente eficiente para aplicaciones de satélites pequeños" , Transacciones ISAST en computadoras y sistemas inteligentes , vol. 1 (2), 2009
  4. ^ Microcontroladores MSP430 de menor potencia de Texas Instruments
  5. ^ a b http://www.ti.com/lit/slau445
  6. ^ [1] , sitio web de Energia
  7. ^ Artículo de MSP430 [ enlace muerto permanente ] publicado en larevista IEEE .
  8. ^ Soluciones visuales
  9. ^ MSP430 LaunchPad (MSP-EXP430G2) , Wiki de procesadores integrados de Texas Instruments
  10. ^ "Microcontrolador de energía ultrabaja MSP430" (PDF) . Texas Instruments . Consultado el 9 de julio de 2008 . [ enlace muerto permanente ]
  11. ^ El bit de tamaño en sí se denomina "A / L", donde otros procesadores utilizan "L" (largo) 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–31.

enlaces externos

Sitios comunitarios y de información

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

Generadores de código C de programación visual

  • Sistema de desarrollo integrado basado en modelos VisSim MSP430

Compiladores, ensambladores e IDE

  IDE y compilador gratuitos

  • IDE de Arduino IDE de Arduino
  • IDE basado en Code Composer Studio Eclipse
  • Code Composer Studio Cloud
  • IAR Embedded Workbench Kickstart IDE (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 preconstruidos MSP430 GCC 4.x para Windows
  • Compilador noForth de 16 bits MSP430 Con ensamblador, desensamblador y fuentes.
  • FastForth con terminal de 5 MBds, ensamblador, controlador SD_Card ...

  IDE y compiladores sin restricciones más populares

  • 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 de ImageCraft C
  • ForthInc Forth-Compiler
  • MPE Forth IDE y compilador cruzado para MSP430 actualmente en Beta
  • HI-TECH C para MSP430 (dejó de ser compatible con MSP430 en 2009)

Lista de herramientas de depuración (no completa)

Otras herramientas

  • WSim: un emulador impulsado por software para estimaciones y depuración de la plataforma completa
  • MSPSim: un emulador / simulador de MSP430 basado en Java
  • MSP430Static: una herramienta de ingeniería inversa en Perl
  • GoodFET: un depurador abierto MSP430 JTAG en C y Python
  • mspdebug: un depurador MSP430 JTAG de código abierto
  • Trace32 MSP430 SIM - Área de descarga con el simulador de conjunto de instrucciones MSP430 gratis 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 procesamiento. La plataforma de hardware se basa en TI MSP430 LaunchPad
Obtenido de " https://en.wikipedia.org/w/index.php?title=TI_MSP430&oldid=1018888295 "