Teil 7: I2C-Kanäle effizient ausnutzen mit dem PCA9516

© Suzanne Tucker, 123RF

Geschickt aufgeteilt

Für eine komplexe Raumklima-Messung brauchen Sie viele identische Sensoren. Der PCA9516 ermöglicht es, diese auf einem I2C-Bus anzusteuern.

Es gibt spezielle I2C-Bausteine, die nur über eine Adresse verfügen. Was machen Sie aber, wenn Sie mehrere dieser Bausteine, wie den AM2321 [1], in einem Projekt verwenden möchten? Das ist gar nicht so abwegig, wenn Sie das Raumklima in verschiedenen Räumen eines Hauses überwachen wollen. Die Lösung für dieses Problem stellt ein Baustein wie der PCA9516 dar: Er kann den I2C-Bus multiplexen.

Im Detail

Im Datenblatt [2] des Moduls findet sich die Angabe, dass es sich um einen 5-Channel-Hub handelt. In Bezug auf die reine Lehre ließe sich darüber streiten, ob er wirklich als Verteiler mit fünf Kanälen agiert: Er schaltet den I2C-Master-Bus auf vier unabhängige Slave-Busse durch.

Das bedeutet im Klartext, dass eine Adresse, die auf dem Master-Bus schon belegt ist, auf den Slave-Bussen nicht mehr bereitsteht. Ergo macht der PCA9516 eine Adresse nur je einmal an jedem der vier Slave-Busse des PCA9516 verfügbar – also doch eigentlich nur vier Kanäle.

Um den PCA9516, der in einem SO16-Gehäuse verbaut ist, auf einem Prototyping-Board zu verwenden, löten Sie ihn zuerst auf einen Adapter. Abbildung 1 zeigt das Pinout des Bausteins, das dabei hilft, den Versuch nachzubauen. Abbildung 2 zeigt den internen Aufbau der Hardware.

Abbildung 1: Das Pinout des in einem SO16-Gehäuse verbauten I2C-Hubs.
Abbildung 2: Der interne Aufbau des PCA9516-Bausteins.

Versuch

Die Software im folgenden Beispiel setzt direkt auf die Installation aus Teil 6 dieser Reihe auf [3]. Dieser zeigt, wie Sie eine komplette Java-Umgebung auf dem Raspberry Pi aufbauen. Das Testprogramm kommt in Teilen ebenfalls wieder zum Zug (Abbildung 3).

Abbildung 3: Der Versuchsaufbau mit dem PCA9516.

Das Datenblatt gibt den Hinweis, über den Busmaster (im vorliegenden Fall also den Raspberry Pi) über I/O-Ports denjenigen I2C-Channel auszuwählen, den Sie verwenden möchten. Der Einfachheit halber realisiert das der Beispiel-Code genauso – der RasPi hat genügend dieser I/Os frei. Bei größeren Projekten böte es sich dagegen an, die I/O-Ports zum Steuern des PCA9516 selbst über den I2C-Bus anzusteuern, zum Beispiel über einen PCA9574-Baustein.

Da der Aufbau des Versuchs nicht gerade trivial ausfällt, zeigt uns der Schaltplan (Abbildung 4), wie Sie alle Bausteine verschalten müssen. Damit Sie auch sehen, was sich gerade tut, zeigen in den Aufbau integrierte LEDs an, welcher Channel gerade aktiv ist. Diese Dioden können Sie sich sparen, wenn alles einwandfrei arbeitet.

Abbildung 4: Der Schaltplan für den Versuchsaufbau samt Status-LEDs.

Auf gar keinen Fall weglassen dürfen Sie jedoch die Pullup-Widerstände an den Slave-Bussen. Ohne diese kommen auf den Datenleitungen keine Logikpegel zustande. Der Raspberry Pi integriert solche Widerstände direkt auf der Platine, deshalb läuft uns dieses Problem erst jetzt über den Weg. Selbst ein nicht verwendeter Slave-Bus sollte diese Beschaltung bekommen. Falls sie fehlt und Sie den Bus auf den Master schalten, legt er die komplette Kommunikation lahm.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Raspberry Pi Geek kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Aktuelle Ausgabe

10/2019
Raspberry Pi 4B

Diese Ausgabe als PDF kaufen

Preis € 9,99
(inkl. 19% MwSt.)

Stellenmarkt

Neuigkeiten

  • Sonnige Zeiten

    UV-Strahlung ist für das menschliche Auge unsichtbar, was sie umso gefährlicher macht. Die Höhe der tatsächlichen Belastung verrät Ihnen das Selbstbauprojekt UV-Sensor.

  • Gut verpackt

    Für das Ansteuern kleiner Displays gibt es keine Programme von der Stange. Mit Python und einer Pygame-Bibliothek erstellen Sie trotzdem im Handumdrehen Anwendungen.

  • Macro-Mini-Micro-Bit

    Was dem Raspberry Pi für die Computerwelt gelungen ist, versucht der BBC Micro:bit für Mikrocontroller zu wiederholen. Das für Schüler entwickelte Kit hilft beim Einstieg in die hardwarenahe Programmierung.

  • Vorhang auf

    Mit dem modernen Video-Codec HEVC (H.265) erstellte Filme spielen bisherige RasPi-Modelle oft nur ruckelnd ab. Wir testen, ob der neue Raspberry Pi 4B das besser kann.

  • Überraschung!

    Eine optimierte Architektur und mehr RAM beschleunigen den RasPi 4B deutlich. Wir prüfen, wie gut sich der Neuling als Desktop-Rechner schlägt.

  • Durchgestartet

    Ein Stresstest zeigt, wie sich der neue Raspberry Pi 4 Modell B gegenüber den älteren Modellen abhebt.

  • Vierte Generation

    Eine schnellere CPU, USB 3.0 und Gigabit-Ethernet sind nur die Highlights des Raspberry Pi 4B: Das Board bringt viele weitere Neuerungen mit.

  • Tiefenmesser

    Um die Pumpe in einem Brunnenschacht möglichst genau zu positionieren, brauchen Sie dessen Tiefe. Die ermitteln Sie mithilfe eines präzisen Messgeräts aus einem Luftdrucksensor und einem Mikrocontroller.

  • Faktencheck

    Das via DVB-T2 ausgestrahlte Digital-TV liefert Bilder in HD-Qualität. Der dabei eingesetzte H.265-Standard überfordert allerdings kleine Mini-Rechner wie den Raspberry Pi – oder geht es doch?

  • Zugriff von außen

    React Native erlaubt es, Apps mit wenigen Zeilen Code zu programmieren. Mit einem entsprechenden Server sprechen Sie so den RasPi vom Smartphone aus an.