I2C und SPI Kommunikation sind die beiden wichtigsten „Sprachen“, mit denen Mikrocontroller und Chips im Hobby- und Embedded-Bereich miteinander sprechen. Sobald Sie mehr als nur eine LED anschließen, begegnen Ihnen diese Bussysteme fast automatisch: Displays, Sensoren für Temperatur und Luftfeuchte, Echtzeituhren (RTC), Speicherchips, ADCs, IMUs oder Funkmodule nutzen typischerweise I²C oder SPI. Für Einsteiger wirkt das zunächst wie Magie: Zwei Drähte reichen plötzlich aus, um mehrere Bauteile anzusprechen – oder ein Display wird über einige Leitungen überraschend schnell aktualisiert. In der Praxis scheitern Projekte aber oft an wenigen Basics: falsche Pins, vertauschte Leitungen, fehlende Pull-up-Widerstände, falsche Adressen, zu lange Kabel oder Pegelprobleme zwischen 3,3 V und 5 V. Dieser Artikel erklärt verständlich, wie I²C und SPI funktionieren, worin sich beide Protokolle unterscheiden, wann welcher Bus die bessere Wahl ist und wie Sie typische Fehler schnell diagnostizieren. Ziel ist, dass Sie Chips zuverlässig verbinden, Busse stabil betreiben und ein Gefühl dafür bekommen, welche technischen Details wirklich relevant sind – ohne sich in Spezifikationen zu verlieren.
Warum Bussysteme? Das Problem mit „ein Draht pro Signal“
Am Anfang verbindet man oft alles direkt mit GPIOs: ein Pin für eine LED, ein Pin für einen Button. Das funktioniert, skaliert aber schlecht. Ein Display kann schnell 6–10 Leitungen brauchen, ein Sensor weitere 2–4. Dazu kommen Konflikte, wenn mehrere Geräte gleichzeitig Daten liefern sollen. Bussysteme lösen dieses Problem: Mehrere Bauteile teilen sich gemeinsame Leitungen, und der Mikrocontroller entscheidet, wann wer spricht.
- Weniger Pins: mehrere Geräte mit wenigen Leitungen anschließen
- Klare Kommunikation: definierte Protokolle statt „selbstgebauter“ Bit-Bastelei
- Modularität: Sensoren und Displays lassen sich leichter austauschen
I²C im Überblick: Zwei Leitungen, viele Geräte
I²C (Inter-Integrated Circuit) ist ein serieller Bus, der für die Kommunikation zwischen Chips auf kurzer Distanz entwickelt wurde. Er nutzt zwei Leitungen: SDA (Daten) und SCL (Takt). Auf einem I²C-Bus kann ein Master (typischerweise der Mikrocontroller) mehrere Slaves (Sensoren, Displays, Speicher) ansprechen, indem er eine Adresse sendet. Dadurch können viele Bauteile parallel am selben Bus hängen – theoretisch sehr viele, praktisch abhängig von Adressen, Buskapazität und Pull-ups.
- Leitungen: SDA und SCL, plus VCC und GND
- Adressierung: jedes Gerät hat eine (meist 7-bit) I²C-Adresse
- Topologie: ein Bus, viele Slaves, oft ein Master
- Einsatz: Sensoren, OLEDs, RTCs, IO-Expander
Eine grundlegende Einordnung bietet die Erklärung zu I²C.
Das wichtigste Detail bei I²C: Pull-up-Widerstände
I²C-Leitungen sind in der Regel „Open-Drain“ bzw. „Open-Collector“. Das bedeutet: Geräte ziehen die Leitungen aktiv nach LOW, aber HIGH entsteht nicht durch „Treiber“, sondern über Pull-up-Widerstände auf VCC. Wenn Pull-ups fehlen oder unpassend sind, ist der Bus instabil oder funktioniert gar nicht.
- Pull-ups erforderlich: typischerweise 4,7 kΩ bis 10 kΩ (abhängig von Bus und Kabellänge)
- Viele Module haben Pull-ups: aber mehrere Module zusammen können „zu viele“ Pull-ups bedeuten
- Symptom bei Problemen: Geräte werden nicht gefunden, Bus hängt, Datenfehler
I²C-Geschwindigkeiten und warum „schneller“ nicht immer besser ist
I²C wird häufig mit 100 kHz (Standard Mode) oder 400 kHz (Fast Mode) betrieben. Für Breadboards und längere Leitungen ist 100 kHz oft zuverlässiger. Höhere Geschwindigkeiten erfordern saubere Verdrahtung und passende Pull-ups.
SPI im Überblick: Schnell, direkt und sehr verbreitet
SPI (Serial Peripheral Interface) ist ebenfalls ein serielles Protokoll, aber anders aufgebaut als I²C. SPI nutzt typischerweise getrennte Datenleitungen und einen Takt, außerdem eine Chip-Select-Leitung (CS), um ein bestimmtes Gerät auszuwählen. Dadurch gibt es keine Adressierung wie bei I²C, sondern eine direkte Auswahl per CS. SPI ist sehr schnell und eignet sich hervorragend für Displays, Speicher und schnelle Sensoren.
- Leitungen: SCK (Clock), MOSI, MISO, plus CS pro Gerät
- Keine Adresse: Auswahl über CS (Chip Select)
- Hohe Datenrate: ideal für Grafikdisplays oder schnelle Datentransfers
- Einsatz: TFT/OLED über SPI, SD-Karten, Flash-Speicher, schnelle ADCs
Eine gute Übersicht bietet die Erklärung zum SPI-Bus.
Voll-Duplex vs. Halb-Duplex
SPI kann in vielen Implementierungen Voll-Duplex arbeiten: Während der Master Daten zum Slave schickt (MOSI), kann der Slave gleichzeitig Daten zurückschicken (MISO). In der Praxis nutzen viele Geräte dennoch halb-duplexartige Abläufe, weil Befehle und Antworten getrennt erfolgen. Für Einsteiger ist wichtig: MOSI/MISO nicht verwechseln und die CS-Leitung korrekt setzen.
I²C vs. SPI: Die wichtigsten Unterschiede im Klartext
Beide Protokolle sind etabliert und zuverlässig, wenn man sie richtig nutzt. Die „bessere“ Wahl hängt vom Gerätetyp und den Projektanforderungen ab. Diese Gegenüberstellung hilft bei der Entscheidung.
- Leitungsanzahl: I²C braucht weniger Datenleitungen (2), SPI braucht mehr und zusätzlich CS pro Gerät
- Geschwindigkeit: SPI ist typischerweise schneller und besser für große Datenmengen (z. B. Displays)
- Mehrere Geräte: I²C skaliert gut über Adressen, SPI skaliert über zusätzliche CS-Pins
- Komplexität: I²C erfordert Pull-ups und Adressmanagement, SPI erfordert sauberes CS-Handling und Mode-Parameter
- Fehlersuche: I²C-Probleme sind oft Pull-up/Adresse, SPI-Probleme oft Mode/CS/Verdrahtung
Verdrahtung in der Praxis: So verbinden Sie Chips stabil
Viele Kommunikationsprobleme sind Verdrahtungsprobleme. Gerade auf Breadboards entstehen Wackelkontakte und lange Leitungen, die wie Antennen wirken. Für stabile Busse helfen einfache Regeln.
- Kurz und sauber: Leitungen kurz halten, besonders bei SCL/SCK
- Gemeinsame Masse: alle Geräte teilen GND, sonst gibt es undefinierte Pegel
- Versorgung stabil: Displays und Funkmodule können Spannungseinbrüche verursachen
- Entkopplung: Kondensatoren nahe an Modulen reduzieren Störungen
3,3 V und 5 V: Pegelprobleme erkennen
Viele moderne Mikrocontroller (ESP32, Raspberry Pi Pico) arbeiten mit 3,3 V-Logik. Manche Sensor- oder Displaymodule erwarten 5 V oder liefern 5-V-Signale. Das kann zu instabiler Kommunikation oder Schäden führen. Prüfen Sie deshalb, ob Module wirklich 3,3 V-kompatibel sind oder ob ein Pegelwandler nötig ist.
- 3,3-V-Boards: I/O nicht mit 5 V treiben, sofern nicht ausdrücklich tolerant
- I²C: Pull-ups bestimmen das HIGH-Niveau; Pull-ups auf 5 V an 3,3-V-I²C sind kritisch
- SPI: Logikpegel müssen passen, sonst entstehen Bitfehler
Für Raspberry Pi finden Sie wichtige Hinweise zu GPIO-Pegeln in der GPIO-Dokumentation.
I²C in der Praxis: Adressen finden und Konflikte vermeiden
Bei I²C ist die Adresse der Schlüssel. Viele Sensoren haben eine feste Adresse, manche bieten zwei Optionen über einen Pin oder Lötjumper. Wenn zwei Geräte die gleiche Adresse haben, können Sie sie nicht ohne Weiteres am gleichen Bus betreiben.
- I²C-Scan: zeigt, welche Adressen am Bus antworten
- Adresskonflikte: zwei gleiche Sensoren können kollidieren
- Lösungen: Adresspin umschalten, zweiten Bus nutzen oder I²C-Multiplexer einsetzen
Pull-ups richtig dimensionieren
Ein I²C-Bus braucht Pull-ups – aber nicht beliebig viele. Viele Module bringen Pull-ups mit. Wenn Sie mehrere Module kombinieren, kann der effektive Widerstand zu klein werden, was zu steilen Flanken und höheren Strömen führt. In der Praxis ist es oft sinnvoll, Pull-ups nur auf einem Modul aktiv zu haben oder gezielt externe Pull-ups zu setzen.
SPI in der Praxis: CS-Leitungen, Bus-Sharing und Modes
SPI wirkt häufig einfacher, weil es keine Adressen gibt. Dafür müssen CS-Leitungen sauber verwaltet werden. Nur das ausgewählte Gerät darf aktiv sein. Außerdem gibt es unterschiedliche SPI-Modes (Kombination aus Taktpolarität und -phase). Wenn der Mode falsch ist, erscheinen Daten „wirr“ oder das Gerät reagiert gar nicht.
- CS pro Gerät: jedes Gerät bekommt eine eigene CS-Leitung
- Bus-Sharing: SCK/MOSI/MISO werden geteilt, CS trennt die Teilnehmer
- SPI-Mode: muss zum Gerät passen (im Datenblatt bzw. in Bibliotheken angegeben)
- Zusatzpins: viele Displays nutzen zusätzlich DC (Data/Command) und RST
Typischer Fehler: MISO „stört“ den Bus
Manche Module lassen MISO nicht korrekt „hochohmig“, wenn sie nicht ausgewählt sind. Dann stören sie andere Teilnehmer. In solchen Fällen helfen Widerstände, Buffer oder eine andere Bus-Topologie. Bei gängigen Modulen ist das selten, aber als Fehlerbild gut zu kennen, wenn der Bus nur mit „einem Gerät allein“ funktioniert.
Bibliotheken und IDE: Warum Software oft die Hardware-Probleme sichtbar macht
Für Einsteiger ist es sinnvoll, zuerst ein bekanntes Beispiel aus einer etablierten Bibliothek zu nutzen. So trennen Sie „Verdrahtung/Bus“ von „eigener Programmlogik“. Gerade bei Displays und Sensoren ist die Library meist auf bestimmte Adressen, Controller oder SPI-Modes eingestellt.
- Arduino IDE: Bibliotheken über den Bibliotheksverwalter installieren
- PlatformIO: Abhängigkeiten pro Projekt definieren und reproduzierbar halten
- Dokumentation: offizielle Plattform-Dokus nutzen statt zufälliger Code-Snippets
Für einen sauberen Einstieg sind die Arduino Docs und die PlatformIO-Seite hilfreich.
Fehlerdiagnose: Wenn I²C oder SPI nicht funktioniert
Wenn die Kommunikation nicht klappt, ist systematisches Vorgehen entscheidend. Die meisten Probleme sind mit wenigen Checks lösbar, wenn man die Reihenfolge einhält.
I²C-Checkliste
- 1) SDA/SCL korrekt? richtige Pins am Board, nicht geraten
- 2) Pull-ups vorhanden? mindestens ein Satz Pull-ups am Bus
- 3) GND gemeinsam? ohne gemeinsame Masse keine stabile Kommunikation
- 4) Adresse korrekt? I²C-Scan durchführen
- 5) Kabel kurz? bei Problemen Takt reduzieren und Leitungen kürzen
- 6) Pegel ok? Pull-ups dürfen nicht auf falsches Spannungspotential ziehen
SPI-Checkliste
- 1) MOSI/MISO/SCK korrekt? nicht vertauschen, Pinout prüfen
- 2) CS korrekt? richtiges CS-Pin, aktiv-low beachten
- 3) SPI-Mode korrekt? Mode muss zum Gerät passen
- 4) Zusätzliche Pins? DC/RST bei Displays korrekt verdrahtet
- 5) Versorgung stabil? besonders bei Displays und langen Leitungen
- 6) Nur ein Gerät testen: zuerst einzeln prüfen, dann Bus-Sharing
Wann I²C, wann SPI? Entscheidungsleitfaden für typische Projekte
In der Praxis ergeben sich klare Muster. Diese Zuordnung hilft, ohne langes Grübeln die passende Schnittstelle zu wählen.
- Viele kleine Sensoren am selben Bus: I²C
- OLED/Display für Status und Menüs: I²C (einfach) oder SPI (schneller)
- Grafikdisplay mit schnellen Updates: SPI
- Speicher (Flash/SD): häufig SPI
- Wenn Pins knapp sind: I²C spart Leitungen, aber Adressen beachten
Weiterführende, verlässliche Quellen
- I²C: Prinzip, Adressierung und Grundlagen
- SPI: Prinzip und typische Nutzung
- Arduino Docs: I²C/SPI, Libraries und Praxisbeispiele
- Espressif Dokumentation: ESP32, I²C/SPI und Hardwarehinweise
- Raspberry Pi GPIO: Pegel, I/O und sichere Nutzung
IoT-PCB-Design, Mikrocontroller-Programmierung & Firmware-Entwicklung
PCB Design • Arduino • Embedded Systems • Firmware
Ich biete professionelle Entwicklung von IoT-Hardware, einschließlich PCB-Design, Arduino- und Mikrocontroller-Programmierung sowie Firmware-Entwicklung. Die Lösungen werden zuverlässig, effizient und anwendungsorientiert umgesetzt – von der Konzeptphase bis zum funktionsfähigen Prototyp.
Diese Dienstleistung richtet sich an Unternehmen, Start-ups, Entwickler und Produktteams, die maßgeschneiderte Embedded- und IoT-Lösungen benötigen. Finden Sie mich auf Fiverr.
Leistungsumfang:
-
IoT-PCB-Design & Schaltplanerstellung
-
Leiterplattenlayout (mehrlagig, produktionstauglich)
-
Arduino- & Mikrocontroller-Programmierung (z. B. ESP32, STM32, ATmega)
-
Firmware-Entwicklung für Embedded Systems
-
Sensor- & Aktor-Integration
-
Kommunikation: Wi-Fi, Bluetooth, MQTT, I²C, SPI, UART
-
Optimierung für Leistung, Stabilität & Energieeffizienz
Lieferumfang:
-
Schaltpläne & PCB-Layouts
-
Gerber- & Produktionsdaten
-
Quellcode & Firmware
-
Dokumentation & Support zur Integration
Arbeitsweise:Strukturiert • Zuverlässig • Hardware-nah • Produktorientiert
CTA:
Planen Sie ein IoT- oder Embedded-System-Projekt?
Kontaktieren Sie mich gerne für eine technische Abstimmung oder ein unverbindliches Angebot. Finden Sie mich auf Fiverr.

