In den letzten Jahren hat sich die Methode zur Integration von SPI-basierten TFT-Displays wie dem ILI9341 in Raspberry Pi-Systeme weiterentwickelt. Früher wurden häufig benutzerdefinierte Kernel-Module und manuelle Konfigurationen verwendet, um diese Displays zum Laufen zu
In den letzten Jahren hat sich die Methode zur Integration von SPI-basierten TFT-Displays wie dem ILI9341 in Raspberry Pi-Systeme weiterentwickelt. Früher wurden häufig benutzerdefinierte Kernel-Module und manuelle Konfigurationen verwendet, um diese Displays zum Laufen zu bringen. Mit den aktuellen Raspberry Pi OS-Versionen und dem Device Tree Overlay-Mechanismus ist der Prozess jedoch deutlich vereinfacht worden.
Die Verkabelung aus einem älteren Artikel hier behält natürlich ihre Gültigkeit. Der Artikel zur alten Ansteuerung des ili9341 Displays ist hier zu lesen.
Aktuelle Methode zur Integration des ILI9341 Displays:
- Aktivierung des SPI-Interfaces: Stellen Sie sicher, dass das SPI-Interface auf Ihrem Raspberry Pi aktiviert ist. Dies kann über das
raspi-config
-Tool erfolgen:sudo raspi-config
Navigieren Sie zu Interfacing Options > SPI und aktivieren Sie das Interface. - Anpassung der
/boot/config.txt
: Öffnen Sie die Datei/boot/config.txt
oder /boot/firmware/config.txt mit einem Texteditor:sudo nano /boot/config.txt
odersudo nano /boot/firmware/config.txt
Fügen Sie am Ende der Datei die folgende Zeile hinzu, um das ILI9341-Display als Framebuffer-Gerät zu konfigurieren:
dtoverlay=fbtft,spi0-0,ili9341,rotate=270,speed=16000000,dc_pin=25,reset_pin=22,led_pin=24,framebuffer_width=320,framebuffer_height=240
Erläuterung der Parameter:
dtoverlay=fbtft: Dies lädt das Overlay für das fbtft (Framebuffer-Treiber für TFT-Displays), das erforderlich ist, um ein TFT-Display über das Framebuffer-System anzusprechen.
spi0-0: Gibt an, dass der SPI-Bus 0, Kanal 0, verwendet wird, um mit dem Display zu kommunizieren.
ili9341: Das ILI9341 ist der Controller des Displays, der hier spezifiziert wird, um dem System mitzuteilen, welches Display verwendet wird.
rotate=270: Gibt an, dass das Bild um 270 Grad gedreht wird, um das Display korrekt auszurichten (dies ist nützlich, wenn das Display im Hochformat verwendet wird).
speed=16000000: Die Übertragungsgeschwindigkeit für die SPI-Kommunikation wird auf 16 MHz gesetzt. Dies steuert die Geschwindigkeit, mit der Daten zwischen dem Raspberry Pi und dem Display übertragen werden.
dc_pin=25: Der Pin 25 wird als Data/Command-Pin für das Display verwendet, um zwischen Daten- und Steuerbefehlen zu unterscheiden.
reset_pin=22: Der Pin 22 wird verwendet, um das Display zurückzusetzen.
led_pin=24: Der Pin 24 steuert die Hintergrundbeleuchtung des Displays.
framebuffer_width=320: Setzt die Breite des Framebuffers auf 320 Pixel, passend zum Display.
framebuffer_height=240: Setzt die Höhe des Framebuffers auf 240 Pixel, ebenfalls passend zum Display.
3. Konfiguration der Kernel-Parameter: Um die Konsolenausgabe auf das Display zu leiten, bearbeiten Sie die Datei /boot/cmdline.txt
:
sudo nano /boot/cmdline.txt
oder
sudo nano /boot/firmware/cmdline.txt
sudo nano /boot/cmdline.txt
Fügen Sie am Ende der bestehenden Zeile (nicht in einer neuen Zeile) die folgenden Parameter hinzu:
fbcon=map:10 fbcon=font:VGA8x8
Dies weist das System an, die Konsole auf das neu hinzugefügte Framebuffer-Gerät zu spiegeln und eine lesbare Schriftart zu verwenden.
Einrichtung der grafischen Oberfläche (optional): Wenn Sie die grafische Benutzeroberfläche (X11) auf dem ILI9341-Display anzeigen möchten, erstellen Sie eine neue Konfigurationsdatei:
sudo nano /etc/X11/xorg.conf.d/99-fbdev.conf
Fügen Sie den folgenden Inhalt ein:
Section "Device"
Identifier "FBDEV"
Driver "fbdev"
Option "fbdev" "/dev/fb1"
EndSection
Section "Screen"
Identifier "Default Screen"
Device "FBDEV"
EndSection
Dies teilt dem X11-System mit, das Framebuffer-Gerät /dev/fb1
für die Anzeige zu verwenden.
Neustart: Starten Sie das System neu, damit die Änderungen wirksam werden:sudo reboot

Hinweis: Die genaue Verkabelung des Displays muss mit den in der /boot/config.txt
definierten GPIO-Pins übereinstimmen. Stellen Sie sicher, dass die Pins korrekt verbunden sind, um eine ordnungsgemäße Funktion zu gewährleisten.
Durch diese Schritte wird das ILI9341-Display als Framebuffer-Gerät eingerichtet, wodurch sowohl die Konsolenausgabe als auch eine grafische Oberfläche auf dem Display angezeigt werden können. Diese Methode nutzt die aktuellen Device Tree Overlays und erfordert keine manuellen Kernel-Modifikationen, was den Einrichtungsprozess erheblich vereinfacht.