Vai al contenuto
Display Engineer
Controller touch · Hynitron

CST328: configurazione e risoluzione dei problemi

Il CST328 è un controller touch capacitivo Hynitron con interfaccia I2C all'indirizzo 0x1A e indirizzi di registro a 16 bit. Secondo LilyGO la produzione è stata dismessa e le schede successive montano un CST3530, che richiede un driver diverso.

DEDisplay Engineer Applications Team · Display application engineerAggiornato il 11 nov 2026
ProduttoreHynitron
TipoController touch
InterfacceI2C
Risoluzione max5 touch points

CST328 in breve

Voce

Valore

Fonte

Interfaccia

I2C, indirizzi di registro a 16 bit

Driver ESPHome, RS-Key

Indirizzo I2C (7 bit)

0x1A

Tabella dei pin del LilyGO T-Deck Pro, RS-Key

Punti touch

5 sulla Waveshare ESP32-S3-Touch-LCD-2.8

Wiki Waveshare

Report touch

Registro 0xD000, 7 byte per un punto

RS-Key

Interrupt

Supportato

Wiki Waveshare, ESPHome (fronte di discesa)

Stato

Produzione dismessa, secondo LilyGO

README del LilyGO T-Deck Pro

Non abbiamo usato un datasheet Hynitron per questi dati. La copia trovata online è un upload di un rivenditore, quindi i valori sopra indicati provengono dal codice sorgente dei driver e dalla documentazione delle schede.

La sostituzione con il CST3530

Il README del T-Deck Pro di LilyGO dichiara che il fornitore del CST328 "ha cessato la produzione", quindi le schede T-Deck Pro v1.1 più recenti montano un CST3530. Aggiunge che "entrambi i chip utilizzano lo stesso indirizzo device", pertanto il firmware deve identificare il chip durante l'inizializzazione. LilyGO usa la routine cst66xx di Hynitron per il CST3530 e la cst3xx per il CST328.

Anche il RP2350-Touch-LCD-2.8 di Waveshare ha apportato la stessa modifica. Il progetto RS-Key documenta la V1 con un CST328 all'indirizzo 0x1A e la V2 con un CST3530 all'indirizzo 0x58. Sul T-Deck Pro l'indirizzo non cambia; su questa scheda sì.

CST328

CST3530

Indirizzamento dei registri

2 byte

Parole di comando a 4 byte

Report touch

0xD000, 7 byte

0xD0070000, 9 byte

Acknowledge dopo la lettura

Scrittura del byte di sincronizzazione 0xAB

Scrittura di 0xD00002AB

Indirizzo sul T-Deck Pro

0x1A

0x1A

Indirizzo sul RP2350-Touch-LCD-2.8

0x1A (V1)

0x58 (V2)

Comportamento a riposo

Non documentato nelle fonti che abbiamo utilizzato

Va in sleep automaticamente; LilyGO consiglia gli interrupt invece del polling

Le colonne relative al CST3530 provengono dal driver unificato di RS-Key, che il suo autore ha testato su una scheda V2, e dal README di LilyGO.

Come si manifesta il problema di sostituzione

Entrambi i progetti che hanno riscontrato questo problema hanno riferito la stessa cosa: il firmware viene eseguito e il display disegna, ma nessun tocco viene registrato. La segnalazione su reticulum-tdeck indica che alcune unità T-Deck Pro v1.1 funzionavano e altre no, il che è coerente con una modifica tra lotti di produzione piuttosto che con un difetto di cablaggio.

Due ulteriori insidie:

  • Una scansione I2C non identifica il chip. Sul T-Deck Pro entrambi i chip rispondono all'indirizzo 0x1A. Gli autori di reticulum-tdeck verificano prima il CST3530, perché un CST3530 "riconosce volentieri le letture dei registri del CST328". Segnalano inoltre che questo codice non era ancora stato eseguito su una scheda con CST3530. Un test di banco di meshcore-firmware su un T-Deck Pro V1.1 mostra la stessa cosa: la lettura in stile CST328 veniva riconosciuta ma non restituiva né tipo di chip né risoluzione, mentre la lettura in stile CST3530 restituiva un blocco valido con marcatore 0xCA 0xCA e la risoluzione 240×320 del pannello.
  • Altri driver possono rivendicare l'indirizzo 0x1A. Una pull request aperta su Meshtastic riporta che la sua scansione I2C ha scambiato il chip touch del T-Deck Pro per un bridge DS2482-800, perché un test sul registro di stato coincideva per caso.

Si tratta di uno schema comune con i controller touch di piccole dimensioni: la sigla sulla scheda resta la stessa mentre il chip cambia. Se produci in volume, chiedi al tuo fornitore di display quale IC touch è montato, e di avvisarti prima di una variazione. Il nostro glossario EOL e PCN spiega cosa dovrebbe contenere una comunicazione di modifica.

Bring-up con ESPHome

La piattaforma cst328 di ESPHome richiede la configurazione dell'I2C e accetta le opzioni facoltative interrupt_pin e reset_pin. La sua procedura di inizializzazione esegue quanto segue:

  • Genera un impulso basso sul reset per 5 ms, poi attende.
  • Legge il CRC del firmware e si aspetta 0xCACA. Con qualsiasi altro valore contrassegna il componente come non riuscito.
  • Legge il tipo di chip, l'ID di progetto, la revisione del firmware e la risoluzione, quindi porta il chip in modalità normale.

Il controllo CRC è il primo punto da esaminare se ESPHome segnala un errore del touchscreen. ESPHome usa letture CST328 con indirizzi di registro a 2 byte, e nel test di banco di meshcore-firmware questo tipo di lettura non ha restituito nulla di utile da un CST3530. Quindi, su una scheda con un CST3530, aspettati che questo controllo fallisca. È una nostra deduzione: non abbiamo eseguito ESPHome su una scheda con CST3530.

Supporto dei driver

  • ESPHome: la piattaforma cst328. La sua documentazione cita la scheda Waveshare ESP32-S3 Touch LCD 2.8. Non esiste una piattaforma per il CST3530.
  • ESP-IDF: Waveshare pubblica esp_lcd_touch_cst328 nel registro dei componenti Espressif. La sua tabella di compatibilità elenca solo il CST328.
  • Rust: la crate cst328 su crates.io, e il firmware RS-Key per entrambi i chip.
  • Il driver di Hynitron: LilyGO linka il sorgente hyn_driver di Hynitron per entrambi i chip.

Controller correlati

Per il touch a un dito su display tondi, vedi CST816S, sempre di Hynitron. Per pannelli più grandi con fino a 5 punti, vedi GT911.

CST328: risoluzione dei problemi e FAQ

Il touch funzionava sul primo lotto di schede ma è morto sulle nuove. Perché?

Verifica se il chip touch è cambiato. LilyGO dichiara che i lotti più recenti del T-Deck Pro v1.1 usano un CST3530 al posto del CST328, allo stesso indirizzo 0x1A, e anche la Waveshare RP2350-Touch-LCD-2.8 V2 è passata a un CST3530. I progetti con un driver solo per CST328 hanno riportato lo stesso sintomo: il display funziona e nessun tocco viene registrato. Una scansione I2C non riesce a distinguere i due chip sul T-Deck Pro, quindi leggi il tipo di chip o verifica prima il protocollo del CST3530.

Qual è l'indirizzo I2C del CST328?

La tabella dei pin del T-Deck Pro di LilyGO indica 0x1A, e il progetto RS-Key elenca 0x1A (7 bit) per il CST328 sulla Waveshare RP2350-Touch-LCD-2.8 V1. Non dare per scontato che un CST3530 si trovi allo stesso indirizzo: è 0x1A sul T-Deck Pro ma 0x58 sulla RP2350-Touch-LCD-2.8 V2, secondo RS-Key.

Un solo driver può supportare sia il CST328 che il CST3530?

Sì, se rileva il chip. LilyGO dichiara che il modello "deve essere identificato durante l'inizializzazione" e usa routine di init separate. Il progetto reticulum-tdeck verifica prima il CST3530, perché un CST3530 riconosce anche le letture dei registri del CST328; i suoi autori dichiarano che questo codice non era ancora stato eseguito su una scheda con CST3530. Il progetto RS-Key invece sceglie il chip in fase di build.

Fonti

  1. README della LilyGO T-Deck Pro (da CST328 a CST3530, indirizzo, init, interrupt)
  2. Issue #37 della LilyGO T-Deck Pro: il CST3530 sostituisce il CST328
  3. Issue #139 di RS-Key: RP2350-Touch-LCD-2.8 V1 CST328 0x1A vs V2 CST3530 0x58
  4. PR #138 di RS-Key: driver CST3530 (report 0xD0070000, ack 0xD00002AB)
  5. Issue #19 di reticulum-tdeck: touch della T-Deck Pro v1.1 non funzionante su alcune unità
  6. reticulum-tdeck v1.13.0-rc1: ordine di probe del CST3530
  7. Issue #2108 di meshcore-firmware: probe del touch sulla T-Deck Pro V1.1 (letture cst66xx vs cst3xx)
  8. PR #11952 di Meshtastic: chip touch all'indirizzo 0x1A rilevato erroneamente come DS2482
  9. Documentazione touchscreen CST328 di ESPHome
  10. Sorgente cst328_touchscreen.cpp di ESPHome
  11. Wiki della Waveshare ESP32-S3-Touch-LCD-2.8
  12. Componente Waveshare esp_lcd_touch_cst328

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.