Experimente mit dem I2C-Bus: I2C-Scanner bauen

Mit dem Nano-Axe-Board und einem Picaxe-Chip bauen wir einen I2C-Scanner mit dem man prüfen kann, ob und welche Bausteine angeschlossen sind.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht 9 Kommentare lesen
Lesezeit: 8 Min.
Von
  • Michael Gaus
  • Miguel Köhnlein
Inhaltsverzeichnis

Verschiedene Sensoren, eine Uhr und externer Speicher – bei der Verwendung des seriellen Datenbus I2C können wir mehrere Bausteine hintereinander an einen Mikrocontroller anschließen und mit jedem einzeln kommunizieren. Unser I2C-Scanner hilft dabei den Überblick zu behalten, ob die unterschiedlichen Teilnehmer tatsächlich richtig angeschlossen sind.

Dafür nutzen wir das Nano-Axe-Board und den Picaxe-08M2. Sie reichen bereits aus, um mit einem kleinen Software-Trick herauszufinden, auf welchen I2C-Adressen ein Teilnehmer mit dem Bestätigungsbit ACK reagiert. Das Nano-Axe-Board gibt es exklusiv mit dem Make Special PICAXE, weitere Hardware ist nicht nötig.

Mit diesem Scanner können unbekannte Adressen ausgelesen und bei Bausteinen mit externen Adresspins – wie dem Temperatursensor LM75A – die richtige Adresskonfiguration geprüft werden. Ebenso können wir eingrenzen, ob bei einer nicht-funktionierenden I2C-Kommunikation statt eines Softwareproblems möglicherweise ein Hardwarefehler vorliegt. Oft ist auch unklar, ob sich die im Datenblatt angegebene I2C-Adresse nun auf die 7-Bit-Interpretation ohne Schreib-/Lese-Bit (R/W-Bit) oder auf die 8-Bit-Angabe inklusive R/W-Bit bezieht. Mit dem I2C-Bus-Scanner lässt sich dies leicht bestimmen.