Von der Firma WinSource Electronics habe ich den Microcontroller MSP430-Launchpad von Texas Instruments für dieses Review erhalten.




Bezug
Diesen kleinen Microcontroller kann man wie bereits in der Einleitung erwähnt im Onlineshop von WinSource Electronics bezogen werden.
Lieferumfang
Zum Lieferumfang gehört
- 1x Microcontroller MSP430-Launchpad,
- 1x Microchip M430G2553 (vormontiert)
- 1x Microchip M430G2452
- 1x USB Kabel (ca. 50cm lang),
- 2x 10 polige Buchsenleisten, sowie
- 1x Micro Crystal, MS3V-T1R 32,768 kHz
Die zusätzlichen Microchips enthalten „nur“ den Speicher, die Recheneinheit ist auf der Platine verbaut.
Technische Daten des MSP430-Launchpad von Texas Instruments
Beim Microcontrollerboard MSP430 sind die Logikeinheit (M430F1612) und der Speicher getrennt.


Die Logikeinheit hat folgende Technische Daten:
- 16Bit RISC Architektur,
- Prozessortakt
- bei 1,8V > 4,15MHz
- bei 3,6V > 8MHz
- 12Bit Analog zu Digital Wandler
- dual 12Bit digital zu Analog Wandler
Weitere Technische Daten zum Chip M430F1612 findest du in der offiziellen Dokumentation vom Hersteller unter https://ti.com.
Dem Microcontroller liegen zwei Microchips bei, welche jeweils unterschiedlichen Speicher und Leistungen haben.
M430G2452 | M430G2553 | |
---|---|---|
Flash Speicher | 8kB | 16 kB |
RAM | 256 Byte | 512 Byte |
digitale I/O Pins | 16 | |
16-bit Timer | 1x | 2x |
Schnittstellen | WDT, BOR, 1x USI (I2C/SPI) | WDT, BOR, 1x USCI (I2C/SPI/UART) |
Aufbau des Microcontrollers
Der Microcontroller hat die Abmaße 66mm x 51mm und eine Höhe von ca. 13mm. Neben der Micro – USB Buchse für die Verbindung zum Computer bzw. zur Stromversorgung über eine Powerbank oder ähnlichem verfügt dieser kleine Microcontroller über 2 Taster (einmal für Reset und einmal frei Programmierbar).
Was ich besonders gut finde ist dass, das Board auf kleinen, rutschfesten Gummifüßen steht. Somit hat dieser einen festen Stand auf dem Schreibtisch und „fliegt“ nicht so durch die Gegend wie ein Arduino UNO.
Pinout
Der Microcontroller verfügt über digitale sowie analoge Pins welche wir später mit einigen kleinen Beispielen programmieren möchten.
Hier also zunächst eine kleine Übersicht.

Programmieren
In den nachfolgenden Beispielen zeige ich dir wie du einige Aktoren / Sensoren an dem Texas Instruments MSP430 Launchpad anschließt und ausließt bze. steuerst.
Wenn wir das Board mit dem Computer verbinden so wird bereits ein kleines Programm ausgeführt welches die LEDs (rot & grün) abwechselnd blinken läßt.
einrichten der Entwicklungsumgebung Code Composer Studio
Für den Microcontroller gibt es die kostenfreie Entwicklungsumgebung „Code Composer Studio“ welche auf der Seite von Texas Instruments heruntergeladen werden kann. Es gibt jeweils eine Version für die verschiedenen Betriebssysteme (Linux, MacOS, Windows). Im nachfolgenden gehe ich darauf ein wie man die Software auf ein Microsoft Windows 10 PC installiert.
Die neue Version ist leider nicht mit einem 32bit System kompatibel hier müsste man eine Version vor CCSv8.3.1 wählen. (Da ich ein 64bit System habe kann ich die neue Version CCSv9 (stand 08.02.2020) installieren.)
Nachdem die ca. 1GB Datei heruntergeladen wurde, muss diese zunächst in ein beliebiges Verzeichnis entpackt werden. In dem nun neuen Verzeichnis befindet sich die Datei „ccs_setup_9.3.0.00012.exe“ welche mit einem Doppelklick gestartet wird.
Nachfolgende zeige ich die Dialoge mit den jeweiligen, getroffenen Einstellungen für die Installation von Code Composer Studio v9 für das MSP430 Board.












Während der Installation wird gefragt ob man eine vollständige oder eine angepasste Installation möchte. Die vollständige Installation benötigt 4GB Festplattenplatz die angepasste mit dem Treiber für das Board MSP430 ca. 2.2 GB.
Wenn die Software wie in den Bildern angegeben installiert wurde, so sollte sich auf dem Desktop nun ein Icon für die Software „Code Composer Studio v9“ befinden.
Mit einem Doppelklick auf dieses Icon startet nun die Software und man wird aufgefordert ein Workspace anzulegen.
Ich habe in dem Installationsordner der Software einen Unterordner mit „Workspaces“ angelegt, in diesem werde ich dann die Verschiedenen Workspaces anlegen um die Projekte sauber zu trennen. Es kann natürlich der Standardwert belassen werden, dann wird der Workspace in dem Benutzerordner angelegt.
Mit einem klick auf die Schaltfläche „Launch“ wird dieser Vorgang abgeschlossen.
Beim ersten start werden einige Berechtigungen gesetzt hier wird ggf. ein Virenscanner oder ähnliches Alarm geben, in meinem Fall hat der Windows Defender etwas zum meckern gefunden was zusätzlich bestätigt werden musste.
Diese Tools / Plugins sind meist sehr wichtig und ein verhindern des Zugriffs kann zu Fehlfunktionen führen.
Wenn die Software nun fertig gestartet ist wird der Startbildschirm / die View „Getting Started“ angezeigt. Hier kann man nun wählen ob man in den bestehenden Ressourcen sich umschauen (Resource Explorer), ein neues Projekt anlegen (New Project) oder ein bestehendes Projekt importieren (Import Project) möchte.
Zunächst möchten wir ein neues Projekt anlegen, dazu klicken wir auf die Schaltfläche „New Project“. In dem neuen Dialog müssen wir nun die Einstellungen zum Microcontroller treffen.
Ich habe das Modell MSP-EXP430G2 und wähle die Einstellungen:
- Target MSP430Gx Family (MSP430G2001)
- Project name „HelloWorld“
Beispiele
Nachdem die Entwicklungsumgebung eingerichtet ist und wir ein Projekt erstellt haben, wollen wir nun ein erstes kleines Programm schreiben.
Das Board verfügt über 2 LEDs (rot, grün) welche wir relativ einfach ansteuern können.
rote LED aktivieren
#include <msp430.h> /** * main.c */ int main(void) { WDTCTL = WDTPW | WDTHOLD; // stop watchdog timer P1DIR = BIT0; // als Ausgang definieren P1OUT = BIT0; // die LED1 (rot) aktivieren // Endlosschleife // Wenn diese schleife nicht wäre dann würde das Programm sofort beenden und die LED wäre wieder aus. while(1) { } return 0; }
rote LED blinken lassen
#include <msp430.h> /** * main.c */ int main(void) { WDTCTL = WDTPW | WDTHOLD; // stop watchdog timer P1DIR |= 0x01; while(1){ P1OUT ^= 0x01; // Togglen des Pins P1.0 mit exclusives OR Statement volatile unsigned int i; // volatile um die Optimierung zu nutzen i = 25000; // Softwareseitige Pause do i--; while(i != 0); } return 0; //Dieser Code wird nicht erreicht. }
Wechselblinken der roten sowie grünen LED
#include <msp430.h> void main(void) { WDTCTL = WDTPW | WDTHOLD; //Stop watchdog timer //P1.0 (rote LED) & P1.6 (gruene LED) als Ausgang definieren P1DIR |= BIT0+BIT6; P1OUT |= BIT0; //rote LED, aktivieren P1OUT &= ~BIT6; //gruene LED, deaktivieren while(1) { P1OUT ^= (BIT0+BIT6); //umkehren / toggeln der LED Status (AN > AUS, AUS > AN) volatile unsigned long i; for(i = 0; i < 20000; i++); //Softwareseitige Pause } }
Weitere Beispiele zum programmieren findest du auch auf dem GitHub Repository https://github.com/ticepd/msp430-examples.
alternative Entwicklungsumgebung – Energia IDE
Zum einfacheren programmieren des Microcontrollers MSP430 habe ich die Entwicklungsumgebung Energia IDE gefunden.
Diese wirbt damit mit dem Chip MSP430G2452 kompatibel zu sein.
Leider hat die neue Version einen bekannten Bug und man muss für den genannten Chip die IDE in der Version E17 nutzen.
Du kannst die ca. 200MB große Entwicklungsumgebung auf der Seite http://energia.nu/downloads/downloadv3.php?file=energia-0101E0017-windows.zip kostenfrei herunterladen.
Wenn du diese Datei heruntergeladen hast wird diese einfach in einen beliebigen Ordner entpackt und du kannst die Anwendung mit der Datei energia.exe starten.
Vergleich Arduino IDE & Energia IDE
Im „Info über…“ Dialog steht geschrieben „Modified version of the Wiring/Arduino IDE“ dieses merkt man an so ziemlich jeder Ecke der Software.
Die LEDs (rot & grün) und der Button auf dem MSP430 sind frei programmierbar.
Man kann diese über die Pins ansteuern oder aber über die internen Konstanten.
Pin | Konstante | |
---|---|---|
rote LED | P1_0 | RED_LED |
grüne LED | P1_6 | GREEN_LED |
Push Button (S2) | P1_3 | PUSH2 |
In der Energia IDE fehlen unter anderem
- der serielle Plotter,
- der Bibliotheksmanager, und
- der Boardmanager
Diese IDE ist also speziell auf die MSP Reihe von Texas Instruments ausgelegt.
Beispiele
rote LED blinken lassen
void setup(){ pinMode(RED_LED, OUTPUT); } void loop(){ digitalWrite(RED_LED, HIGH); delay(750); digitalWrite(RED_LED, LOW); delay(750); }
Wechselblinken der roten & grünen LED
void setup(){ pinMode(RED_LED, OUTPUT); pinMode(GREEN_LED, OUTPUT); } void loop(){ digitalWrite(RED_LED, HIGH); digitalWrite(GREEN_LED, LOW); delay(750); digitalWrite(RED_LED, LOW); digitalWrite(GREEN_LED, HIGH); delay(750); }
Button (S2) zum steuern der LEDs
boolean ledRedActive = false; void setup(){ pinMode(RED_LED, OUTPUT); pinMode(GREEN_LED, OUTPUT); pinMode(PUSH2, INPUT_PULLUP); Serial.begin(9600); } void loop(){ if(digitalRead(PUSH2)==0){ ledRedActive = !ledRedActive; digitalWrite(RED_LED, ledRedActive? HIGH:LOW); digitalWrite(GREEN_LED, ledRedActive? LOW:HIGH); delay(125); } }
Fazit
Der Microcontroller MSP430 von Texas Instruments ist ein sehr guter aber auch teurer Microcontroller. Diesen jedoch mit einem Arduino UNO (oder ähnlichem) vergleichen zu wollen wäre nicht fair. Der MSP430 kommt mit einem zusätzlichen Chip daher welcher mehr Speicher bietet und einem Quarz welcher bei Echtzeitanwendungen seinen Einsatz findet.
Die Programmierung des Microcontrollers ist in der Anwendung Code Composer Studio recht gewöhnungsbedürftig aber möglich. Die Entwicklungsumgebung Energia IDE liegt mir persönlich mehr, das liegt vielmehr daran das der geschriebene Code lesbarer und übersichtlicher ist. Jedoch bezweifle ich das sich „echte“ IoT Entwickler dieser Meinung anschließen werden.
Obwohl ich leichte Startschwierigkeiten mit dem Microcontroller hatte möchte ich nachfolgend gerne einige Beispiele in separaten Beiträgen herausbringen. Es wird jedoch kein 100%iger Ersatz für einen Arduino werden.
In Zeiten von ESP8266, ESP32, etc. sehe ich dafür keine Nische mehr
Hi,
danke für dein Kommentar.
Ja dieser Microcontroller ist schon sehr speziell, jedoch hat dieser einen ganz anderes Einsatzgebiet mal abgesehen von den fast dreifachen kosten gegenüber einem Microcontroller mit einem ESP Chip.
Gruß,
Stefan