Was der ILI9881C ist
Der ILI9881C ist ein Treiber von Ilitek für MIPI-DSI-TFT-Panels, typischerweise 720×1280- oder 800×1280-Panels im Hochformat. Er hat kein SPI- und kein RGB-Pixel-Interface: Befehle und Bilddaten werden beide über DSI übertragen. Ilitek veröffentlicht das Datenblatt nicht offen, daher ist die praktische Referenz der Mainline-Linux-Treiber, panel-ilitek-ili9881c.c, zusammen mit der Init-Tabelle Ihres Panel-Herstellers.
Ein Controller, viele Init-Tabellen
Der Linux-Treiber ist keine einzige Konfiguration. Er führt für jedes unterstützte Panel eine eigene Init-Tabelle, ein eigenes Display-Timing und eine eigene Lane-Anzahl mit. Zu den im Mainline-Kernel gelisteten Panels gehören:
- Raspberry Pi Touch Display 2, 5″ und 7″ (
raspberrypi,dsi-5inch,raspberrypi,dsi-7inch): 720×1280, 2 Data-Lanes. - Waveshare 7.0″ DSI Touch A: 2 Data-Lanes.
- Panels von Banana Pi, Startek, TDO, Feixin, Bestar, Wanchanglong und Ampire: 720×1280 oder 800×1280, je nach Panel mit 2 oder 4 Lanes.
Zwei Panels mit demselben Controller können dennoch unterschiedliche Init-Tabellen und Timings benötigen. Wenn Sie eine Init-Tabelle von einem anderen Board kopieren, kann der Bildschirm schwarz bleiben oder Streifen zeigen, obwohl die DSI-Verbindung steht. Beginnen Sie mit der Tabelle für Ihr exaktes Panel.
Mainline Linux hat einen ILI9881C-Treiber, aber keinen Eintrag für den ILI9881D. Behandeln Sie ein ILI9881D-Panel, wie unser PJ5015B14 (4,99″ 720×1280 IPS), so, als dass es seine eigene Init-Tabelle und sein eigenes Timing aus dem Panel-Datenblatt benötigt.
Einschaltsequenz im Linux-Treiber
Der Mainline-Treiber bringt ein Panel in dieser Reihenfolge hoch:
- IOVCC aktivieren, 5 ms warten, dann die Hauptversorgung aktivieren und 5 ms warten.
- Reset 20 ms lang anlegen, wieder freigeben, dann 20 ms warten.
- Die Init-Tabelle des Panels senden. Der ILI9881C verwendet Page-Switch-Befehle, um zu seinen herstellerspezifischen Registern zu gelangen.
- Zurück zu Page 0 wechseln, die Tearing-Effect-Ausgabe aktivieren und Exit Sleep senden.
- 120 ms warten, dann Display On senden.
Raspberry Pi: Touch Display 2
Die Dokumentation von Raspberry Pi bindet das Touch Display 2 mit diesen Overlays ein:
dtoverlay=vc4-kms-dsi-ili9881-5inchdtoverlay=vc4-kms-dsi-ili9881-7inch
Fügen Sie ,dsi0 hinzu, um den anderen DSI-Port zu verwenden. Sowohl das 5″- als auch das 7″-Modell ist ein 720×1280-Display mit Fünf-Punkt-Touch. Das 10″-Modell verwendet einen anderen Controller und ein anderes Overlay (vc4-kms-dsi-ili79600-10-1inch) und benötigt vier DSI-Lanes.
Ein individuelles ILI9881C- oder ILI9881D-Panel am Pi benötigt ein Device-Tree-Overlay, das auf einen passenden Panel-Eintrag verweist. Das Touch-Display-2-Overlay wiederverzuwenden funktioniert nur, wenn das Panel wirklich zu dieser Init-Tabelle und diesem Timing passt.
ESP32-P4 und das M5Stack Tab5
Der mipi_dsi-Treiber von ESPHome betreibt ILI9881C-Panels am ESP32-P4, mit 1 oder 2 Data-Lanes (Standard: 2). Das M5Stack Tab5 zeigt, wie fragil diese Wahl ist. ESPHome dokumentiert drei Hardware-Versionen:
- Hergestellt vor dem 14. Oktober 2025: ILI9881C als Display-Treiber mit einem separaten GT911-Touch-Controller. Verwenden Sie das Modell
M5STACK-TAB5. - Spätere Einheiten: ein integrierter Display-und-Touch-Controller, entweder ein ST7123 (
M5STACK-TAB5-ST7123) oder ein ST7121 (M5STACK-TAB5-ST7121).
Die drei Init-Sequenzen sind nicht austauschbar. Wählen Sie das falsche Display-Modell, bleibt der Bildschirm einfach dunkel und nichts Relevantes wird geloggt. Ein falscher Touch-Treiber erzeugt hingegen eine Fehlermeldung im Log, daher empfiehlt ESPHome, das Board zuerst über den Touch-Treiber zu identifizieren.
Checkliste für die Inbetriebnahme
- Lane-Anzahl und DSI-Modus (Video, Sync-Pulse oder Burst) aus dem Panel-Datenblatt bestätigen; die Einstellungen des Hosts müssen übereinstimmen.
- Die Init-Tabelle für Ihr exaktes Panel verwenden, nicht nur die für den Namen des Controllers.
- Reset- und Versorgungssequenz prüfen. Manche Boards steuern Reset oder Versorgung über einen IO-Expander.
- Hintergrundbeleuchtung an, aber kein Bild bedeutet in der Regel die falsche Init-Tabelle, die falsche Lane-Anzahl oder ein falsches DSI-Timing – nicht ein defektes Panel.
Zur Auswahl des Interfaces siehe MIPI DSI vs. LVDS vs. eDP und die MIPI-DSI-Interface-Seite.
Leitfäden & Vergleiche
ILI9881C: Fehlersuche & FAQ
Kann ich das Overlay des Raspberry Pi Touch Display 2 für ein anderes ILI9881C-Panel wiederverwenden?
Nur wenn das Panel dieser Init-Tabelle, diesem Timing und dem 2-Lane-Setup entspricht. Der Mainline-Linux-Treiber führt für jedes unterstützte Panel eine eigene Init-Tabelle, einen eigenen Modus und eine eigene Lane-Anzahl, sodass ein anderes ILI9881C-Panel in der Regel seinen eigenen Panel-Eintrag und ein eigenes Overlay benötigt.
Mein M5Stack-Tab5-Bildschirm bleibt in ESPHome dunkel. Welches Modell wähle ich?
ESPHome dokumentiert drei Tab5-Versionen: Einheiten, die vor dem 14. Oktober 2025 hergestellt wurden, verwenden den ILI9881C mit einem GT911-Touch-Controller (M5STACK-TAB5); spätere Einheiten verwenden einen ST7123 (M5STACK-TAB5-ST7123) oder ST7121 (M5STACK-TAB5-ST7121). Ein falsches Display-Modell schlägt still fehl, während ein falscher Touch-Treiber eine Fehlermeldung loggt – identifizieren Sie das Board daher zuerst über den Touch-Treiber.
Ist der ILI9881D derselbe wie der ILI9881C?
Gehen Sie nicht davon aus. Der Mainline-Linux-Kernel enthält einen ILI9881C-Treiber, aber keinen Eintrag für den ILI9881D; ein ILI9881D-Panel benötigt daher seine eigene Init-Tabelle und sein Timing aus dem Panel-Datenblatt.
Wie viele DSI-Lanes verwendet ein ILI9881C-Panel?
Das hängt vom Panel ab. Im Mainline-Linux-Treiber verwenden die Einträge für das Raspberry Pi 5″/7″ und Waveshare 7″ 2 Lanes, während mehrere 720×1280- und 800×1280-Panels 4 verwenden. Passen Sie die Host-Konfiguration an das Datenblatt Ihres Panels an.