Teil 4: Display-Treiber und Einrichtung
Verschiedene Möglichkeiten, auf ein TFT-Display auf einem Raspberry zuzugreifen
HDMI- oder Mini-HDMI-Anschluss für das Display Die Einrichtung des Displays war etwas komplizierter, um es zum Laufen zu bringen. In Linux gibt es mehrere Möglichkeiten, ein TFT-Display an einen Raspberry Pi anzuschließen. Zunächst gibt es den standardmäßigen HDMI-Anschluss am Raspberry Pi oder den Mini-HDMI-Anschluss am Raspberry Pi Zero 2W. Diese Methode ist recht unkompliziert und zeigt die standardmäßige Systemoberfläche ohne Einrichtung oder Treiber auf dem Bildschirm an. Es ist wahrscheinlich der bequemste Weg, um Ihr Betriebssystem, Software, Anwendungen und Daten zu visualisieren. Diese Displays sind die tatsächlichen “Framebuffer”-Geräte und unter Linux sind sie im /dev-Baum als /dev/fb0, /dev/fb1 usw. sichtbar und zugänglich. Die Standard-Raspberry Pi /boot/config.txt beschränkt dies auf maximal 2 Framebuffer-Geräte.
TFT-Displays, die über den SPI-Bus mit eigenem Treiber verbunden sind Dann gibt es den SPI-Bus am Raspberry Pi, der über den gelöteten 40-poligen GPIO-Header zugänglich ist. Diese Displays können mit ihrem eigenen Treibercode zugegriffen werden und sind in der Lage, Funktionen durch den Treibercode auszuführen. Wenn eine Funktion definiert ist, können Sie sie verwenden. Die Hauptfunktionen sind meistens etwas wie das Anzeigen von Bildern, das Schreiben von Text, das Zeichnen von Linien, Polygonen und Kreisen sowie operationelle Funktionen wie das Initialisieren des Displays, das Einstellen der Helligkeit der Hintergrundbeleuchtung oder das Löschen des Displays.
Dieser Ansatz ist voll funktionsfähig, und meine Temperatur-Terminals benötigen tatsächlich nicht mehr. Sie müssen jedoch Ihren eigenen Code schreiben, um die gesammelten Werte aus der Datenbank auf dem winzigen TFT-Display anzuzeigen. Ich werde diesen Teil später in diesem Handbuch behandeln, wenn ich das ST7789V 2-Zoll-TFT-Display anschließe, da ich Schwierigkeiten hatte, dieses spezielle Display im Framebuffer-Modus zu betreiben – es war gespiegelt, und das war im st7789v-Treiber selbst fest codiert. Den Treiber neu zu schreiben wäre zu viel Arbeit gewesen 🙂
Im Allgemeinen zeigen diese Displays keine Konsole oder eine grafische Desktop-Umgebung an. Außerdem gibt es auch Framebuffer-Kopiercode, aber das ist für dieses Handbuch viel zu kompliziert.
TFT-Display, das über den SPI-Bus als Framebuffer-Geräte mit Overlay-Dateien in der /boot/config.txt verbunden ist Mit dem ILI9341-Display hatte ich ursprünglich vor, den Framebuffer-Ansatz zu verwenden, weil es mir nicht gelungen ist, das ST7789V-Display als Framebuffer-Gerät zu verwenden, und die winzigen TFTs sind die einzigen Displays an den Temperatur-Terminals. Sie finden zahlreiche ILI9341-Overlay- oder Verbindungsinstruktionen im Internet. Leider hat keines davon gut für mich funktioniert, und es hat eine Weile gedauert, bis ich einen GitHub-Eintrag mit einem Link zu einer Overlay-Datei gefunden habe, die ich erfolgreich verwendet habe. Ich habe auch den Verkabelungsanweisungen auf dieser Seite gefolgt, da all diese Anschlüsse noch verfügbar waren und nicht von meinen anderen Sensoren auf dem GPIO-Header belegt waren.
2.8inch SPI Module ILI9341 SKU:MSP2807 Link zur GitHub-Seite von rusconi hier: https://github.com/rusconi/Raspberry-Pi-TFT-FB1-HowTo
Beachten Sie, dass der MISO-Pin in dieser Beschreibung nicht erwähnt wird, aber das Anschließen des MISO-Pins des TFT-Panels an den physischen Pin 21 des RPi – GPIO 11 – hat bei mir funktioniert.
Lesen Sie die vollständige Display-Verkabelung hier: https://www.wetransco.de/rapsberry-zero-2w-bme68x-ds18b20-ili9341-tft-hardware-setup/
Das eigentliche LCD-show.git mit der Overlay-Datei für das ili9341 kann hier heruntergeladen und wie folgt installiert werden:
git clone https://github.com/goodtft/LCD-show.git
cd LCD-show/
sudo cp ./usr/tft9341-overlay.dtb /boot/overlays/tft9341.dtbo
Sie müssen Ihre /boot/config.txt-Datei aktualisieren, um die Overlay-Datei tft9341.dtbo beim Booten zu laden:
sudo nano /boot/config.txt
Und fügen Sie diese Zeilen am Ende hinzu:
dtparam=spi=on
dtoverlay=tft9341:rotate=270
gpio=13=op,dh
Nachdem Sie Ihre /boot/config.txt mit STRG+O, STRG+X gespeichert haben, starten Sie Ihren Raspberry neu, und Sie sollten ein Framebuffer-Gerät in Ihrem /dev-Ordner sehen können:
ls /dev/fb*
Wenn Sie diese beiden Zeilen am Ende der Zeile in /boot/cmdline.txt hinzufügen:
fbcon=map:10 fbcon=font:VGA8x8
können Sie auch den Konsolen-Login nach einem Neustart sehen, der auf Ihrem Display erscheint.
Sie können jetzt auch einen Bildschirm im X11-System konfigurieren, indem Sie Ihre Konfiguration bearbeiten:
nano /etc/X11/xorg.conf.d/99-fbdev.conf
Kopieren und fügen Sie die folgenden Zeilen ein und speichern Sie die Datei erneut:
Section "Device"
Identifier "FBDEV"
Driver "fbdev"
Option "fbdev" "/dev/fb1"
EndSection
Section "Screen"
Identifier "Default Screen"
Device "FBDEV"
EndSection
Von dort aus können Sie auch eine grafische Desktop-Umgebung starten, indem Sie sich anmelden und eingeben:
FRAMEBUFFER=/dev/fb1 startx