EMZETT.
Login

I²C, SPI und UART: Wie Chips und Sensoren miteinander reden

Kurz: UART, I²C und SPI sind die drei klassischen seriellen Schnittstellen zwischen Mikrocontrollern, Sensoren und Displays, mit unterschiedlicher Leitungszahl, Geschwindigkeit und Adressierung.

Genauer: Sensoren, Displays, Speicher und Module hängen über wenige Leitungen am Mikrocontroller (Arduino, ESP32, Raspberry Pi). Welches Protokoll passt, entscheidet das Datenblatt des Bauteils.

Im Detail

UART (seriell)

  • 2 Leitungen (TX, RX) + GND, asynchron (keine Taktleitung): beide Seiten einigen sich auf Baudrate (z. B. 9600, 115200), 8N1 (8 Datenbits, keine Parität, 1 Stoppbit).
  • TX ↔ RX kreuzen; gleiche Pegel (3,3 V vs 5 V!).
  • Typisch: Serieller Monitor/Debug, GPS-Module, Bluetooth-Module, Konsolen-Zugang (Router/Raspberry Pi), USB-Seriell-Adapter.
  • RS-232 (± 12 V) und RS-485 (differenziell, lange Leitungen, Industrie) sind verwandte Pegel/Standards.

I²C (Inter-Integrated Circuit)

  • 2 Leitungen: SDA (Daten), SCL (Takt) + GND; mehrere Geräte an einem Bus, jedes mit 7-Bit-Adresse (z. B. 0x3C OLED, 0x68 Echtzeituhr).
  • Pull-up-Widerstände (4,7 kΩ) nötig (oft auf Breakout-Boards).
  • Geschwindigkeit 100 kHz / 400 kHz (Fast-Mode) bis MHz; Master/Slave (Controller/Target).
  • Ideal für Sensoren (Temperatur, Beschleunigung), kleine OLED-Displays, EEPROMs.
  • Adresskonflikte (zwei gleiche Sensoren) → Adress-Pin/Multiplexer. Debug: i2cdetect -y 1 (Raspberry Pi) / I²C-Scanner (Arduino).

SPI (Serial Peripheral Interface)

  • 4 Leitungen: MOSI, MISO, SCK, CS/SS (Chip-Select je Gerät) + GND; vollduplex, sehr schnell (MHz bis zig MHz).
  • Für Displays (TFT), SD-Karten, Flash-Speicher, ADC/DAC, LED-Treiber, Funkmodule (nRF24).
  • Pro Gerät eine CS-Leitung (mehr Pins als I²C); kein Standard-Adressierungsschema.
  • Modi (Taktpolarität/-phase 0–3) müssen passen.

Auswahl und Praxis

  • Wenige Pins, mehrere Geräte, mittlere Geschwindigkeit → I²C.
  • Hohe Datenrate (Display/SD) → SPI.
  • Punkt-zu-Punkt, einfach → UART.
  • Pegelwandler bei 5 V ↔ 3,3 V (Pi/ESP32 sind 3,3 V! 5 V an GPIO kann zerstören).
  • Kabellängen kurz halten (I²C/SPI sind für Platine/wenige Dezimeter gedacht).
  • Bibliotheken (Wire, SPI, smbus, spidev, MicroPython machine) kapseln Details.
  • Logikanalysator (günstig, Sigrok/PulseView) zeigt Signale zum Debuggen.
  • Verwandt: 1-Wire (DS18B20), CAN (Auto), USB, Ethernet.

Siehe auch: Arduino und Mikrocontroller, ESP32, Raspberry Pi