Aller au contenu
Display Engineer
Contrôleur tactile · Hynitron

CST328 : mise en service & dépannage

CST328 est un contrôleur tactile capacitif Hynitron avec une interface I2C à l'adresse 0x1A et des adresses de registres 16 bits. LilyGO indique qu'il est hors production et que les cartes récentes sont livrées avec un CST3530, qui nécessite un pilote différent.

DEDisplay Engineer Applications Team · Ingénieurs d’application afficheurMis à jour le 11 nov. 2026
FabricantHynitron
TypeContrôleur tactile
InterfacesI2C
Résolution max.5 touch points

CST328 en un coup d'œil

Élément

Valeur

Source

Interface

I2C, adresses de registres 16 bits

Pilote ESPHome, RS-Key

Adresse I2C (7 bits)

0x1A

Tableau des broches du LilyGO T-Deck Pro, RS-Key

Points tactiles

5 sur la Waveshare ESP32-S3-Touch-LCD-2.8

Wiki Waveshare

Rapport tactile

Registre 0xD000, 7 octets pour un point

RS-Key

Interruption

Prise en charge

Wiki Waveshare, ESPHome (front descendant)

Statut

Hors production, selon LilyGO

README du LilyGO T-Deck Pro

Nous n'avons pas utilisé de datasheet Hynitron pour ces chiffres. L'exemplaire trouvé en ligne est un dépôt de revendeur ; les valeurs ci-dessus proviennent donc du code source des pilotes et de la documentation des cartes.

Le remplacement par le CST3530

Le README du T-Deck Pro de LilyGO indique que le fournisseur du CST328 « a arrêté la production », si bien que les cartes T-Deck Pro v1.1 plus récentes utilisent un CST3530. Il précise que « les deux puces utilisent la même adresse de périphérique », le firmware doit donc identifier la puce lors de l'initialisation. LilyGO utilise la routine cst66xx de Hynitron pour le CST3530 et cst3xx pour le CST328.

La Waveshare RP2350-Touch-LCD-2.8 a effectué le même changement. Le projet RS-Key documente la V1 avec un CST328 à l'adresse 0x1A et la V2 avec un CST3530 à l'adresse 0x58. Sur le T-Deck Pro, l'adresse ne change pas ; sur cette carte, elle change.

CST328

CST3530

Adressage des registres

2 octets

Mots de commande de 4 octets

Rapport tactile

0xD000, 7 octets

0xD0070000, 9 octets

Acquittement après lecture

Écriture de l'octet de synchronisation 0xAB

Écriture de 0xD00002AB

Adresse sur le T-Deck Pro

0x1A

0x1A

Adresse sur la RP2350-Touch-LCD-2.8

0x1A (V1)

0x58 (V2)

Comportement au repos

Non documenté dans les sources que nous avons utilisées

Se met en veille automatiquement ; LilyGO recommande les interruptions plutôt que le polling

Les colonnes CST3530 proviennent du driver fusionné de RS-Key, que son auteur a testé sur une carte V2, et du README de LilyGO.

Comment se manifeste l'échange

Les deux projets qui ont rencontré ce problème rapportent la même chose : le firmware s'exécute et l'écran affiche, mais aucun appui n'est détecté. L'issue reticulum-tdeck indique que certaines unités T-Deck Pro v1.1 fonctionnaient et d'autres non, ce qui correspond à un changement entre lots de production plutôt qu'à un défaut de câblage.

Deux autres pièges :

  • Un scan I2C n'identifie pas la puce. Sur le T-Deck Pro, les deux puces répondent à l'adresse 0x1A. Les auteurs de reticulum-tdeck sonnent d'abord le CST3530, car un CST3530 « acknowledge volontiers les lectures de registres CST328 ». Ils précisent aussi que ce code n'avait pas encore tourné sur une carte équipée d'un CST3530. Un test au banc meshcore-firmware sur un T-Deck Pro V1.1 montre la même chose : la lecture de type CST328 a été acquittée mais n'a renvoyé ni type de puce ni résolution, tandis que la lecture de type CST3530 a renvoyé un bloc valide avec un marqueur 0xCA 0xCA et la résolution 240×320 du panneau.
  • D'autres drivers peuvent réclamer 0x1A. Une pull request Meshtastic ouverte rapporte que son scan I2C a pris la puce tactile du T-Deck Pro pour un pont DS2482-800, car un test de registre d'état correspondait par hasard.

C'est un schéma courant avec les petits contrôleurs tactiles : la référence inscrite sur la carte reste la même tandis que la puce change. Si vous fabriquez en volume, demandez à votre fournisseur d'écrans quelle puce tactile est montée, et de vous prévenir avant tout changement. Notre glossaire EOL et PCN explique ce que doit contenir une notice de changement.

Mise en route avec ESPHome

La plateforme cst328 d'ESPHome nécessite une configuration I2C et accepte les options interrupt_pin et reset_pin. Sa configuration procède comme suit :

  • Impulsion basse sur le reset pendant 5 ms, puis attente.
  • Lit le CRC du firmware et attend 0xCACA. Pour toute autre valeur, elle marque le composant comme défaillant.
  • Lit le type de puce, l'ID de projet, la révision du firmware et la résolution, puis fait passer la puce en mode normal.

La vérification du CRC est le premier endroit à examiner si ESPHome signale l'échec de l'écran tactile. ESPHome utilise des lectures CST328 avec des adresses de registre sur 2 octets, et dans le test au banc meshcore-firmware, ce type de lecture n'a rien renvoyé d'exploitable depuis un CST3530. Sur une carte équipée d'un CST3530, attendez-vous donc à ce que cette vérification échoue. C'est notre déduction : nous n'avons pas exécuté ESPHome sur une carte avec CST3530.

Support par les drivers

  • ESPHome : la plateforme cst328. Sa documentation mentionne la carte Waveshare ESP32-S3 Touch LCD 2.8. Elle ne dispose d'aucune plateforme CST3530.
  • ESP-IDF : Waveshare publie esp_lcd_touch_cst328 dans le registre de composants Espressif. Son tableau de compatibilité ne liste que le CST328.
  • Rust : la crate cst328 sur crates.io, et le firmware RS-Key pour les deux puces.
  • Le driver de Hynitron lui-même : LilyGO renvoie vers le code source hyn_driver de Hynitron pour les deux puces.

Contrôleurs apparentés

Pour le tactile monopoint sur écrans ronds, voir CST816S, également de Hynitron. Pour les panneaux plus grands supportant jusqu'à 5 points, voir GT911.

CST328 : dépannage et FAQ

Le tactile fonctionnait sur mon premier lot de cartes mais est inopérant sur les nouvelles. Pourquoi ?

Vérifiez si la puce tactile a changé. LilyGO indique que les lots plus récents de T-Deck Pro v1.1 utilisent un CST3530 à la place du CST328, à la même adresse 0x1A, et la Waveshare RP2350-Touch-LCD-2.8 V2 est également passée à un CST3530. Les projets avec un driver réservé au CST328 ont rapporté le même symptôme : l'écran fonctionne et aucun appui n'est détecté. Un scan I2C ne permet pas de distinguer les deux puces sur le T-Deck Pro ; lisez donc le type de puce ou sondez d'abord le protocole CST3530.

Quelle est l'adresse I2C du CST328 ?

Le tableau des broches du T-Deck Pro de LilyGO indique 0x1A, et le projet RS-Key liste 0x1A (7 bits) pour le CST328 sur la Waveshare RP2350-Touch-LCD-2.8 V1. Ne partez pas du principe qu'un CST3530 est à la même adresse : il est à 0x1A sur le T-Deck Pro mais à 0x58 sur la RP2350-Touch-LCD-2.8 V2, selon RS-Key.

Un même driver peut-il supporter à la fois le CST328 et le CST3530 ?

Oui, s'il détecte la puce. LilyGO précise que le modèle « doit être identifié lors de l'initialisation » et utilise des routines d'init distinctes. Le projet reticulum-tdeck sonde d'abord le CST3530, car un CST3530 acquitte aussi les lectures de registres CST328 ; ses auteurs indiquent que ce code n'avait pas encore tourné sur une carte avec CST3530. Le projet RS-Key, quant à lui, choisit la puce à la compilation.

Sources

  1. README du LilyGO T-Deck Pro (CST328 vers CST3530, adresse, init, interruptions)
  2. Issue #37 du LilyGO T-Deck Pro : le CST3530 remplace le CST328
  3. Issue #139 de RS-Key : RP2350-Touch-LCD-2.8 V1 CST328 0x1A vs V2 CST3530 0x58
  4. PR #138 de RS-Key : pilote CST3530 (report 0xD0070000, ack 0xD00002AB)
  5. Issue #19 de reticulum-tdeck : tactile du T-Deck Pro v1.1 inopérant sur certaines unités
  6. reticulum-tdeck v1.13.0-rc1 : ordre de détection du CST3530
  7. Issue #2108 de meshcore-firmware : détection du tactile du T-Deck Pro V1.1 (lectures cst66xx vs cst3xx)
  8. PR #11952 de Meshtastic : puce tactile à 0x1A détectée à tort comme DS2482
  9. Documentation ESPHome du touchscreen CST328
  10. Source ESPHome cst328_touchscreen.cpp
  11. Wiki du Waveshare ESP32-S3-Touch-LCD-2.8
  12. Composant Waveshare esp_lcd_touch_cst328

Vous ne savez pas quel afficheur convient à votre conception ?

Envoyez-nous votre taille, interface et processeur hôte. Un ingénieur afficheur répond sous 12 heures avec 2 à 3 options, fiches techniques et code d’initialisation. Échantillons dès 1 pce.