Langsung ke konten
Display Engineer
Pengontrol sentuh · Hynitron

CST816S: datasheet, pinout & kode inisialisasi

CST816S adalah controller layar sentuh kapasitif single-touch dari Hynitron dengan antarmuka I2C dan gestur bawaan, digunakan pada layar kecil dan bulat seperti modul 1,28″ 240×240.

DEDisplay Engineer Applications Team · Display application engineerDiperbarui 21 Okt 2026
ProdusenHynitron
TipePengontrol sentuh
AntarmukaI2C
Resolusi maks1 touch point

Sekilas tentang CST816S

Item

Nilai

Sumber

Alamat I2C (7-bit)

0x15

Espressif esp_lcd_touch_cst816s; contoh device-tree Linux

Titik sentuh

1 (satu jari)

Driver dan README Espressif

Data sentuhan

Dimulai di 0x01 (gestur), lalu 0x02 (jumlah jari), X di 0x03–0x04, Y di 0x05–0x06

Driver hynitron-cst816x Linux

Register Chip ID

0xA7

Driver Espressif

Compatible Linux

hynitron,cst816s

Binding device-tree Linux

Membaca data sentuhan

Driver Linux membaca 6 byte dari register 0x01:

Register

Isi

0x01

Kode gestur

0x02

Jumlah jari (0 atau 1)

0x03–0x04

X, big-endian, 12 bit rendah

0x05–0x06

Y, big-endian, 12 bit rendah

Kode gestur yang ditangani driver Linux: 0x01 geser ke atas, 0x02 geser ke bawah, 0x03 geser ke kiri, 0x04 geser ke kanan, 0x0C tekan lama.

CST816S tidak merespons sebelum ada sentuhan

README Espressif memperingatkan bahwa chip ini "hanya merespons perintah I2C setelah ada event, seperti deteksi sentuhan. Jangan berharap chip merespons saat init." Itulah sebabnya I2C scanner saat boot sering tidak menemukan apa pun di 0x15, dan mengapa ESPHome menyediakan opsi skip_probe yang melewati pembacaan chip ID saat startup. Espressif menambahkan bahwa pada sebagian chip, membaca ID dapat membuat inisialisasi gagal. Sentuh layar saat memindai, atau lewati pemeriksaan ID.

Reset dan interrupt

  • Driver Linux men-drive reset selama 50 ms, melepaskannya, lalu menunggu 100 ms. Driver Espressif menunggu 200 ms di setiap sisi.
  • INT bersifat opsional pada driver Espressif (driver bisa melakukan polling). Driver Linux meminta interrupt dan gagal probe jika tidak ada.

Sentuhan hantu (phantom touch)

Seorang developer telah mempublikasikan sketch tes yang menunjukkan CST816D pada Waveshare ESP32-S3-Touch-LCD-2 melaporkan sentuhan yang tidak pernah dilakukan siapa pun, sebagian besar di sepanjang garis tengah vertikal, pada dua board dan dengan kode demo bawaan Waveshare sendiri. Belum ada perbaikan yang terkonfirmasi. Jika Anda melihat sentuhan hantu, jalankan dulu demo dari vendor untuk memisahkan masalah perangkat keras dari kode Anda, lalu periksa catu daya dan grounding board sebelum melakukan pemfilteran sentuhan di perangkat lunak.

Kontroller terkait

Komponen cst816 milik ESPHome mencantumkan CST716, CST816D, CST816S, CST816T, CST820, CST826, dan CST836. Untuk panel multi-touch 4″–7″ lihat GT911; untuk display bulat 1.28″ lihat panduan GC9A01 + ESP32 kami.

Panduan & perbandingan

CST816S: troubleshooting & FAQ

Mengapa CST816S saya tidak terdeteksi di I2C?

CST816S hanya merespons di I2C setelah ada peristiwa seperti sentuhan, jadi pemindaian saat boot biasanya tidak menemukan apa pun di 0x15. Sentuh layar saat memindai, lepaskan reset terlebih dahulu, dan di ESPHome atur skip_probe: true. Espressif mencatat bahwa pada beberapa chip, pembacaan ID dapat menyebabkan inisialisasi gagal.

Apakah CST816S mendukung multi-touch?

Tidak. Ia hanya melaporkan satu jari; driver Espressif membatasi jumlah titik pada 1. Namun ia melaporkan gestur: geser atas, bawah, kiri, dan kanan, serta tekan lama. Untuk multi-touch gunakan kontroller kelas GT911.

Mengapa CST816 saya melaporkan ghost touch?

Satu laporan publik menunjukkan CST816D pada Waveshare ESP32-S3-Touch-LCD-2 melaporkan sentuhan di sepanjang garis tengah vertikal dengan kode demo bawaan vendor itu sendiri, dan belum ada perbaikan yang terkonfirmasi. Jalankan demo vendor untuk menyingkirkan kemungkinan kesalahan kode Anda, lalu periksa daya dan grounding sebelum memfilter sentuhan di perangkat lunak.

Sumber

  1. Espressif ESP-BSP: driver esp_lcd_touch_cst816s
  2. Espressif ESP-BSP: README esp_lcd_touch_cst816s
  3. Kernel Linux: drivers/input/touchscreen/hynitron-cst816x.c
  4. Kernel Linux: binding device-tree hynitron,cst816x
  5. ESPHome: layar sentuh CST816
  6. seanuleh: sketsa uji ghost-touch untuk Waveshare ESP32-S3-Touch-LCD-2 (CST816D)

Belum yakin display mana yang cocok untuk desain Anda?

Kirimkan ukuran, antarmuka, dan prosesor host Anda. Display engineer akan membalas dalam 12 jam dengan 2–3 opsi, datasheet, dan kode inisialisasi. Sampel mulai 1 pcs.