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

12/2019
RasPi-Alternativen

Diese Ausgabe als PDF kaufen

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

Stellenmarkt

Neuigkeiten

  • Grußbotschaften

    Mit Sonic Pi zaubern Sie komplexe Sounds, die Sie bei Bedarf sogar noch während des Abspielens modifizieren.

  • Das Runde und das Eckige

    Mit dem MCP4725 ergänzen Sie einen RasPi um einem D/A-Wandler, der bei Bedarf noch weitere Funktionen erfüllt.

  • Alles unter Kontrolle

    Schon ein einfaches Mikrocontrollerboard wie das CY8CKIT-049-42xx bietet erstaunlich viele Möglichkeiten beim Ansteuern von Hardware.

  • Viele Kerne

    Das Spresense Development Board von Sony lässt sich mit der Arduino IDE programmieren und bringt auch ein eigenes Entwickler-SDK mit.

  • Exotische Früchte

    Der aus China stammende Orange Pi positioniert sich mit einem guten Preis und interessanten Features gegen die RasPi-Truppe. Kann er sich auch behaupten?

  • Flexibler Surfer

    Mit dem neuen RasPi 4 setzen Sie einen öffentlichen Webkiosk schnell und kostengünstig auf.

  • Auskunftsfreudig

    Viele Devices, so auch der E.ON-Aura-Controller, verwenden eine Schnittstelle namens REST, um Zustandsdaten zu übermitteln. Mit ein wenig Bastelei lesen Sie diese auch über Ihr Smartphone aus.

  • Doppelt gemessen

    Mit wenig Aufwand und einem Pi Zero realisieren Sie einen mobilen Zweikanal-Spannungsprüfer.

  • Elegant zusammengeführt

    Tizonia streamt Musik von Online-Quellen und lokalen Sammlungen. Die schlanke Architektur macht den Player zur guten Wahl für den Einsatz auf dem RasPi.

  • Kommunikativ

    Nicht jeder traut sich zu, sein eigenes Smartphone zu bauen. Allerdings kann jeder Linux-Nutzer den Raspberry Pi im Handumdrehen zu einem VoIP-Telefon aufrüsten.