Pular para o conteúdo
Display Engineer
Controlador de touch · Hynitron

CST816S: datasheet, pinagem e código de inicialização

O CST816S é um controlador de toque capacitivo de toque único da Hynitron com interface I2C e gestos integrados, usado em displays pequenos e redondos, como módulos de 1,28″ 240×240.

DEDisplay Engineer Applications Team · Engenheiros de aplicação de displaysAtualizado em 21 de out. de 2026
FabricanteHynitron
TipoControlador de touch
InterfacesI2C
Resolução máxima1 touch point

CST816S em resumo

Item

Valor

Fonte

Endereço I2C (7 bits)

0x15

Espressif esp_lcd_touch_cst816s; exemplo de device-tree do Linux

Pontos de toque

1 (dedo único)

Driver da Espressif e README

Dados de toque

Começa em 0x01 (gesto), depois 0x02 (dedos), X em 0x03–0x04, Y em 0x05–0x06

Driver hynitron-cst816x do Linux

Registrador de Chip ID

0xA7

Driver da Espressif

Compatível com Linux

hynitron,cst816s

Binding de device-tree do Linux

Lendo um toque

O driver do Linux lê 6 bytes a partir do registrador 0x01:

Registrador

Conteúdo

0x01

Código do gesto

0x02

Número de dedos (0 ou 1)

0x03–0x04

X, big-endian, 12 bits baixos

0x05–0x06

Y, big-endian, 12 bits baixos

Códigos de gesto tratados pelo driver do Linux: 0x01 deslizar para cima, 0x02 deslizar para baixo, 0x03 deslizar para a esquerda, 0x04 deslizar para a direita, 0x0C pressionamento longo.

O CST816S não responde até você tocá-lo

O README da Espressif adverte que o chip "só responde a comandos I2C após um evento, como a detecção de um toque. Não espere que ele responda na inicialização." É por isso que um scanner I2C executado no boot frequentemente não encontra nada em 0x15, e por isso o ESPHome tem uma opção skip_probe que pula a leitura do chip ID na inicialização. A Espressif acrescenta que, em alguns chips, ler o ID pode fazer a inicialização falhar. Toque na tela enquanto faz a varredura, ou pule a verificação do ID.

Reset e interrupção

  • O driver do Linux aciona o reset por 50 ms, o libera e aguarda 100 ms. O driver da Espressif aguarda 200 ms de cada lado.
  • O INT é opcional no driver da Espressif (ele pode fazer polling). O driver do Linux solicita uma interrupção e falha no probe sem uma.

Toques fantasma

Um desenvolvedor publicou um sketch de teste mostrando o CST816D no Waveshare ESP32-S3-Touch-LCD-2 reportando toques que ninguém fez, principalmente ao longo da linha central vertical, em duas placas e com o próprio código de demonstração da Waveshare. Nenhuma correção foi confirmada. Se você ver toques fantasma, primeiro execute a demo do fabricante para separar o hardware do seu código, depois verifique a alimentação e o aterramento da placa antes de filtrar toques em software.

Controladores relacionados

O componente cst816 do ESPHome lista CST716, CST816D, CST816S, CST816T, CST820, CST826 e CST836. Para painéis multi-touch de 4″ a 7″, veja GT911; para displays redondos de 1.28″, consulte nosso guia de GC9A01 + ESP32.

Guias e comparativos

CST816S: solução de problemas e perguntas frequentes

Por que meu CST816S não é detectado no I2C?

O CST816S só responde ao I2C após um evento como um toque, portanto uma varredura na inicialização normalmente não encontra nada em 0x15. Toque na tela durante a varredura, libere o reset primeiro e, no ESPHome, configure skip_probe: true. A Espressif observa que, em alguns chips, ler o ID pode fazer a inicialização falhar.

O CST816S suporta multi-touch?

Não. Ele reporta um único dedo; o driver da Espressif limita a contagem de pontos a 1. Ele reporta gestos: deslizar para cima, para baixo, para a esquerda e para a direita, além de toque longo. Para multi-touch, use um controlador da classe GT911.

Por que meu CST816 reporta toques fantasma?

Um relatório público mostra um CST816D no Waveshare ESP32-S3-Touch-LCD-2 reportando toques ao longo da linha central vertical com o próprio código de demonstração do fornecedor, e nenhuma correção foi confirmada. Execute a demo do fornecedor para descartar um problema no seu código e, em seguida, verifique a alimentação e o aterramento antes de filtrar os toques em software.

Fontes

  1. Espressif ESP-BSP: driver esp_lcd_touch_cst816s
  2. Espressif ESP-BSP: README do esp_lcd_touch_cst816s
  3. Kernel Linux: drivers/input/touchscreen/hynitron-cst816x.c
  4. Kernel Linux: binding de device tree hynitron,cst816x
  5. ESPHome: touchscreen CST816
  6. seanuleh: sketch de teste de toque fantasma para Waveshare ESP32-S3-Touch-LCD-2 (CST816D)

Não sabe qual display combina com o seu projeto?

Envie o tamanho, a interface e o processador host. Um engenheiro de displays responde em até 12 horas com 2–3 opções, datasheets e código de inicialização. Amostras a partir de 1 pç.