I²C ist st ein 1982 entwickelter serieller Datenbus. Über diesen können recht einfach weitere Geräte an den ftDuino oder TX/TXT Controller abgeschlossen werden.
I²C ist als Master-Slave-Bus konzipiert. Ein Datentransfer wird immer durch einen Master initiiert und der über eine Adresse angesprochene Slave reagiert darauf. Alle Teilnehmer müssen denselben Spannungspegel für die Datenleitung verwenden.
Es gibt maximal 128 Adressen auf dem Bus wobei 16 davon für Sonderzwecke reserviert sind. Alle Teilnehmer müssen unterschiedliche Adressen haben, um eine Kommunikation zu ermöglichen.
Eine genauere Beschreibung des I²C Busses finden Sie in der Wikipedia. Diese grobe Beschreibung reicht für das fischertechnik Umfeld aus.
Im fischertechnik Umfeld gibt es jedoch kleinere Herausforderungen.
a) Der TX Controller und der ftDuino arbeiten mit einem 5V Pegel auf dieser Datenleitung. Der TXT Controller jedoch mit 3,3V. Weiterhin kann an der Erweiterungsbuchse des TXT Controllers keine Spannung für die I²C Geräte abgegriffen werden.
b) Sowohl der TX als auch der TXT Controller können nur als Master genutzt werden. Der ftDuino kann auch als Slave genutzt werden und kann somit weitere Ein- und Ausgänge für den TX/TXT Controller zur Verfügung stellen.
c) manche I²C Geräte haben eine feste Adresse und bei manchen kann diese entweder per Änderung einer Lötbrücke auf der Leiterbahn des I²C Gerätes eine andere Adresse gewählt oder diese kann per Software (evtl. in Verbindung mit der Schaltung von einzelnen Ports) geändert werden.
Wie meistert man jetzt diese Herausforderungen?
Für a) und b) gibt es eine einfache Lösung um die Probleme der verschiedenen Spannungspegel und der fehlenden Versorgungsspannung beim TXT Controller zu lösen. Der ft-Extender wurde genau für diesen Fall entwickelt. Er transferiert die Daten von einem Spannungspegel zum anderen um und stellt dazu noch eine Spannungsversorgung zur Verfügung. Nähere Information finden Sie hier. Das fertige Gerät kann dann im Shop erworben werden.
Für c) gibt es eigentlich nur eine Lösung, sofern das gewünschte I²C Gerät nicht über die Möglichkeit verfügt die Adresse zu ändern. In diesem Fall muss ein sogenannter I²C Multiplexer verwendet werden. Diese verfügen über eine eigene I²C Adresse und können so konfiguriert werden das Sie alle Daten an diese konfigurierte Zieladresse weiter leiten. Bei Nutzung eines Mehrkanal Multiplexers können somit mehrere Geräte mit identischer I²C Adresse recht einfach genutzt werden. In Kürze wird so ein Multiplexer im Shop verfügbar sein.