Saltar al contenido
Display Engineer
Controlador táctil · Hynitron

CST328: configuración y resolución de problemas

El CST328 es un controlador táctil capacitivo de Hynitron con interfaz I2C en la dirección 0x1A y direcciones de registro de 16 bits. LilyGO indica que está fuera de producción y que las placas posteriores incorporan un CST3530, que necesita un driver diferente.

DEDisplay Engineer Applications Team · Ingenieros de aplicaciones de pantallasActualizado el 11 nov 2026
FabricanteHynitron
TipoControlador táctil
InterfacesI2C
Resolución máxima5 touch points

El CST328 de un vistazo

Concepto

Valor

Fuente

Interfaz

I2C, direcciones de registro de 16 bits

Driver de ESPHome, RS-Key

Dirección I2C (7 bits)

0x1A

Tabla de pines del LilyGO T-Deck Pro, RS-Key

Puntos táctiles

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

Wiki de Waveshare

Reporte táctil

Registro 0xD000, 7 bytes por punto

RS-Key

Interrupción

Compatible

Wiki de Waveshare, ESPHome (flanco de caída)

Estado

Fuera de producción, según LilyGO

README del LilyGO T-Deck Pro

No usamos un datasheet de Hynitron para estos datos. La copia que encontramos en línea es una subida de un revendedor, por lo que los valores anteriores provienen del código fuente del driver y de la documentación de la placa.

El cambio al CST3530

El README del T-Deck Pro de LilyGO dice que el proveedor del CST328 "ha descontinuado la producción", por lo que las placas T-Deck Pro v1.1 más recientes usan un CST3530. Añade que "ambos chips usan la misma dirección de dispositivo", de modo que el firmware debe identificar el chip durante la inicialización. LilyGO usa la rutina cst66xx de Hynitron para el CST3530 y cst3xx para el CST328.

La RP2350-Touch-LCD-2.8 de Waveshare hizo el mismo cambio. El proyecto RS-Key documenta la V1 con un CST328 en 0x1A y la V2 con un CST3530 en 0x58. En el T-Deck Pro la dirección no cambia; en esta placa sí.

CST328

CST3530

Direccionamiento de registros

2 bytes

Palabras de comando de 4 bytes

Reporte táctil

0xD000, 7 bytes

0xD0070000, 9 bytes

Acknowledge después de la lectura

Escritura del byte de sincronización 0xAB

Escritura de 0xD00002AB

Dirección en el T-Deck Pro

0x1A

0x1A

Dirección en la RP2350-Touch-LCD-2.8

0x1A (V1)

0x58 (V2)

Comportamiento en reposo

No documentado en las fuentes que hemos utilizado

Entra en reposo automáticamente; LilyGO recomienda interrupciones en lugar de polling

Las columnas de la CST3530 provienen del driver unificado de RS-Key, que su autor probó en una placa V2, y del README de LilyGO.

Cómo se manifiesta el cambio de chip

Ambos proyectos que se toparon con esto reportaron lo mismo: el firmware arranca y la pantalla dibuja, pero ningún toque se registra. El issue de reticulum-tdeck indica que algunas unidades de la T-Deck Pro v1.1 funcionaban y otras no, lo que apunta a un cambio entre lotes de producción y no a un fallo de cableado.

Dos trampas más:

  • Un escaneo I2C no identifica el chip. En la T-Deck Pro ambos chips responden en 0x1A. Los autores de reticulum-tdeck sondean primero la CST3530, porque una CST3530 "responde sin problema a las lecturas de registros de la CST328". También dicen que ese código aún no se había ejecutado en una placa con CST3530. Una prueba de banco de meshcore-firmware en una T-Deck Pro V1.1 muestra lo mismo: la lectura estilo CST328 fue reconocida pero no devolvió ni tipo de chip ni resolución, mientras que la lectura estilo CST3530 devolvió un bloque válido con un marcador 0xCA 0xCA y la resolución de 240×320 del panel.
  • Otros drivers pueden reclamar 0x1A. Un pull request abierto de Meshtastic reporta que su escaneo I2C tomó el chip táctil de la T-Deck Pro por un puente DS2482-800, porque una prueba del registro de estado coincidía por casualidad.

Este es un patrón común con los controladores táctiles pequeños: la referencia del componente en la placa se mantiene igual mientras el chip cambia. Si fabricas en volumen, pregunta a tu proveedor de pantallas qué chip táctil está montado y que te avise antes de cambiarlo. Nuestro glosario de EOL y PCN explica qué debe contener una notificación de cambio.

Puesta en marcha con ESPHome

La plataforma cst328 de ESPHome requiere que el I2C esté configurado y acepta opcionalmente interrupt_pin y reset_pin. Su configuración hace lo siguiente:

  • Aplica un pulso bajo en reset durante 5 ms y luego espera.
  • Lee el CRC del firmware y espera 0xCACA. Con cualquier otro valor marca el componente como fallido.
  • Lee el tipo de chip, el ID de proyecto, la revisión del firmware y la resolución, y luego cambia el chip a modo normal.

La comprobación del CRC es lo primero que hay que revisar si ESPHome reporta que el panel táctil falló. ESPHome utiliza lecturas de la CST328 con direcciones de registro de 2 bytes, y en la prueba de banco de meshcore-firmware ese tipo de lectura no devolvió nada útil de una CST3530. Así que en una placa con una CST3530, espera que esta comprobación falle. Es una inferencia nuestra: no hemos ejecutado ESPHome en una placa con CST3530.

Soporte de drivers

  • ESPHome: la plataforma cst328. Su documentación menciona la placa Waveshare ESP32-S3 Touch LCD 2.8. No tiene plataforma para la CST3530.
  • ESP-IDF: Waveshare publica esp_lcd_touch_cst328 en el registro de componentes de Espressif. Su tabla de compatibilidad solo lista la CST328.
  • Rust: el crate cst328 en crates.io, y el firmware de RS-Key para ambos chips.
  • El driver propio de Hynitron: LilyGO enlaza el código fuente hyn_driver de Hynitron para ambos chips.

Controladores relacionados

Para táctil de un dedo en pantallas redondas, consulta la CST816S, también de Hynitron. Para paneles más grandes de hasta 5 puntos, consulta la GT911.

CST328: resolución de problemas y preguntas frecuentes

El táctil funcionaba en mi primer lote de placas pero está muerto en las nuevas. ¿Por qué?

Comprueba si el chip táctil cambió. LilyGO indica que los lotes más recientes de la T-Deck Pro v1.1 usan una CST3530 en lugar de la CST328, en la misma dirección 0x1A, y la Waveshare RP2350-Touch-LCD-2.8 V2 también pasó a una CST3530. Los proyectos con un driver solo para la CST328 reportaron el mismo síntoma: la pantalla funciona y ningún toque se registra. Un escaneo I2C no puede distinguir los dos chips en la T-Deck Pro, así que lee el tipo de chip o sondea primero el protocolo de la CST3530.

¿Cuál es la dirección I2C de la CST328?

La tabla de pines de la T-Deck Pro de LilyGO da 0x1A, y el proyecto RS-Key lista 0x1A (7 bits) para la CST328 en la Waveshare RP2350-Touch-LCD-2.8 V1. No des por hecho que una CST3530 está en la misma dirección: es 0x1A en la T-Deck Pro pero 0x58 en la RP2350-Touch-LCD-2.8 V2, según RS-Key.

¿Puede un solo driver soportar tanto la CST328 como la CST3530?

Sí, si detecta el chip. LilyGO dice que el modelo "debe identificarse durante la inicialización" y usa rutinas de init separadas. El proyecto reticulum-tdeck sondea primero la CST3530, porque una CST3530 también reconoce las lecturas de registros de la CST328; sus autores dicen que esto aún no se había ejecutado en una placa con CST3530. El proyecto RS-Key, en cambio, elige el chip en tiempo de compilación.

Fuentes

  1. README de LilyGO T-Deck Pro (CST328 a CST3530, dirección, init, interrupciones)
  2. Issue #37 de LilyGO T-Deck Pro: el CST3530 sustituye al CST328
  3. Issue #139 de RS-Key: RP2350-Touch-LCD-2.8 V1 CST328 0x1A frente a V2 CST3530 0x58
  4. PR #138 de RS-Key: controlador CST3530 (report 0xD0070000, ack 0xD00002AB)
  5. Issue #19 de reticulum-tdeck: el táctil de la T-Deck Pro v1.1 no funciona en algunas unidades
  6. reticulum-tdeck v1.13.0-rc1: orden de sondeo del CST3530
  7. Issue #2108 de meshcore-firmware: sondeo táctil de la T-Deck Pro V1.1 (lecturas cst66xx frente a cst3xx)
  8. PR #11952 de Meshtastic: chip táctil en 0x1A detectado erróneamente como DS2482
  9. Documentación del touchscreen CST328 de ESPHome
  10. Código fuente cst328_touchscreen.cpp de ESPHome
  11. Wiki de Waveshare ESP32-S3-Touch-LCD-2.8
  12. Componente esp_lcd_touch_cst328 de Waveshare

¿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.