Stehen Sie bei Ihrem Embedded-Display-Projekt vor einer Herausforderung?

Lassen Sie nicht komplexe Integration oder Lieferkettenprobleme Ihre Markteinführung verzögern. Vereinbaren Sie eine kostenlose Beratung mit dem RJY-Expertenteam für maßgeschneiderte Design- und Fertigungsunterstützung.

Einrichtung eines TFT-LCD-Displays für den Raspberry Pi

Teilen Sie Ihre Begeisterung

Für Embedded-Software-Ingenieure, Hardware-Hacker und industrielle IoT-Architekten ist der Raspberry Pi der unbestrittene König des Rapid Prototyping. Im standardmäßigen “Headless”-Zustand (per SSH zugänglich) ist er ein leiser, unsichtbarer Arbeitstier. Sobald Sie jedoch eine Mensch-Maschine-Schnittstelle (HMI) benötigen – sei es für einen intelligenten Heizungsthermostaten, eine Fabriksteuerung oder einen maßgeschneiderten Medizingeräte-Prototyp – müssen Sie die Lücke zwischen Code und physischer Interaktion überbrücken.

Die Integration eines TFT-LCD-Raspberry-Pi- Displays ist oft die frustrierendste Initiationsprüfung in der Hardwareentwicklung. Wenn Sie jemals einen Bildschirm an die GPIO-Pins Ihres Pi angeschlossen haben, nur um vom berüchtigten “Weißen Bildschirm des Todes” begrüßt zu werden, wissen Sie genau, wie komplex diese Integration sein kann.

Diese umfassende, schrittweise Technikanleitung führt Sie präzise durch die erforderlichen Hardwareverbindungen, die zugrundeliegenden Linux-Device-Tree-Overlays und die modernen Wayland/X11-Softwarekonfigurationen, um einen TFT-LCD erfolgreich auf einem Raspberry Pi in Betrieb zu nehmen.

1. Architekturanalyse: Ihr Display-Interface verstehen

Bevor Sie auch nur einen Jumper-Draht anfassen oder sudo nano, eintippen, müssen Sie verstehen, wie wie Ihr Display mit dem Raspberry Pi kommuniziert. Die Verbindungsmethode bestimmt vollständig die Bildwiederholrate, die CPU-Auslastung und die benötigte Softwaretreiber.

Es gibt vier primäre Methoden, um einen TFT-LCD-Raspberry-Pi-Display anzuschließen.

A. Das SPI-Interface (Serial Peripheral Interface)

Dies ist die gängigste Schnittstelle für kleine Displays (1,5″ bis 3,5″). Diese Displays sitzen direkt auf dem 40-poligen GPIO-Header.

  • Die Realität: SPI ist ein serielles Protokoll. Es sendet Pixeldaten bitweise. Es ist von Natur aus langsam.
  • Anwendungsfall: Perfekt für statische Benutzeroberflächen, Sensoranzeigen oder textlastige Dashboards.
  • Einschränkungen: Erwarten Sie nicht, 60-FPS-Videos auf einem SPI-Bildschirm abzuspielen. Sie sind physikalisch durch die SPI-Busgeschwindigkeit begrenzt (typischerweise auf etwa 32 MHz bis 48 MHz gedeckelt), was maximal 15 bis 25 FPS auf einem 320×480-Auflösungsbildschirm ergibt. Eine hohe CPU-Auslastung ist erforderlich, um die Pixel zu übertragen.

B. Das MIPI-DSI-Interface (Display Serial Interface)

Dies nutzt den dedizierten Flachbandkabelanschluss auf der Raspberry-Pi-Platine (bei Pi-5-Modellen mit “DISPLAY” oder “MIPI” beschriftet).

  • Die Realität: DSI ist ein schnelles, differenzielles Signalinterface, das direkt auf die Broadcom-GPU des Raspberry Pi zugreift.
  • Anwendungsfall: Die absolut beste Option für flüssige Benutzeroberflächen, Videowiedergabe und komplexe Grafiken. Es entlastet die CPU vollständig und lässt Ihre GPIO-Pins für andere Sensoren frei.
  • Einschränkungen: DSI-Displays sind typischerweise auf offizielle Raspberry-Pi-Bildschirme oder spezielle Drittanbietermodelle mit benutzerdefinierten Bridge-Chips beschränkt.

C. Das DPI-Interface (Display Parallel Interface)

DPI nutzt fast alle GPIO-Pins (bis zu 24 Pins für RGB888-Farbe plus Synchronisationssignale), um ein direktes LCD-Panel anzusteuern.

  • Die Realität: Es bietet HDMI-ähnliche Geschwindigkeiten und keine CPU-Auslastung, ohne den sperrigen HDMI-Port zu verwenden.
  • Anwendungsfall: Für maßgefertigte Arcade-Automaten oder Industrieanwendungen, bei denen der HDMI-Port blockiert ist oder für einen zweiten Bildschirm benötigt wird.
  • Einschränkungen: Sie verlieren fast alle Ihre GPIO-Pins. Sie können nicht einfach I2C-Sensoren oder SPI-Tasten hinzufügen.

D. Die HDMI-/USB-Kombination

Große TFT-LCD-Raspberry-Pi-Bildschirme (5 Zoll bis 10 Zoll) verwenden oft Standard-HDMI für das Displaysignal und ein USB-Kabel für die Touch-Oberfläche.

  • Die Realität: Plug-and-Play-Einfachheit. Der Pi behandelt ihn wie einen Standard-Desktop-Monitor.
  • Einschränkungen: Sperrige Verkabelung. Es ist schwierig, sie sauber in ein schlankes, maßgeschneidertes Produktgehäuse zu integrieren.

Für diesen praktischen Leitfaden konzentrieren wir uns auf die berüchtigt schwierigste Integration: den SPI-basierten GPIO-Display,, da er das tiefste Verständnis des Linux-Kernels erfordert.


2. Hardwaremontage: Verdrahtung des SPI-Displays

Wenn Ihr SPI-Display nicht direkt als “HAT” (Hardware Attached on Top) auf den GPIO-Header aufgesteckt wird, müssen Sie es manuell verkabeln.

Die goldene Regel der Hardware

Schließen Sie niemals ein Display an, während der Raspberry Pi eingeschaltet ist. Hot-Plugging von GPIO-Pins kann einen Spannungsspitze verursachen, die sofort den LCD-Treiber-IC zerstört oder, schlimmer noch, den Broadcom-SoC des Raspberry Pi durchbrennen lässt.

Die SPI-Pinbelegung im Detail

Um einen standardmäßigen SPI-TFT-LCD-Raspberry-Pi-Bildschirm zum Laufen zu bringen, müssen Sie die Stromversorgung, den SPI-Bus (MOSI, SCLK, CE) und die Steuerpins (DC, Reset) anschließen.

Hier ist die standardmäßige Zuordnung, die Sie mit Female-to-Female-Jumper-Kabeln durchführen müssen:

Display-PinFunktionRaspberry Pi Physischer PinRaspberry Pi BCM GPIO
VCC/5VStromversorgungPin 2 oder 45V Stromversorgung
GNDMassePin 6 (oder beliebiger GND)Masse
MOSI (SDI)Daten zum BildschirmPin 19GPIO 10 (SPI0_MOSI)
SCLK (SCK)SPI-TaktPin 23GPIO 11 (SPI0_SCLK)
CS / CE0Chip-SelectPin 24GPIO 8 (SPI0_CE0)
DC / RSDaten/BefehlPin 22 (Häufiger Standard)GPIO 25
RST / RESResetPin 18 (Häufiger Standard)GPIO 24
BLK / LEDHintergrundbeleuchtungPin 12 (PWM) oder 3,3VGPIO 18 (PWM0)

Technischer Hinweis: Die DC (Daten/Befehl) Pin ist entscheidend. SPI sendet nur Einsen und Nullen. Der Display-Controller (wie der ILI9341) muss wissen, ob diese Einsen und Nullen Pixelfarbdaten oder Systembefehle sind (wie “Bildschirm einschalten”). Der DC-Pin schaltet auf High oder Low, um dem Controller mitzuteilen, wie er die eingehenden SPI-Daten interpretieren soll.


3. Kernel-Konfiguration: Das Device Tree Overlay

Sie haben den Bildschirm verkabelt. Sie schalten den Pi ein. Der Bildschirm leuchtet, ist aber rein weiß. Dies ist der Weiße Bildschirm des Todes. Das bedeutet, die Hintergrundbeleuchtung hat Strom, aber der Raspberry Pi Kernel weiß nichts von der Existenz des Bildschirms, daher sendet er keine Pixeldaten.

Wir müssen dem Linux-Kernel mitteilen, wie er mit dem Bildschirm kommunizieren soll. Im modernen Raspberry Pi OS (Bookworm und später) geschieht dies über Device Tree Overlays (dtoverlay).

Schritt 3.1: SPI-Bus aktivieren

Zuerst müssen Sie die SPI-Hardware auf dem Pi freischalten.

  1. SSH in Ihren Raspberry Pi.
  2. Führen Sie das Konfigurationstool aus:Bashsudo raspi-config
  3. Navigieren Sie zu Schnittstellen-Optionen -> SPI -> Wählen Sie Ja zum Aktivieren.
  4. Starten Sie den Pi neu.

Schritt 3.2: Identifizieren Sie Ihren Display-Controller (Der Treiber)

TFT-LCD-Panels sind dummes Glas. Sie werden von einem Mikrochip angetrieben, der auf die Rückseite des Glases (oder auf die Leiterplatte) geklebt ist. Die häufigsten Controller auf den europäischen/US-amerikanischen Maker-Märkten sind:

  • ILI9341 (Sehr verbreitet bei 2,4″ bis 2,8″ Bildschirmen)
  • ST7789 (Verbreitet bei 1,3″ bis 2,0″ IPS-Bildschirmen)
  • ILI9486 (Verbreitet bei 3,5″ Bildschirmen)

Sie müssen müssen wissen, welchen Controller Ihr Bildschirm verwendet. Prüfen Sie das Datenblatt des Herstellers.

Schritt 3.3: Bearbeiten Sie config.txt

Im modernen Raspberry Pi OS hat sich die Boot-Konfigurationsdatei verschoben.

Öffnen Sie sie mit dem Nano-Texteditor:

Bash

sudo nano /boot/firmware/config.txt

(Hinweis: Bei älteren Bullseye-OS-Versionen ist der Pfad nur /boot/config.txt)

Scrollen Sie zum Ende der Datei und fügen Sie das spezifische Overlay für Ihren Treiber hinzu. Zum Beispiel, wenn Sie ein ILI9341 Bildschirm genau wie in der obigen Tabelle verkabelt haben:

Ini, TOML

# SPI aktivieren

Für ein ST7789 Display (häufig in Adafruit PiTFTs verwendet):

Ini, TOML

dtoverlay=adafruit-st7789v-hAT,fps=30

Speichern Sie die Datei (Strg+O, Eingabe) und beenden Sie (Strg+X).

Starten Sie den Raspberry Pi neu: sudo reboot.

Bei korrekter Konfiguration wird der weiße Bildschirm während des Bootvorgangs schwarz und Sie werden schließlich den Linux-Konsolentext sehen, der über den kleinen Bildschirm läuft.


4. Moderne Grafikarchitekturen: FBCP vs. DRM/KMS

Hier führen viele Tutorials aus dem Jahr 2020 in die Irre.

Früher, wenn Sie Ihren Haupt-HDMI-Desktop auf ein kleines SPI-TFT-LCD-Raspberry-Pi-Display spiegeln wollten, verwendeten Sie ein Tool namens fbcp (Framebuffer-Kopie). Es erstellte eine Momentaufnahme des primären GPU-Framebuffers (fb0) und kopierte ihn aggressiv in den Framebuffer des SPI-Bildschirms (fb1).

Der Wayland-Realitätscheck

Beginnend mit Raspberry Pi OS Bookworm wurden das X11-Fenstersystem und die veraltete Framebuffer-Architektur aufgegeben. Der Pi verwendet nun Wayland (insbesondere den Wayfire-Compositor) und die DRM/KMS (Direct Rendering Manager / Kernel Mode Setting)-Architektur.

fbcp funktioniert nicht mehr auf modernem Raspberry Pi OS.

So steuern Sie die Benutzeroberfläche heute an:

Wenn Sie eine industrielle HMI oder ein kundenspezifisches Gerät entwickeln, sollten Sie ohnehin nicht versuchen, eine vollständige Desktop-GUI auf einem 3,5-Zoll-Bildschirm auszuführen. Stattdessen sollten Sie eine Anwendung schreiben, die unter Verwendung hardwarebeschleunigter Bibliotheken direkt auf die DRM/KMS-Schicht rendert.

Der professionelle Stack:

  • LVGL (Light and Versatile Graphics Library): Eine Open-Source-C-Bibliothek, die direkt in das Linux-DRM-Subsystem schreibt. Sie ist unglaublich ressourcenschonend und perfekt für SPI-Bildschirme.
  • Qt / PyQt: Sie können Qt-Anwendungen so konfigurieren, dass sie die eglfs oder linuxfb -Plugins verwenden, wodurch der Wayland-Desktop vollständig umgangen wird und Ihre UI direkt auf das TFT-LCD gezeichnet wird.
  • Kiosk-Modus: Wenn Sie unbedingt Web-Technologien (HTML/CSS/JS) verwenden müssen, können Sie Wayfire so konfigurieren, dass es direkt in einen Vollbild-Chromium-Browser startet, der auf einen lokalen Node.js-Server zeigt.

5. Kalibrierung der Touch-Schnittstelle

Wenn Ihr TFT-LCD-Raspberry-Pi eine Touch-Overlay-Folie hat, ist es nur die halbe Miete, das Bild auf dem Bildschirm anzuzeigen. Nun müssen Sie sicherstellen, dass der Mauszeiger tatsächlich in die obere linke Ecke geht, wenn Sie darauf tippen.

Resistiver vs. kapazitiver Touch

  • Resistiv (XPT2046-Controller): Erfordert Druck. Sehr verbreitet bei günstigen 3,5"-SPI-Bildschirmen. Erfordert intensive Kalibrierung, da der analoge Widerstand je nach Temperatur und Fertigungslos variiert.
  • Kapazitiv (FT6236 / Goodix-Controller): Wie ein Smartphone. Erfordert in der Regel keine Kalibrierung, da das Raster werkseitig digital auf die Pixel abgebildet wird. Verwendet den I2C-Bus anstelle von SPI.

Kalibrierung eines XPT2046-resistiven Bildschirms unter Wayland/Libinput

Da X11 tot ist, ist das alte xinput_calibrator -Tool obsolet. Heute werden Touchscreens von libinput und udev -Regeln verwaltet.

  1. Stellen Sie zunächst sicher, dass der Touch-Treiber in /boot/firmware/config.txtgeladen ist:Ini, TOMLdtoverlay=ads7846,cs=1,penirq=17,penirq_pull=2,speed=1000000,keep_vref_on=1
  2. Starten Sie neu und installieren Sie das libinput-Kalibrierungstool:Bashsudo apt install weston
  3. Wayfire (der Standard-Compositor) verwendet eine spezifische Konfigurationsdatei für Eingabegeräte. Sie müssen die Wayfire-Konfiguration bearbeiten, um die Touch-Matrix korrekt abzubilden. Öffnen Sie ~/.config/wayfire.ini und suchen Sie den Abschnitt [input] . Sie müssen eine Kalibrierungsmatrix hinzufügen.(Hinweis: Die genaue Matrix hängt davon ab, ob Ihr Bildschirm im Quer- oder Hochformat ist. Eine Standard-Identitätsmatrix ist 1 0 0 0 1 0.)

Wenn Ihre Touch-Achsen invertiert sind (das Bewegen des Fingers nach oben bewegt die Maus nach unten), müssen Sie die Matrixwerte umkehren. Um beispielsweise die Y-Achse zu invertieren, würden Sie in Ihrer Udev-Regel oder Wayfire-Konfigurationsmatrix den Y-Skalierungsmultiplikator auf einen negativen Wert ändern.


6. Übertakten des SPI-Busses (Auf der Jagd nach Bildern)

Wenn sich Ihre Benutzeroberfläche träge anfühlt, können Sie versuchen, den SPI-Bus zu übertakten, um ein paar Bilder pro Sekunde mehr aus dem TFT-LCD-Raspberry-Pi herauszuholen.

Öffnen Sie /boot/firmware/config.txt und suchen Sie Ihre Treiber-Overlay-Zeile. Fügen Sie den Parameter Geschwindigkeit (in Hz gemessen) hinzu.

Ini, TOML

dtoverlay=rpi-display,speed=48000000

Dies fordert einen 48 MHz SPI-Takt an.

Warnung: Der SPI-Kerntakt des Raspberry Pi arbeitet mit einem Teilersystem. Wenn Sie 48 MHz anfordern, erhalten Sie diese wahrscheinlich. Wenn Sie 60 MHz anfordern, teilt der Pi möglicherweise seinen Kerntakt und reduziert ihn stattdessen auf 31 MHz, was ihn langsamer macht. Wenn Sie die Geschwindigkeit zu hoch treiben (z.B. 80000000), wirken die physischen Jumper-Kabel zudem als Antennen und verursachen elektromagnetische Interferenz (EMI), die die Daten beschädigt, was zu einem Bildschirm voller statischem “Schnee” oder invertierten Farben führt. Halten Sie Ihre Kabel so kurz wie physisch möglich (unter 10 cm), wenn Sie die SPI-Geschwindigkeit erhöhen möchten.


Fazit: Der technische Ertrag

Das Einrichten eines TFT-LCD-Raspberry-Pi ist selten eine Plug-and-Play-Erfahrung. Es erfordert fundierte Kenntnisse in seriellen Protokollen, Linux-Kernel-Overlays und Display-Rendering-Architekturen. Die Beherrschung dieses Prozesses ist jedoch eine entscheidende Fähigkeit für jeden Hardware-Entwickler.

Indem Sie klobige HDMI-Monitore umgehen und ein SPI- oder DSI-Display nativ ansteuern, erschließen Sie sich die Möglichkeit, hochintegrierte, professionelle Hardware-Prototypen zu entwerfen. Ob Sie ein industrielles Telemetrie-Dashboard oder einen maßgeschneiderten digitalen Audio-Player bauen – dieses leuchtende Stück Glas verwandelt Ihren unsichtbaren Code in ein greifbares, interaktives Produkt.


Häufig gestellte Fragen (FAQ)

F1: Warum ist mein SPI-Display beim Booten des Pi komplett weiß?

A: Dies ist das häufigste Problem. Ein weißer Bildschirm bedeutet, dass die Hintergrundbeleuchtung mit 3,3 V oder 5 V versorgt wird, aber der Display-Controller-IC empfängt keine Daten.

  1. Überprüfen Sie die Verkabelung: Überprüfen Sie die MOSI-, SCLK- und insbesondere die CS- (Chip Select) und DC- (Data/Command) Pins.
  2. Konfiguration prüfen: Sicherstellen dtparam=spi=on ist in Ihrem /boot/firmware/config.txt.
  3. Treiber prüfen: Stellen Sie sicher, dass Sie den korrekten dtoverlay für Ihren spezifischen Controller-Chip des Bildschirms laden (z.B. ILI9341 vs. ST7789).

Q2: Kann ich eine Standard-Desktop-GUI (wie Chromium oder VLC) auf einem 3,5-Zoll-SPI-Bildschirm ausführen?

A: Theoretisch ja, praktisch nein. Der SPI-Bus verfügt einfach nicht über die nötige Bandbreite, um 320×480 Pixel mit 60 Bildern pro Sekunde zu übertragen. Die Videowiedergabe führt zu starkem Bildschirmflimmern, und die Desktop-Oberfläche wird sich extrem träge anfühlen. Für Desktop-Umgebungen oder Videos müssen Sie einen MIPI-DSI- oder HDMI-Bildschirm verwenden. SPI-Bildschirme sind für einfache, statische GUIs, Schaltflächen und Textanzeigen gedacht.

Q3: Meine Touchscreen-Klicks werden erkannt, aber der Mauszeiger bewegt sich zur gegenüberliegenden Seite des Bildschirms. Wie behebe ich das?

A: Ihre Touch-Achsen sind im Verhältnis zu Ihren Bildschirmachsen invertiert. Dies passiert, wenn Sie den Bildschirm in der Software drehen (z.B., display_lcd_rotate=2), aber die Touch-Matrix nicht anpassen. Sie müssen eine Transformationsmatrix über udev Regeln oder innerhalb Ihrer Wayfire-/X11-Konfiguration anwenden, um die X- und Y-Achsen zu vertauschen oder zu invertieren.

Q4: Überlastet ein zusätzlicher LCD-Bildschirm die Stromversorgung meines Raspberry Pi?

A: Das kann passieren, abhängig vom Pi-Modell und der Bildschirmgröße. Ein Raspberry Pi 4 oder 5 benötigt eine robuste 5,1V / 3A bis 5A Stromversorgung. Ein 3,5-Zoll-SPI-Bildschirm zieht etwa 100mA bis 150mA für seine LED-Hintergrundbeleuchtung, was die 5V-GPIO-Pins sicher bewältigen können. Ein 7-Zoll- oder 10-Zoll-Bildschirm kann jedoch 500mA bis 1A verbrauchen. Für Bildschirme größer als 5 Zoll sollten Sie den Bildschirm über eine externe, dedizierte USB-Stromversorgung betreiben, nicht über die GPIO-Pins des Pi, um eine Spannungsabsenkung (angezeigt durch das gelbe Blitzsymbol) zu vermeiden.

Q5: Ich möchte ein kommerzielles Produkt mit einem Raspberry Pi Compute Module entwickeln. Sollte ich SPI verwenden?

A: Nein. Wenn Sie zu einem kommerziellen Produkt mit einem Compute Module 4 (CM4) oder CM5 übergehen, sollten Sie die MIPI-DSI-Leitungen verlegen oder die DPI- (Parallel-) Schnittstelle auf Ihrem individuellen Trägerboard nutzen. Dies entlastet die Anzeigewiedergabe von der Hardware-GPU, befreit die CPU für die Ausführung Ihrer eigentlichen Anwendungslogik und gewährleistet flüssige, professionelle 60-FPS-Animationen.