Forum

Einloggen | Registrieren | RSS  

R(R)

03.02.2026,
08:15
 

ST7735 TFT Display Pinbezeichnungen (Elektronik)

Hallo!

Ich versuche, das 1,8 Zoll SPI-TFT-Display von az-Delivery (siehe: https://www.az-delivery.de/blogs/azdelivery-blog-fur-arduino-und-raspberry-pi/tft-farbdisplays-teil-1-grafik-und-einfacher-text ) zu verstehen. Es hat einen ST7735-Controller. Ich versuche, das Modul an einem ESP32-D0WD-V3 zum Laufen zu kriegen. Das Problem sind die Pin-Bezeichnungen.

Wenn man das Display-Modul so hochkant hält wie auf dem Foto auf oben verlinkter Webseite zu sehen, dann stehen auf meiner Platine für die untere Pinreihe (die obere ist unbelegt bzw.für seinen SD-Reader) folgende Bezeichnungen, von links nach rechts:

VCC, GND, CS, RESET, A0, SDA, SCK, LED

Das verlinkte Tutorial spricht aber von:

VCC, GND, CS, RES, RS, SDA, SCK, LED

Soweit kann ich das ja noch nachvollziehen, dass RESET=RES und A0=RS meint. Nehme ich mal die Versorgungspins weg, bleiben noch:

CS, RESET/RES, A0/RS, SDA, SCK

Das Problem beginnt dort, wo in den TFT-eSPI-Bibliothek für die Arduino-IDE die Konstanten für die Pins definiert sind. Erstmal stimmt die Anzahl nicht überein. Auf meiner Displayplatine habe ich 5 Signale, in der User_Setup.h aus der TFT_eSPI-Bibliothek gibt es 6 Konstanten für Pin-Zuweisung, die wie folgt benannt sind:

MISO, MOSI, SCLK, CS, DC, RST

Die spannende Frage ist nun, was ist was? Denn ich muss ja die Pin-Zuweisung im Quelltext richtig machen können. Bisher sehe ich auf dem Display nämlich nur bunten Ameisenkrieg. Immerhin bewegt er sich und zeigt nicht nur statisches Memory-Rauschen. Testweise war meine Zuweisung so:

MISO = A0/RS
MOSI = SDA
SCLK = SCK
CS = CS
DC = ? (offen)
RST = RESET/RES

Das ist aber ganz offensichtlich verkehrt. Und weil es noch nicht verwirrend genug ist, habe ich es anstelle der TFT-eSPI-Bibliothek mit der Adafruit ST7735-Bibliothek versucht. Da drin sind ganz und gar nur drei Signalpins definiert:

CS, RST, DC

Nu steh ich da, ich armer Tor und bin so klug als wie zuvor... Vielleicht kann mir ja hier jemand helfen.

Danke und Grüße
- R -

xy(R)

E-Mail

03.02.2026,
10:24

@ R

ST7735 TFT Display Pinbezeichnungen

Der ST7735 kann einige µC-Interfaces: Parallel (versch), I2C, sowie SPI.

Welche sind jetzt bei *genau* deinem Display vorhanden?

Eierschale(R)

03.02.2026,
12:32

@ R

ST7735 TFT Display Pinbezeichnungen

»
» Nu steh ich da, ich armer Tor und bin so klug als wie zuvor... Vielleicht
» kann mir ja hier jemand helfen.
»

Seite 10 des ebook

https://www.az-delivery.de/products/1-8-zoll-tft-display-kostenfreies-e-book


grindstone(R)

E-Mail

Ruhrpott,
03.02.2026,
13:10
(editiert von grindstone
am 03.02.2026 um 13:48)


@ R

ST7735 TFT Display Pinbezeichnungen

Hast du in der User_Setup.h den richtigen Treiber ausgewählt

#define ST7735_DRIVER

und die Konstanten

#define TFT_WIDTH

und

#define TFT_HEIGHT

auf die richtigen Werte gesetzt? Weiter unten kannst du auch die Pinbelegung definieren (bzw. nachlesen):

// For ESP32 Dev board (only tested with ILI9341 display)
// The hardware SPI can be mapped to any pins

//#define TFT_MISO 19
//#define TFT_MOSI 23
//#define TFT_SCLK 18
//#define TFT_CS 15 // Chip select control pin
//#define TFT_DC 2 // Data Command control pin
//#define TFT_RST 4 // Reset pin (could connect to RST pin)
//#define TFT_RST -1 // Set TFT_RST to -1 if display RESET is connected to ESP32 board RST

Probleme kann auch eine zu hoch eingestellte

#define SPI_FREQUENCY

machen.

---
PS.: Ich rede hier von der TFT_eSPI-Bibliothek.

Und noch ein Link:
https://cdn.shopify.com/s/files/1/1509/1638/files/1_8_Zoll_SPI_TFT-Display_Pinout.pdf?13085146850114863909

--
Es ist unter der Würde eines Technikers, die Gebrauchsanweisung zu lesen!

R(R)

03.02.2026,
13:42

@ Eierschale

ST7735 TFT Display Pinbezeichnungen

Das Problem az-Delivery ist, dass die sich hauptsächlich mit Arduino befassen. Dein Screenshot ist auch ein Arduino Uno glaub ich. Dafür haben sie viele DAU-kompatible Beispielsketches für die Arduino-IDE. Da sagen sie aber nur sinngemäß "Du musst Pin 1 vom Display mit Pin 9 vom Arduino verdrahten und Konstante 'XYZ=15' setzen, dann funktioniert das". Auf unterschiedliche Signalbezeichnungen in den verschiedenen Bibliotheken gehen sie nicht ein.

Beim ESP32 ist man viel flexibler, da gibts keine dedizierten SPI- oder I2C-Pins. Du kannst da beinahe jeden Pin zu jedem Port umkonfigurieren. Beim Raspi ist es glaub ich auch so. Das Problem ist aber eine Ebene tiefer, dass du wissen musst welches Signal an welchen Pin soll. Und wenn die Signale unterschiedlich bezeichnet sind, braucht man eine Zuordnungstabelle.

Ich habe bei Youtube ein Video gefunden, das mir weitergeholfen hat: https://www.youtube.com/watch?v=-MZiGH_3C2M

Daraus hat sich folgende Zuordnungstabelle ergeben:

TFT <-- ESP32-TFT-eSPI
======================
SCK = SCK
SDA = MOSI
A0 = MISO/DC
RESET = RST
CS = CS/SS

Wenn ich diese fünf auf freie IO-Pins verdrahte und dann im Sketch entsprechend zuordne, bekomme ich auch ein Bild aufs Display. Das Hauptproblem in meinem Fall ist wohl, dass die Bezeichnungen "SDA" und "SCL" die auf der Displayplatine aufgedruckt sind, eigentlich typische I2C-Bezeichnungen sind. Der ST7735-Controller hat wohl auch I2C *und* SPI. Physisch rausgeführt ist aber nur SPI. Bei so nem Chinagelump hat man wohl immer wieder solchen Ärger... :-D

grindstone(R)

E-Mail

Ruhrpott,
03.02.2026,
14:06
(editiert von grindstone
am 03.02.2026 um 14:37)


@ R

ST7735 TFT Display Pinbezeichnungen

» Das Hauptproblem in meinem Fall ist wohl, dass die Bezeichnungen "SDA" und "SCL" die auf der Displayplatine aufgedruckt sind, eigentlich typische I2C-Bezeichnungen sind.

Eigentlich nicht. SDA steht für "SPI data" und SCL (oder auch SCK) für "SPI clock". I2C wäre für eine solche Displayanwendung auch *viel* zu langsam. Die Verwirrung entsteht hier eher dadurch, dass der SPI-Port eigentlich bidirektional ist und 3 Leitungen hat (SCLK, MOSI und MISO), was bei einem Display aber wenig Sinn machen würde. Hier findet die Datenübertragung nur in eine Richtung vom µC zum Display statt (MOSI = Master out / Slave in). Und so wird das Display ja auch angeschlossen.

» Bei so nem Chinagelump hat man wohl
» immer wieder solchen Ärger... :-D

Aber letztlich hast du es ja doch noch zum Laufen gebracht. :ok:

--
Es ist unter der Würde eines Technikers, die Gebrauchsanweisung zu lesen!

R(R)

03.02.2026,
15:01

@ grindstone

ST7735 TFT Display Pinbezeichnungen

» » Das Hauptproblem in meinem Fall ist wohl, dass die Bezeichnungen "SDA"
» und "SCL" die auf der Displayplatine aufgedruckt sind, eigentlich typische
» I2C-Bezeichnungen sind.
»
» Eigentlich nicht. SDA steht für "SPI data" und SCL (oder auch SCK) für
» "SPI clock". I2C wäre für eine solche Displayanwendung auch *viel* zu
» langsam. Die Verwirrung entsteht hier eher dadurch, dass der SPI-Port
» eigentlich bidirektional ist und 3 Leitungen hat (SCLK, MOSI und MISO), was
» bei einem Display aber wenig Sinn machen würde. Hier findet die
» Datenübertragung nur in eine Richtung vom µC zum Display statt (MOSI =
» Master out / Slave in). Und so wird das Display ja auch angeschlossen.

Ich will gar nicht bestreiten dass ich noch nicht soo viel Erfahrung mit SPI habe. :-D Bei solchen Projektchen lernt man ja auch wieder was dazu und nächstes Mal stolpert man dann nicht mehr über differierende Bezeichnungen. Es hätte aber auch nicht geschadet wenn sich die Erfinder des Ganzen nicht ganz so verschiedene Bezeichnungen hätten einfallen lassen ;-) Ich schreib dann eben meine Erfahrungen auch hier auf, vielleicht hilfts ja mal wem anders.

grindstone(R)

E-Mail

Ruhrpott,
03.02.2026,
16:06

@ R

ST7735 TFT Display Pinbezeichnungen

Tröste dich: Ich habe 4 Tage gebraucht, um mein erstes Display zur Zusammenarbeit zu überreden (joy-it RB-TFT1.8 an einem RPi pico). Die TFT_eSPI-Bibliothek ist eine super Sache, durch ihren Umfang aber auch recht unübersichtlich, da muss man sich erst einmal einarbeiten.

» Ich schreib dann eben meine Erfahrungen auch hier auf, vielleicht hilfts ja mal wem anders.
Ganz bestimmt sogar. :-) Am meisten lernt man sowieso von den Sachen, die gerade nicht (sofort) funktionieren.

Mein Standard-Display ist mittlerweile das joy-it SBC-LCD01 mit 1,8'' und 240x240 Pixeln. Das ist gut erhältlich (bei Po... und re... ) und auch recht preiswert. (Achtung: Nur für 3,3V !)

--
Es ist unter der Würde eines Technikers, die Gebrauchsanweisung zu lesen!

R(R)

04.02.2026,
07:52

@ xy

ST7735 TFT Display Pinbezeichnungen

Die eigentliche Frage ist ja inzwischen beantwortet, siehe Thread weiter unten.

» Der ST7735 kann einige µC-Interfaces: Parallel (versch), I2C, sowie SPI.
»
» Welche sind jetzt bei *genau* deinem Display vorhanden?

Genau das war die entscheidende Frage. Diese TFT-Platinchen gibts wie Sand am (chinesischen) Meer und die Pin-Beschriftung ist anscheinend mehr eine unverbindliche Empfehlung. Ich kann wohl schon froh sein dass VCC und GND richtig ausgewiesen waren. Es gibt wohl auch Exemplare wo das vertauscht ist :clap:

Letztendlich ist bei meinem nur ein unidirektionales SPI heraus geführt. Den Software-Teil mit der Parametrisierung hatte ich richtig, es lag nur an der Verkabelung. Gewöhnungsbedürftig finde ich noch die Kodierung von Farben in 16 Bit, wohl einfach weil ich 24 Bit gewohnt bin. Aber davon abgesehen funktioniert es jetzt einwandfrei.