Saltar al contenido
Display Engineer
Controlador táctil · Hynitron

CST816S: datasheet, pinout y código de inicialización

El CST816S es un controlador táctil capacitivo de un solo punto de Hynitron con interfaz I2C y gestos integrados, utilizado en pantallas pequeñas y redondas como los módulos de 1.28″ 240×240.

DEDisplay Engineer Applications Team · Ingenieros de aplicaciones de pantallasActualizado el 21 oct 2026
FabricanteHynitron
TipoControlador táctil
InterfacesI2C
Resolución máxima1 touch point

El CST816S de un vistazo

Elemento

Valor

Fuente

Dirección I2C (7 bits)

0x15

esp_lcd_touch_cst816s de Espressif; ejemplo de device-tree de Linux

Puntos táctiles

1 (un dedo)

Driver y README de Espressif

Datos táctiles

Comienza en 0x01 (gesto), luego 0x02 (número de dedos), X en 0x03–0x04, Y en 0x05–0x06

Driver hynitron-cst816x de Linux

Registro de Chip ID

0xA7

Driver de Espressif

Compatible con Linux

hynitron,cst816s

Binding de device-tree de Linux

Lectura de un toque

El driver de Linux lee 6 bytes a partir del registro 0x01:

Registro

Contenido

0x01

Código de gesto

0x02

Número de dedos (0 o 1)

0x03–0x04

X, big-endian, 12 bits bajos

0x05–0x06

Y, big-endian, 12 bits bajos

Códigos de gesto gestionados por el driver de Linux: 0x01 deslizar hacia arriba, 0x02 deslizar hacia abajo, 0x03 deslizar a la izquierda, 0x04 deslizar a la derecha, 0x0C pulsación larga.

El CST816S no responde hasta que lo tocas

El README de Espressif advierte que el chip "solo responde a los comandos I2C después de un evento, como la detección de un toque. No espere que responda durante la inicialización." Por eso, un escáner I2C al arrancar a menudo no encuentra nada en 0x15, y por eso ESPHome tiene una opción skip_probe que omite la lectura del Chip ID al inicio. Espressif añade que en algunos chips la lectura del ID puede hacer que la inicialización falle. Toque la pantalla mientras escanea, u omita la comprobación del ID.

Reset e interrupción

  • El driver de Linux activa el reset durante 50 ms, lo libera y espera 100 ms. El driver de Espressif espera 200 ms en cada fase.
  • INT es opcional en el driver de Espressif (puede hacer polling). El driver de Linux solicita una interrupción y no puede completar el probe sin ella.

Toques fantasma

Un desarrollador ha publicado un sketch de prueba que muestra el CST816D en el Waveshare ESP32-S3-Touch-LCD-2 registrando toques que nadie hizo, principalmente a lo largo de la línea central vertical, en dos placas y con el propio código de demostración de Waveshare. No se ha confirmado ninguna solución. Si observa toques fantasma, ejecute primero la demo del fabricante para separar el hardware de su código, y después revise la alimentación y la conexión a tierra de la placa antes de filtrar los toques por software.

Controladores relacionados

El componente cst816 de ESPHome incluye los modelos CST716, CST816D, CST816S, CST816T, CST820, CST826 y CST836. Para paneles multitáctiles de 4″–7″ consulte GT911; para pantallas redondas de 1.28″ consulte nuestra guía de GC9A01 + ESP32.

Guías y comparativas

CST816S: resolución de problemas y preguntas frecuentes

¿Por qué no se detecta mi CST816S en I2C?

El CST816S solo responde a I2C después de un evento como un toque, por lo que un escaneo durante el arranque normalmente no encuentra nada en 0x15. Toque la pantalla mientras escanea, libere primero el reset y en ESPHome configure skip_probe: true. Espressif señala que en algunos chips leer el ID puede provocar un fallo en la inicialización.

¿Admite multitáctil el CST816S?

No. Solo informa un dedo; el controlador de Espressif limita el número de puntos a 1. Sí informa gestos: deslizamiento hacia arriba, abajo, izquierda y derecha, y pulsación larga. Para multitáctil use un controlador de la clase GT911.

¿Por qué mi CST816 informa toques fantasma?

Un informe público muestra un CST816D en el Waveshare ESP32-S3-Touch-LCD-2 que informa toques a lo largo de la línea central vertical con el propio código de demostración del fabricante, y no se ha confirmado ninguna solución. Ejecute la demostración del fabricante para descartar su código y, a continuación, compruebe la alimentación y la toma de tierra antes de filtrar los toques por software.

Fuentes

  1. Espressif ESP-BSP: controlador esp_lcd_touch_cst816s
  2. Espressif ESP-BSP: README de esp_lcd_touch_cst816s
  3. Kernel de Linux: drivers/input/touchscreen/hynitron-cst816x.c
  4. Kernel de Linux: binding de device-tree hynitron,cst816x
  5. ESPHome: pantalla táctil CST816
  6. seanuleh: sketch de prueba de toques fantasma para Waveshare ESP32-S3-Touch-LCD-2 (CST816D)

¿No sabe qué pantalla encaja en su diseño?

Envíenos el tamaño, la interfaz y el procesador host. Un ingeniero de pantallas responde en 12 horas con 2–3 opciones, datasheets y código de inicialización. Muestras desde 1 ud.