I²C Bus
Der I²C-Bus (Inter-Integrated Circuit) ist ein serielles Kommunikationsprotokoll, das von Philips (heute NXP Semiconductors) entwickelt wurde. Es wird häufig in der Elektronik verwendet, um Mikrocontroller, Sensoren, Speicherbausteine und andere integrierte Schaltungen über nur zwei Leitungen miteinander zu verbinden.
Grundprinzipien des I²C-Busses
• Leitungen:
• SDA (Serial Data Line): Überträgt die Daten.
• SCL (Serial Clock Line): Überträgt das Taktsignal.
• Adressierung:
Jedes Gerät auf dem Bus hat eine eindeutige 7- oder 10-Bit-Adresse, über die es angesprochen wird.
• Master-Slave-Prinzip:
Ein Master-Gerät steuert den Bus und initiiert die Kommunikation. Slaves antworten auf Anfragen des Masters.
• Datenrate:
Typische Geschwindigkeiten sind 100 kHz (Standard Mode), 400 kHz (Fast Mode), 1 MHz (Fast Mode Plus) und bis zu 3,4 MHz (High-Speed Mode).
• Pull-up-Widerstände:
Da der Bus offen-kollektor/open-drain ist, benötigen SDA und SCL jeweils einen Pull-up-Widerstand, um die Leitung auf High-Pegel zu ziehen.
Ablauf einer I²C-Kommunikation
1. Startbedingung:
Der Master zieht SDA von High auf Low, während SCL High ist.
2. Adressübertragung:
Der Master sendet die Adresse des Zielgeräts plus ein Bit für Lese- oder Schreiboperation.
3. Acknowledge (ACK):
Das angesprochene Slave-Gerät bestätigt mit einem Low-Pegel auf SDA.
4. Datenübertragung:
Datenbytes werden übertragen, jeweils gefolgt von einem ACK.
5. Stoppbedingung:
Der Master zieht SDA von Low auf High, während SCL High ist, um die Übertragung zu beenden.
Vorteile des I²C-Busses
○ Nur zwei Leitungen für viele Geräte.
○ Einfaches Protokoll mit Adressierung.
○ Unterstützt mehrere Master (Multi-Master-Betrieb).
○ Weit verbreitet und gut dokumentiert.
Typische Anwendungen
○ Kommunikation zwischen Mikrocontroller und Sensoren (z.B. Temperatursensoren, Beschleunigungssensoren).
○ Verbindung zu EEPROMs, RTCs (Real-Time Clocks).
○ Steuerung von LCD-Displays.
○ Digitale Potentiometer und andere Peripheriegeräte.