Startseite>I<+>2<+>C-Workshop, Teil 19: MSP430F5529 als I<+>2<+>C-Master
Aus Raspberry Pi Geek 06/2018

I<+>2<+>C-Workshop, Teil 19: MSP430F5529 als I<+>2<+>C-Master

© Aubert Serge, 123RF

Stabübergabe

Martin Mohr

Ist das Prototyping erst einmal abgeschlossen, dann darf ein günstiger Mikrocontroller wie der MSP430 das Ruder übernehmen.

Der Mikrocontroller MSP430F5529 von Texas Instruments arbeitet mit einem 16-Bit-Kern und hat eine Taktfrequenz von 25 MHz. Er verfügt über einen Programmspeicher von 128 KByte und bietet 8 KByte RAM für Daten. An I/O-Ports haben die Designer nicht gespart: Zu den üblichen Ports, die Sie etwa vom Raspberry Pi kennen, kommen zusätzlich noch 16 Analog-Eingänge mit einer Auflösung von 12 Bit hinzu.

Im Test kam ein Evaluation Kit (Launchpad) [1] zum Einsatz, das der Hersteller für rund 13 US-Dollar anbietet. Dieses Kit hat alles an Bord, um direkt starten zu können. Dazu gehören auch ein USB-Programminterface sowie zwei Taster und LEDs. Wenn Sie sich etwas intensiver mit den verschiedenen Varianten beschäftigen möchten, werfen Sie einen Blick auf die Homepage des Chips [2].

Als IDE bieten sich Energia [3] oder die Professional Software Tools [4] an. Im Test kam Energia zum Einsatz (siehe Kasten “Energia installieren”), eine der Arduino IDE nachempfundene Open-Source-Software. Die Entwicklungsumgebung lässt sich leicht bedienen, schon nach wenigen Minuten haben Sie ein erstes Programm in dem Mikrocontroller geladen.

Energia installieren

Bei Bedarf laden Sie Energia aus dem Netz herunter [5]. Wählen Sie hier die für Ihr Betriebssystem passende Version aus. Versionen für Linux und Windows sowie die Rules-Datei finden Sie auch auf dem Datenträger zum Heft. Unter Linux funktioniert die Installation der IDE wie in den ersten fünf Zeilen von Listing 1 gezeigt. Falls Sie eine andere Version der IDE herunterladen, passen Sie die Pfade dementsprechend an. Damit alle Änderungen greifen, starten Sie das System einmal neu – das ist in diesen Fall nötig, weil Sie die Berechtigungen auf den USB-Geräten verändert haben. Um nach dem Neustart die IDE zu starten, geben Sie die beiden letzten Zeilen aus Listing 1 ein.

Listing 1

 

$ cd ~
$ cp ./Downloads/energia-1.6.10E18-linux64.tar.xz .
$ tar -xvf energia-1.6.10E18-linux64.tar.xz
$ wget http://energia.nu/files/71-ti-permissions.rules
$ sudo mv ./71-ti-permissions.rules /etc/udev/rules.d/
[... Neustart ...]
$ cd ~/energia-1.6.10E18/
$ ./energia

Um zu überprüfen, ob die IDE wie gewünscht funktioniert, schließen Sie das Launchpad an eine freie USB-Schnittstelle des PCs an. Für den Test eignet sich das Blink-Programm, das Hello-World-Programm der Mikrocontroller-Gemeinde. Sie finden es in der IDE unter Datei | Beispiele | Basics  | Blink.

Nachdem Sie das Beispiel geöffnet haben, installieren Sie es mit der Schaltfläche Hochladen (zweites von links in der Icon-Leiste) im Controller. Danach startet es direkt, und die rote LED beginnt langsam zu blinken.

Hardware

Um das Lauchpad auf einem Breadboard zu verwenden, wenden Sie einen Trick an. Dazu modifizieren Sie einige lange Stiftleisten [5] und verwenden sie als Verbindung zwischen Breadboard und Launchpad (Abbildung 1). Nun verbinden Sie die Bauteile dem Schaltplan aus Abbildung 2 entsprechend.

Abbildung 1: Mit etwas Geschick verschieben Sie den Verbindungssteg der Stiftleisten, um das Launchpad mit dem Breadboard zu verbinden.

Abbildung 1: Mit etwas Geschick verschieben Sie den Verbindungssteg der Stiftleisten, um das Launchpad mit dem Breadboard zu verbinden.

Abbildung 2: Der Schaltplan für den Testaufbau zeigt, wie Sie die einzelnen Teile miteinander verbinden.

Abbildung 2: Der Schaltplan für den Testaufbau zeigt, wie Sie die einzelnen Teile miteinander verbinden.

Genau genommen haben Sie nur den I2C-Bus des MSP430 mit dem LM75 eins zu eins verbunden. Eine Kleinigkeit ist allerdings beim Aufbau sehr wichtig: Bei den Widerständen R1 und R2 handelt es sich um sogenannte Pullup-Widerstände; ohne diese kann der MSP430 kein Signal auf dem I2C-Bus erzeugen.

Nun drängt sich sofort die Frage auf, warum wir bei den bisher erschienenen 18 Teilen dieser Workshop-Reihe so gut wie nie Pullup-Widerstände gebraucht haben. Die schlichte Antwort: Beim Raspberry Pi sind sie bereits mit auf der Platine verbaut. Warum aber verbaut ein Profi-Hersteller wie TI keine Pullup-Widerstände auf der Platine? Zum einen hängt der notwendige Wert der Widerstände von der Bus-Last ab (Anzahl der angeschlossenen I2C-Slaves und Länge des Busses), zum anderen verändern diese Widerstände die Charakteristik der GPIOs, wenn diese nicht für I2C zum Einsatz kommen.

Beides sind sehr gute Gründe, die Widerstände nicht standardmäßig zu bestücken. Für die Entwickler des Raspberry Pi war es allerdings wichtiger, dem Hardware-Anfänger ein auf Anhieb funktionierendes System zu bieten, auch wenn es so etwas weniger Flexibilität bietet.

Will eines Ihrer I2C-Projekte überhaupt nicht funktionieren, dann schauen Sie doch einmal nach, ob die I2C-Pullup-Widerstände vorhanden sind, und falls ja, welchen Wert sie haben. Fallen sie zu hochohmig aus, gelingt es unter Umständen nicht, ein sauberes Signal auf dem Bus zu erzeugen.

Testprogramm

Das Testprogramm (Listing 2) liest die aktuellen Werte für die Temperatur aus einem LM75 aus und sendet sie an eine serielle Schnittstelle. Die Ausgaben der seriellen Schnittstelle sehen Sie sich bei Bedarf auf dem Seriellen Monitor der Energia IDE an (Lupen-Icon ganz rechts in der Icon-Leiste).

Listing 2

 

#include <Wire.h>
void setup() {
  Wire.begin();
  Serial.begin(9600);
  Serial.println("start");
}
void loop() {
  Wire.beginTransmission(0x48);
  Wire.write((byte)0x00);
  Wire.requestFrom(0x48, 1);
  int temperatur;
  temperatur = Wire.read();
  Wire.endTransmission();
  Serial.print("Temperatur: ");
  Serial.println(temperatur);
  delay(1000);
}

Zum Hochladen von Programmen verwendet die IDE das Device /dev/ttyACM0. Um die Ausgaben des Mikrocontrollers zu sehen, wählen Sie /dev/ttyACM1 als Port aus. Möchten Sie beim Entwickeln nicht ständig umschalten (wobei nicht nur der Programmierer durcheinanderkommt, sondern gelegentlich auch die IDE), empfiehlt es sich, zwei Fenster zu öffnen: eines zum Programmieren und Hochladen und ein zweites zur Anzeige der Ausgabe des seriellen Monitors (Abbildung 3).

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 4 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
€0,99 – Kaufen
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland