Vai al contenuto
Display Engineer
Controller touch · Hynitron

CST816S: datasheet, pinout e codice di inizializzazione

Il CST816S è un controller touch capacitivo single-touch di Hynitron con interfaccia I2C e gesti integrati, utilizzato su display di piccole dimensioni e rotondi come i moduli da 1.28″ 240×240.

DEDisplay Engineer Applications Team · Display application engineerAggiornato il 21 ott 2026
ProduttoreHynitron
TipoController touch
InterfacceI2C
Risoluzione max1 touch point

Il CST816S in sintesi

Voce

Valore

Fonte

Indirizzo I2C (7 bit)

0x15

Espressif esp_lcd_touch_cst816s; esempio di device-tree Linux

Punti touch

1 (singolo dito)

Driver Espressif e README

Dati touch

Inizia da 0x01 (gesto), poi 0x02 (numero di dita), X a 0x03–0x04, Y a 0x05–0x06

Driver Linux hynitron-cst816x

Registro Chip ID

0xA7

Driver Espressif

Compatibile Linux

hynitron,cst816s

Binding device-tree Linux

Lettura di un tocco

Il driver Linux legge 6 byte dal registro 0x01:

Registro

Contenuto

0x01

Codice gesto

0x02

Numero di dita (0 o 1)

0x03–0x04

X, big-endian, 12 bit meno significativi

0x05–0x06

Y, big-endian, 12 bit meno significativi

Codici gesto gestiti dal driver Linux: 0x01 scorrimento verso l'alto, 0x02 scorrimento verso il basso, 0x03 scorrimento a sinistra, 0x04 scorrimento a destra, 0x0C pressione prolungata.

Il CST816S non risponde finché non lo si tocca

Il README di Espressif avverte che il chip "risponde ai comandi I2C solo dopo un evento, come il rilevamento di un tocco. Non aspettarsi che risponda all'inizializzazione." Per questo motivo uno scanner I2C all'avvio spesso non trova nulla all'indirizzo 0x15, ed è per questo che ESPHome prevede un'opzione skip_probe che salta la lettura del chip ID all'avvio. Espressif aggiunge che su alcuni chip la lettura dell'ID può far fallire l'inizializzazione. Toccare lo schermo durante la scansione, oppure saltare la verifica dell'ID.

Reset e interrupt

  • Il driver Linux pilota il reset per 50 ms, lo rilascia e attende 100 ms. Il driver di Espressif attende 200 ms su ciascun lato.
  • INT è opzionale nel driver di Espressif (può eseguire il polling). Il driver Linux richiede un interrupt e il probe fallisce senza.

Tocchi fantasma

Uno sviluppatore ha pubblicato uno sketch di test che mostra il CST816D sul Waveshare ESP32-S3-Touch-LCD-2 segnalare tocchi fatti da nessuno, principalmente lungo la linea centrale verticale, su due schede e con il codice demo stesso di Waveshare. Nessuna correzione è stata confermata. Se si vedono tocchi fantasma, eseguire prima la demo del produttore per separare il problema hardware dal proprio codice, poi verificare alimentazione e messa a terra della scheda prima di filtrare i tocchi via software.

Controller correlati

Il componente cst816 di ESPHome elenca CST716, CST816D, CST816S, CST816T, CST820, CST826 e CST836. Per i pannello multi-touch da 4″–7″ vedere GT911; per i display rotondi da 1.28″ vedere la nostra guida GC9A01 + ESP32.

Guide e confronti

CST816S: risoluzione dei problemi e FAQ

Perché il mio CST816S non viene rilevato su I2C?

Il CST816S risponde su I2C solo dopo un evento come un tocco, quindi una scansione all'avvio di solito non trova nulla all'indirizzo 0x15. Toccare lo schermo durante la scansione, rilasciare prima il reset e in ESPHome impostare skip_probe: true. Espressif segnala che su alcuni chip la lettura dell'ID può far fallire l'inizializzazione.

Il CST816S supporta il multi-touch?

No. Riporta un solo dito; il driver di Espressif limita a 1 il numero di punti. Riporta però i gesti: scorrimento verso l'alto, il basso, sinistra e destra, e pressione prolungata. Per il multi-touch utilizzare un controller di classe GT911.

Perché il mio CST816 riporta tocchi fantasma?

Una segnalazione pubblica mostra un CST816D sul Waveshare ESP32-S3-Touch-LCD-2 che riporta tocchi lungo la linea centrale verticale con il codice demo dello stesso produttore, e non è stata confermata alcuna correzione. Eseguire la demo del produttore per escludere problemi nel proprio codice, quindi verificare alimentazione e messa a terra prima di filtrare i tocchi via software.

Fonti

  1. Espressif ESP-BSP: driver esp_lcd_touch_cst816s
  2. Espressif ESP-BSP: README di esp_lcd_touch_cst816s
  3. Kernel Linux: drivers/input/touchscreen/hynitron-cst816x.c
  4. Kernel Linux: binding device-tree hynitron,cst816x
  5. ESPHome: touchscreen CST816
  6. seanuleh: sketch di test per tocchi fantasma su Waveshare ESP32-S3-Touch-LCD-2 (CST816D)

Non sai quale display è adatto al tuo progetto?

Inviaci dimensione, interfaccia e processore host. Un display engineer risponde entro 12 ore con 2–3 opzioni, datasheet e codice di inizializzazione. Campioni da 1 pz.