Aller au contenu
Display Engineer
Contrôleur tactile · Hynitron

CST816S : fiche technique, brochage et code d’initialisation

Le CST816S est un contrôleur tactile capacitif mono-point d'Hynitron avec une interface I2C et des gestes intégrés, utilisé sur de petits écrans et des écrans ronds tels que les modules 1.28″ 240×240.

DEDisplay Engineer Applications Team · Ingénieurs d’application afficheurMis à jour le 21 oct. 2026
FabricantHynitron
TypeContrôleur tactile
InterfacesI2C
Résolution max.1 touch point

Le CST816S en un coup d'œil

Élément

Valeur

Source

Adresse I2C (7 bits)

0x15

Espressif esp_lcd_touch_cst816s ; exemple de device tree Linux

Points de contact

1 (doigt unique)

Driver Espressif et README

Données tactiles

Commence à 0x01 (geste), puis 0x02 (nombre de doigts), X à 0x03–0x04, Y à 0x05–0x06

Driver Linux hynitron-cst816x

Registre Chip ID

0xA7

Driver Espressif

Compatible Linux

hynitron,cst816s

Binding device tree Linux

Lecture d'un contact

Le driver Linux lit 6 octets à partir du registre 0x01 :

Registre

Contenu

0x01

Code du geste

0x02

Nombre de doigts (0 ou 1)

0x03–0x04

X, big-endian, 12 bits de poids faible

0x05–0x06

Y, big-endian, 12 bits de poids faible

Codes de gestes gérés par le driver Linux : 0x01 glissement vers le haut, 0x02 glissement vers le bas, 0x03 glissement vers la gauche, 0x04 glissement vers la droite, 0x0C appui long.

Le CST816S ne répond pas tant que vous ne le touchez pas

Le README d'Espressif avertit que la puce « ne répond aux commandes I2C qu'après un événement, tel qu'une détection de contact. Ne vous attendez pas à ce qu'elle réponde à l'initialisation. » C'est pourquoi un scanner I2C au démarrage ne trouve souvent rien à l'adresse 0x15, et pourquoi ESPHome propose une option skip_probe qui évite de lire le Chip ID de la puce au démarrage. Espressif précise que sur certaines puces, la lecture de l'ID peut faire échouer l'initialisation. Touchez l'écran pendant le scan, ou passez la vérification de l'ID.

Réinitialisation et interruption

  • Le driver Linux pilote le reset pendant 50 ms, le relâche puis attend 100 ms. Le driver d'Espressif attend 200 ms de chaque côté.
  • INT est optionnel dans le driver Espressif (il peut interroger la puce par polling). Le driver Linux demande une interruption et échoue au probe sans celle-ci.

Contacts fantômes

Un développeur a publié un croquis de test montrant que le CST816D du Waveshare ESP32-S3-Touch-LCD-2 signale des contacts que personne n'a effectués, principalement le long de l'axe vertical central, sur deux cartes et avec le code de démo de Waveshare lui-même. Aucune correction n'a été confirmée. Si vous observez des contacts fantômes, exécutez d'abord la démo du fabricant pour dissocier le matériel de votre code, puis vérifiez l'alimentation et la mise à la terre de la carte avant de filtrer les contacts par logiciel.

Contrôleurs associés

Le composant cst816 d'ESPHome liste les CST716, CST816D, CST816S, CST816T, CST820, CST826 et CST836. Pour les dalles multi-touch de 4″ à 7″, voir GT911 ; pour les écrans ronds 1.28″, consultez notre guide GC9A01 + ESP32.

Guides et comparatifs

CST816S : dépannage et FAQ

Pourquoi mon CST816S n'est-il pas détecté sur le bus I2C ?

Le CST816S ne répond sur le bus I2C qu'après un événement tel qu'une touche ; un scan au démarrage ne trouve donc généralement rien à l'adresse 0x15. Touchez l'écran pendant le scan, relâchez d'abord la broche reset, et dans ESPHome définissez skip_probe: true. Espressif signale que sur certains chips, la lecture de l'ID peut faire échouer l'initialisation.

Le CST816S prend-il en charge le multi-touch ?

Non. Il ne signale qu'un seul doigt ; le pilote d'Espressif plafonne le nombre de points à 1. Il signale en revanche les gestes : glissement vers le haut, le bas, la gauche et la droite, ainsi que l'appui long. Pour le multi-touch, utilisez un contrôleur de classe GT911.

Pourquoi mon CST816 signale-t-il des touches fantômes ?

Un rapport public fait état d'un CST816D sur le Waveshare ESP32-S3-Touch-LCD-2 signalant des touches le long de la ligne médiane verticale, y compris avec le code de démo du fabricant, et aucun correctif n'a été confirmé. Exécutez la démo du fabricant pour écarter la piste de votre propre code, puis vérifiez l'alimentation et la mise à la terre avant de filtrer les touches par logiciel.

Sources

  1. Espressif ESP-BSP : pilote esp_lcd_touch_cst816s
  2. Espressif ESP-BSP : README du pilote esp_lcd_touch_cst816s
  3. Noyau Linux : drivers/input/touchscreen/hynitron-cst816x.c
  4. Noyau Linux : binding device-tree hynitron,cst816x
  5. ESPHome : écran tactile CST816
  6. seanuleh : sketch de test des touches fantômes pour le Waveshare ESP32-S3-Touch-LCD-2 (CST816D)

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.