Zum Inhalt springen
Display Engineer
Touch-Controller · Hynitron

CST816S: Datenblatt, Pinbelegung & Init-Code

Der CST816S ist ein Single-Touch-Kapazitiv-Touchcontroller von Hynitron mit I2C-Schnittstelle und integrierten Gesten, eingesetzt auf kleinen und runden Displays wie 1,28″-Modulen mit 240×240.

DEDisplay Engineer Applications Team · Display-ApplikationsingenieureAktualisiert am 21. Okt. 2026
HerstellerHynitron
TypTouch-Controller
SchnittstellenI2C
Max. Auflösung1 touch point

CST816S im Überblick

Punkt

Wert

Quelle

I2C-Adresse (7-Bit)

0x15

Espressif esp_lcd_touch_cst816s; Linux-Device-Tree-Beispiel

Touch-Punkte

1 (Einzelfinger)

Espressif-Treiber und README

Touch-Daten

Beginnen bei 0x01 (Geste), dann 0x02 (Fingeranzahl), X bei 0x03–0x04, Y bei 0x05–0x06

Linux-Treiber hynitron-cst816x

Chip-ID-Register

0xA7

Espressif-Treiber

Linux-kompatibel

hynitron,cst816s

Linux-Device-Tree-Binding

Auslesen eines Touchs

Der Linux-Treiber liest 6 Bytes ab Register 0x01:

Register

Inhalt

0x01

Gestencode

0x02

Anzahl Finger (0 oder 1)

0x03–0x04

X, Big-Endian, untere 12 Bits

0x05–0x06

Y, Big-Endian, untere 12 Bits

Vom Linux-Treiber verarbeitete Gestencodes: 0x01 nach oben wischen, 0x02 nach unten wischen, 0x03 nach links wischen, 0x04 nach rechts wischen, 0x0C langer Tastendruck.

Der CST816S antwortet erst, wenn man ihn berührt

Espressifs README warnt, dass der Chip "auf I2C-Befehle erst nach einem Ereignis reagiert, z. B. nach einer erkannten Berührung. Erwartet keine Antwort beim Init." Deshalb findet ein I2C-Scanner beim Booten an 0x15 oft nichts, und deshalb hat ESPHome eine Option skip_probe, die das Lesen der Chip-ID beim Start überspringt. Espressif weist zudem darauf hin, dass bei einigen Chips das Lesen der ID die Initialisierung fehlschlagen lassen kann. Berühren Sie das Display beim Scannen oder überspringen Sie den ID-Check.

Reset und Interrupt

  • Der Linux-Treiber setzt Reset für 50 ms aktiv, gibt ihn frei und wartet 100 ms. Der Espressif-Treiber wartet auf jeder Seite 200 ms.
  • INT ist im Espressif-Treiber optional (Polling ist möglich). Der Linux-Treiber fordert einen Interrupt an und schlägt ohne ihn beim Proben fehl.

Phantom-Touches (Geistertouches)

Ein Entwickler hat einen Test-Sketch veröffentlicht, der zeigt, dass der CST816D auf dem Waveshare ESP32-S3-Touch-LCD-2 Berührungen meldet, die niemand ausgeführt hat – meist entlang der vertikalen Mittellinie, auf zwei Boards und mit Waveshares eigenem Demo-Code. Eine Fehlerbehebung ist nicht bestätigt. Falls Sie Geistertouches sehen, führen Sie zuerst die Vendor-Demo aus, um Hardware von Ihrem Code zu trennen, prüfen Sie dann Stromversorgung und Erdung des Boards, bevor Sie Touches in Software herausfiltern.

Verwandte Controller

Die cst816-Komponente von ESPHome listet CST716, CST816D, CST816S, CST816T, CST820, CST826 und CST836 auf. Für 4″–7″-Multi-Touch-Panels siehe GT911; für runde 1.28″-Displays siehe unseren GC9A01 + ESP32-Leitfaden.

Leitfäden & Vergleiche

CST816S: Fehlersuche & FAQ

Warum wird mein CST816S auf I2C nicht erkannt?

Der CST816S antwortet auf I2C erst nach einem Ereignis wie einer Berührung, daher findet ein Scan beim Booten unter 0x15 normalerweise nichts. Berühren Sie den Bildschirm während des Scans, lassen Sie zuerst Reset los und setzen Sie in ESPHome skip_probe: true. Espressif weist darauf hin, dass bei einigen Chips das Auslesen der ID die Initialisierung fehlschlagen lassen kann.

Unterstützt der CST816S Multi-Touch?

Nein. Er meldet nur einen einzelnen Finger; der Treiber von Espressif begrenzt die Anzahl der Punkte auf 1. Gesten werden jedoch gemeldet: Wischen nach oben, unten, links und rechts sowie langes Drücken. Für Multi-Touch verwenden Sie einen Controller der GT911-Klasse.

Warum meldet mein CST816 Geisterberührungen (Ghost Touches)?

Ein öffentlicher Bericht zeigt einen CST816D auf dem Waveshare ESP32-S3-Touch-LCD-2, der mit dem Democode des Herstellers Berührungen entlang der vertikalen Mittellinie meldet; eine Lösung wurde bisher nicht bestätigt. Führen Sie zuerst die Hersteller-Demo aus, um Ihren eigenen Code auszuschließen, und prüfen Sie dann Stromversorgung und Masse, bevor Sie Berührungen per Software filtern.

Quellen

  1. Espressif ESP-BSP: esp_lcd_touch_cst816s-Treiber
  2. Espressif ESP-BSP: esp_lcd_touch_cst816s README
  3. Linux-Kernel: drivers/input/touchscreen/hynitron-cst816x.c
  4. Linux-Kernel: hynitron,cst816x Device-Tree-Binding
  5. ESPHome: CST816-Touchscreen
  6. seanuleh: Ghost-Touch-Testsketch für Waveshare ESP32-S3-Touch-LCD-2 (CST816D)

Unsicher, welches Display zu Ihrem Design passt?

Nennen Sie uns Größe, Schnittstelle und Host-Prozessor. Ein Display-Ingenieur antwortet innerhalb von 12 Stunden mit 2–3 Optionen, Datenblättern und Init-Code. Muster ab 1 Stk.