MSP430 Allgemein

Die MSP430-Serie von Texas Instruments ist eine 16-Bit Mikrocontrollerfamile, die speziell für Low Power Anwendungen entwickelt wurde.

Die folgenden Features zeichnen die MSP430 Controller besonders aus:

  • 16-Bit Risc-Controllerkern
  • Einfacher Befehlssatz ( nur 27 Instruktionen)
  • maximaler Takt 8 MHz, 16 MHz MSP430F2xxx-Serie bzw. 25MHz MSP430F5xxx-Serie
  • Verschiedene Taktquellen umschaltbar (Interner Takt, RTC-Takt, Quarz usw.)
  • zwischen 1kB bis 256 kB integrierten Flashspeicher
  • zwischen 256Bytes und 16kB integriertes RAM
  • verschiedene Peripherieeinheiten je nach Typ, wie
    USARTs
    Analoge Spannungskomparatoren
    AD-Wandler mit 10,12 oder 16Bit Auflösung
    DA-Wandler
    interner EEPROM
    Timer- und Catch&Compareeinheiten usw.
  • USB 2.0 Full Speed Interface
  • 2.4GHz Transreceiver-Modul für z.B. Zigbee-Anwendungen
  • JTAG-Interface für Programmierung und Debugging eingebaut
  • Betriebsspannung zwischen 1,8V und 3,6V
  • Ultra geringe Stromaufnahme:
    0.1µA im Off-Modus
    0.8µA im Standby / RTC-Modus
    250µA / MIPS Normalbetrieb

Der Anwendungsbereich der MSP430-Controller überschneidet sich mit dem von PICs, wobei die MSP430-Serie konsequent für batteriebetriebene Mess- und Steueraufgaben entwickelt wurde. Diese Optimierung für Low Power Anwendungen wird besonders bei den Möglichkeiten zur Takterzeugung und Verteilung, sowie den Stromsparmodi deutlich. Je nach Typ gibt es einem oder zwei Eingänge für Quarzoszillatoren und intern einen RC-Oszillator (DCO), dessen Frequenz in weiten Bereichen eingestellt werden kann. Eine Besonderheit bei dem DCO ist, dass er innerhalb von 6 Takten aus dem Sleep-Modus wieder aufwacht und stabil schwingt. Dadurch kann der Controller sehr schnell vom Sleep- und den Betriebsmodus wechseln.

Die Peripherieeinheiten auf den Controllers sind im allgemeinen sehr leistungsfähig und durchdacht. Die Programmierung der Einheiten ist relativ einfach, weil es nur wenige Fallstricke gibt. Außerdem gibt es von Texas Instruments zu jeder Peripherieeinheit diverse Beispiele, die den Einsatz und die Programmierung erläutern. Dadurch wird der Einstieg in die Programmierung dieser Controller sehr erleichtert.

Wo es viel Licht gibt, ist auch Schatten (aber nur ein bisschen). Zu den Nachteilen gehört, dass die Controller nur SMD-Bauformen, also im SO- oder TQFP-Gehäuse, erhältlich sind. Also für Hobbyanwendungen nicht so gut zu verarbeiten sind. Es gibt aber von der Firma Olimex so genannte Headerboards, die bereits mit einem Controller vorbestückt sind. Nähere Informationen den Headerboards und JTAG-Interfaces zur Programmierung sind im “Tips & Links”-Bereich zu finden. Ein weiterer Nachteil ist, dass der Versorgungsspannungsbereich nur bis 3.6V geht und die Ein/Ausgänge auch nicht 5V-kompatibel sind. Bei reinen 3.3V Designs ist das kein Problem.

Leider gibt es bei dieser Controllerserie auch keine Bausteine mit externen Adress/Datenbus, d.h. es ist nicht möglich externes RAM an den Controller anzuschließen.

Für die Softwareentwicklung stehen verschiedene Compiler in allen Preisklassen zur Verfügung. Auf der Website von TI gibt es eine auf 4kB begrenzte Version des IAR C-Compilers (Kickstart-Version), der neben dem Compiler auch eine vollständige IDE mit Debugger usw. enthält.

TI stellt auch eine vollständige Entwicklungsumgebung für den MSP430 auf Basis der Eclipse-IDE mit dem Namen CCStudio-MSP zur Verfügung. Diese Entwicklungsumgebung enthält neben dem GGC auch einen eigenen C-Compiler.

Außerdem gibt es für die MSP430-Serie auch eine Version des kostenlosen GCC-Compilers inklusive Debugger für Linux und Windows. Bei meiner bisherigen Arbeit mit dem MSP430 bin ich mit den Ergebnissen dieses Compilers sehr zufrieden. Als IDE habe ich dabei die DevC++-Umgebung benutzt. Ein paar Tips zur Integration des MSPGCC in die Entwicklungsumgebung DevC++ findet man hier.

Hinter dem Link MSP430F149-Board befinden sich eine Bauanleitung für ein einfaches Headerboard mit integriertem RS232-Treiber. Der Link Gforce2MSP führt zu der Bauanleitung eines 3-Achsen Beschleunigungsmessers mit einem MSP430F1232 und zwei ADXL202 Beschleunigungssensoren.

Was ist auf der Seite?