|
Parameter Name |
MSP430F149 |
|
ROM / Flash (kB) |
60 |
|
RAM (Bytes) |
2048 |
|
ADC |
12-Bit |
|
Capture / Compare plus Timer |
Yes |
|
UART |
Hardware x 2 |
|
Hardware Multiplier |
Yes |
|
Number of Timers |
3 |

Low Supply Voltage Range 1.8 V - 3.6 V
Low Operation Current
7 uA at 32 KHz, 2.2 V
250 uA at 1 MHz, 2.2 V
Five Power Saving Modes:
Standby Mode: 1.3 uA,
RAM Retention Off Mode: 0.1 uA
16-Bit RISC Architecture, 125ns Instruction Cycle Time
12 Bit A/D Converter With Internal Reference,
sample-and-hold and Autoscan Feature
Basic Clock Module Configurations:
Various Internal Resistors
Single External Resistor
32 kHz Crystal
High Frequency Crystal
Resonator
External Clock Source
16-Bit Timer With Seven Capture/Compare-With-Shadow Registers, Timer_B
16-Bit Timer With Three Capture/Compare Registers, Timer_A
On-chip Comparator
Serial On-Board Programming,
No External Programming Voltage Needed
Programmable Code Protection by Security Fuse
Family Members Include:
MSP430F149: 60KB ROM, 2kB RAM
Available in:
64-Pin Quad Flat Pack (QFP)
Weiterführende Informationen finden sie auf der Seite des Herstellers: Texas Instruments
Das hausintern entwickelte MSP430 Board ist für den Unterricht ausgerichtet. Die meisten Anschlüsse sind steckbar herausgeführt.
Ein Programm mit dem die Funktionen des Boards getestet werden können, finden sie hier .

Wer selber zuhause mit dem MSP430F149 experimentieren möchte, kauft sich ein günstiges EVM (evaluation module).
|
![]() | ||
|
![]() |
Um den MSP430 zu programmieren und debuggen, benötigt man einen JTAG Adapter. Hier empfehlen sich die Adapter des Herstellers Olimex, da diese viel billiger sind als die Orginale von Texas Instruments.
|
MSP430X1XX User's Manual | |
|
MSP430X14X Datasheet | |
|
MSP430 Experimentiersystem | |
|
MSP430 Evaluation Module | |
|
MSP430 JTAG Adapter |
|
Blinklicht mit IAR-Embedded Workbench |
|
MSP430 ASSEMBLER, LINKER, AND LIBRARIAN: Programming Guide |
|
MSP430 C-SPY: User Guide | |
|
MSP430 WINDOWS WORKBENCH: Interface Guide | |
|
MSP430 C COMPILER: Programming Guide | |
|
FET User's Guide |
|
IDE |
Die aktuelle Version auf dem NTB-Image ist 5.0.2 für die IDE und 4.1A für den Compiler. Wenn Sie eine ältere Version benutzen, sind insbesondere die Interruptroutinen abzuändern!
Diese Version des Compilers ist gratis (die Vollversion kostet ca.2500CHF). Dafür können Sie nur 4k Code erzeugen.
Brauchen Sie mehr Code (bis 60k sind im MSP430F149 drin) empfielt sich der GNU-C Compiler für den MSP430, mspgcc . Hier finden Sie auch viele nützliche Hinweise zum Compiler.
Achtung falls der GNU-C Compiler in Verbindung mit Eclipse verwendet wird, sollte die Version 20060502 installiert werden, da sonst beim Debuggen Probleme auftreten können.
Eine andere Seite mit viel Material
Für die Compilation benutzen Sie mit Vorteil ein Make-File. Mehr Infos dazu unter GNU Make . Sie können auch alle erzeugten Files (*.o, *.elf, *.lst, *.hex) mit "make clean" löschen.
Im folgenden Beispiel finden Sie eine kleine Applikation, die auf unserem EVM einmal pro Sekunde den AD0 liest und das Resultat auf dem Display ausgibt.
Im zip-File finden Sie auch das passende Makefile. Geben Sie in einer DOS-Shell im richtigen Verzeichnis den Befehl "make" ein. Jetzt wird in einem ersten (nur das erste Mal, ist nachher nicht mehr nötig) Durchgang ein File erzeugt, das alle gegenseitigen Abhängigkeitenin Ihrem Projekt abspeichert. Mit einem zweiten "make" erzeugen Sie das binäre Ausgangsfile *.elf, das Sie dann auf das Target brennen.
Achtung : In den Headerfiles zum GCC (konkret in "common.h" befindet sich ein Fehler in LPM_EXIT. Im Beispiel ist gezeigt, wie sie entweder die #define überschreiben oder besser das Schlüsselwort wakeup benützen. Mehr Infos dazu im mspgcc-Manual. Im Übrigen ist das Beispiel so programmiert, dass Sie das Beispiel sowohl mit dem GCC als auch mit dem IAR Compiler compilieren können.
Für den GNU-Debugger gibt es das Frontend "Insight". Neu ist dieses Frontend nicht mehr im aktuellen Build des mspgcc enthalten sondern muss separat heruntergeladen werden. http://prdownloads.sourceforge.net/mspgcc/ . Die neuste Version von Insight für Linux User finden Sie unter http://sources.redhat.com/insight/.
Der GNU-Debugger setzt eine TCP-Connection voraus. Zusätzlich brauchen Sie noch den Zugriff auf die LPT. Als Administrator müssen Sie den Befehl ".\giveio\install_giveio.bat" ausführen. Dies ist auf den Klassenzimmer-PC's bereits passiert.
Mit dem Befehl "msp430-gdbproxy --port=3333 msp430" werden die entsprechenden Kommandos an Insight umgeleitet. Falls Ihr Target korrekt mit der LPT verbunden ist, erscheint die Meldung
info: msp430: Target device is a 'MSP430F14x'
notice: msp430-gdbproxy: waiting on TCP port 3333
Statt den Befehl einzutippen, können Sie auch das Skriptfile msp430-gdbproxy ausführen (zu finden unter Informatik->mspgcc)
Jetzt starten Sie den Insight und öffnen das *.elf File.
Achtung: Sie müssen das *.elf File jedesmals wieder schliessen, wenn Sie mit make ein neues erzeugen wollen.
Jetzt mit "Run->Connect to target" die folgenden Optionen wählen:
|
Target: |
"Remote/TCP" | |
|
Hostname: |
"localhost" | |
|
Port: |
"3333" | |
|
Set breakpoint at main: |
yes | |
|
Attach to target: |
no | |
|
Download program: |
no | |
|
Run Method: |
Continue from last stop | |
|
Command to issue after attaching: |
monitor erase all |
Der Debugger ist nicht sehr stabil, lesen Sie die Online-Hilfe. Natürlich können Sie auch den C-Spy Debugger von IAR benutzen (*.hex File erzeugen und laden). Dann haben Sie allerdings keine Source-Line Unterstützung, da im Hexfile keine Debuginfo abgelegt wird. Dafür ist der Download wesentlich schneller.
Für die Eclipse-IDE besteht ein konfortables C/C++ Plugin welches die Möglichkeit bietet, externe Compiler einfach einzubinden. Im Folgenden wollen wir dies mit dem mspgcc tun.
Nutzen Sie die neuste Eclipseversion auf dem file-server ( \\file-server\inf\eclipse\ ). Dort ist das benötigte Plugin bereits installiert. Falls Sie ein Notebook benützen, kopieren Sie am besten den ganzen Eclipse Ordner auf Ihre Festplatte um lokal zu arbeiten. Beachten Sie, dass der mspgcc Compiler vorgängig installiert werden muss (Abschnitt „MSP GCC Compiler“ ).
Öffnen Sie den Projekt Wizard 'File' -> 'New' -> 'Project...' und wählen Sie unter dem Ordner 'C' den Punkt 'C Project' und klicken sie auf 'Next'.

Geben sie dem Projekt den Name 'TestProject'. Anschliessend wählen sie unter 'Project types' den Punkt 'Makefile project' und unter Toolchain '-- Other Toolchain --' aus.

Im nächsten klicken sie auf 'Advanced settings...' und fügen anschliessend unter 'C/C++ General -> Paths and symbols -> GNU C' mit 'Add' den Pfad für die Include Dateien hinzu. Falls schon andere Include Paths vorhanden sind, löschen sie diese mit 'Delete'.

Nun erstellt Eclipse ein neues 'Makefile C Project' und fragt Sie anschliessen, ob Sie in die C-Perspektive wechseln möchten. Vielleicht habe Sie Eclipse bereits für die Java Entwicklung benützt und wissen somit, dass es auch für Java eine eigene Perspektive gibt. Markieren Sie also das Kästchen 'Remember my decision' und bestätigen Sie mit 'Yes'.

Die C/C++ Perspektive wird rechts oben angezeigt.

Laden Sie nun das folgende Beispielprojekt herunter und kopieren Sie die Dateien in das Projektverzeichnis (z.B. im Explorer). Beachten Sie, dass die Dateien nicht sofort angezeigt werden, sondern erst nach einem 'Refresh'. Diese Aktion führen Sie aus, indem Sie mit der rechten Maustaste auf das Projekt klicken und 'Refresh' auswählen.

Jetzt sollten die Files im Projekt sichtbar sein.
Der mspgcc Compiler ist bereits auf unserem System installiert und der Ordner indem sich die ausführbare Datei befindet in der Umgebungsvariable PATH eingetragen. Somit können wie in einem Command-Window einfach 'msp430-gcc' eingeben um dem Compiler zu starten. Da wir den Compiler über ein Makefile starten, müssen wir keine weiteren Modifikationen durchführen. Der Aufruf des Compiler funktioniert im Grunde gleich, wie von der Kommandozeile.
Was wir allerdings machen müssen, ist ein neues Make-Target zu erstellen, um z.B. den Befehl 'make all' ausführen zu können. Öffnen Sie dazu den Tab 'Make Targets' hinter 'Outline' und klicken Sie mit der rechten Maustaste auf 'TestProject'.

Beachten Sie, dass der Tab 'Make Targets' nur in der C/C++ Perspektive zur Verfügung steht!
Wir übernehmen die Standardeinstellung, die wie folgt aussieht:

Nun kann das vorgängig erstellte Make Target ausgeführt werden. Beim Doppelklicken von 'all' wird also 'make all' ausgeführt. Als Resultat erstellt der mspgcc die kompilierten Dateien.
Im CDT Plugin für Eclipse ist ein sehr komfortables Debugfrontend für den GDB-Debugger integriert. Starten Sie als erstes den gdbproxy mit folgenden Kommando: 'msp430-gdbproxy --port=3333 msp430'. Die Aufgabe diese Proxy ist es, Kommandos vom Debugger (Eclipse CDT) zu empfangen und die gewünschten Aktionen auf dem Target (Microcontroller) auszuführen. Möchte man einen anderen Microcontroller debuggen, muss nur der Proxy ausgewechselt werden. Der Proxy macht also die Übersetzung zwischen den standardisierten Debugkommandos der Entwicklungsumbegung und den microcontrollerspezifischen Kommandos des Targets.
Der Verbindungsaufbau ist ausführlicher im Abschnitt „MSP GCC Debugger“ beschrieben.
Öffnen Sie nach erfolgreicher Verbindung zum MSP430 im Menü 'Run' den Menüpunkt 'Debug...'. Markieren Sie 'C/C++ Local Application' und erstellen Sie eine neue Konfiguration mit 'New'. Wählen Sie im 'Main'-Tab unter 'C/C++ Application' 'Search Project...'. Als Information für den Debugger wählen wir die durch die Kompilation erstellte Datei 'appl.elf'. Dies Datei enthält alle Debuginformationen unserer Kompilierten C-Dateien.

Wechseln Sie zum Tab 'Debugger' und wählen sie im Pulldown-Menü 'Debugger' den 'gdbserver Debugger'. Im Feld 'GDB debugger' geben sie den MSPGCC Debugger 'msp430-gdb' an. Als nächstes drücken Sie hinter 'GDB command file' den Button 'Browse...'. Wählen Sie die Datei 'gdb-target.ini' aus unserem Projekt. Diese Datei enthält Instruktionen für die Initialisierung des Debuggers. Wenn Sie in die Datei schauen, sehen Sie, dass dort Einstellungen wie Portnummer (für Proxi) oder der Name des zu ladenden ELF-Files eingetragen sind. Für andere Projekte müssen Sie also mindestens den Namen des ELF-Files in dieser Datei anpassen.

Wechseln Sie bei den unteren Tabs auf 'Connection'. Wählen sie im Pulldown-Menü 'Type' die Verbindungsart 'TCP'. Nun müssen sie unter 'Port number' den Port angeben, unter welchem der Debugger den Proxy ansprechen kann. In unserem Beispiel ist dies '3333'.

Betätigen Sie nun den 'Debug'-Button um die Debug Session zu starten. Der msp430-gdb Debugger wird gestartet und hält automatisch beim Eintreten in die main()-Methode.

Im Fenster in der rechten oberen Ecke werden die Werte der aktuell sichtbaren Variablen laufend dargestellt. Strings und Structs können durch das drücken des '+'-Symbols inspiziert werden.
Beachten Sie, dass auch die aktuellen Breakpoints, geladenen Module sowie aktuellen Registerwerte ausgelesen werden können.
Möchten Sie das Programm an einem bestimmten Ort anhalten lassen, können Sie einen Breakpoint setzen. Entweder können Sie mit Doppelklick auf der entsprechenden Zeile einen Breakpoint setzen oder mit der rechten Maustaste über das Menü. Dies funktioniert in der 'C/C++' und in der 'Debug' Perspektive.

Viel Spass beim Käfer eliminieren!
Für Anregungen und Verbesserungsvorschläge schreiben Sie bitte ein Mail an die Assistenten der Informatik.
Dieses kleine populäre RTOS finden Sie unter http://www.micrium.com/ beschrieben. Es bietet einen preemtiven Scheduler und alles, was man so braucht, inkl. Semaphoren, Message Queues usw. Es wurde auch auf den MSP430 portiert.
Die Version für den IAR Compiler setzt die Vollversion des Compilers voraus und kann direkt von der Mikrium Homepage heruntergeladenund in einem Projekt kompiliert werden.
Die Version für den mspgcc finden Sie hier . Im zip-File befindet sich auch ein passendes Makefile sowie eine kleine Applikation mit zwei Tasks.