본문으로 건너뛰기
Display Engineer
터치 컨트롤러 · Hynitron

CST816S: 데이터시트, 핀 배치 및 초기화 코드

CST816S는 Hynitron의 I2C 인터페이스와 내장 제스처 기능을 갖춘 단일 터치 정전식 터치 컨트롤러로, 1.28″ 240×240 모듈 등 소형 및 원형 디스플레이에 사용됩니다.

DEDisplay Engineer Applications Team · 디스플레이 애플리케이션 엔지니어업데이트: 2026년 10월 21일
제조사Hynitron
유형터치 컨트롤러
인터페이스I2C
최대 해상도1 touch point

CST816S 한눈에 보기

항목

값

출처

I2C 주소 (7비트)

0x15

Espressif esp_lcd_touch_cst816s; Linux 디바이스 트리 예제

터치 포인트 수

1 (단일 터치)

Espressif 드라이버 및 README

터치 데이터

0x01 (제스처)부터 시작, 다음 0x02 (터치 수), X는 0x03–0x04, Y는 0x05–0x06

Linux hynitron-cst816x 드라이버

칩 ID 레지스터

0xA7

Espressif 드라이버

Linux compatible

hynitron,cst816s

Linux 디바이스 트리 바인딩

터치 읽기

Linux 드라이버는 레지스터 0x01에서 6바이트를 읽습니다:

레지스터

내용

0x01

제스처 코드

0x02

터치 핑거 수 (0 또는 1)

0x03–0x04

X, 빅 엔디안, 하위 12비트

0x05–0x06

Y, 빅 엔디안, 하위 12비트

Linux 드라이버가 처리하는 제스처 코드: 0x01 위로 슬라이드, 0x02 아래로 슬라이드, 0x03 왼쪽 슬라이드, 0x04 오른쪽 슬라이드, 0x0C 길게 누름.

CST816S는 터치하기 전까지는 응답하지 않습니다

Espressif의 README는 이 칩이 "터치 감지와 같은 이벤트가 발생한 후에만 I2C 명령에 응답합니다. 초기화 시점에 응답을 기대하지 마십시오."라고 경고합니다. 그렇기 때문에 부팅 시 I2C 스캐너로는 0x15에서 아무것도 발견되지 않는 경우가 많으며, ESPHome에 시작 시 칩 ID 읽기를 건너뛰는 skip_probe 옵션이 있는 이유이기도 합니다. Espressif는 일부 칩에서는 ID를 읽을 경우 초기화가 실패할 수 있다고 덧붙입니다. 스캔하는 동안 화면을 터치하거나 ID 확인을 건너뛰십시오.

리셋 및 인터럽트

  • Linux 드라이버는 리셋을 50 ms 동안 구동한 후 해제하고 100 ms 동안 대기합니다. Espressif의 드라이버는 각 단계마다 200 ms씩 대기합니다.
  • Espressif의 드라이버에서 INT는 선택 사항입니다(폴링 가능). Linux 드라이버는 인터럽트를 요청하며, 인터럽트가 없으면 프로브에 실패합니다.

팬텀(고스트) 터치

한 개발자가 Waveshare ESP32-S3-Touch-LCD-2의 CST816D가 아무도 터치하지 않은 터치를 보고하는 현상을, 두 개의 보드와 Waveshare 자체 데모 코드로도 재현되는 테스트 스케치를 공개했습니다. 주로 수직 중앙선을 따라 발생했으며, 확인된 해결책은 아직 없습니다. 고스트 터치가 보이면 먼저 벤더의 데모를 실행하여 하드웨어 문제와 코드 문제를 분리하고, 소프트웨어에서 터치를 필터링하기 전에 보드의 전원 및 접지 상태를 확인하십시오.

관련 컨트롤러

ESPHome의 cst816 컴포넌트는 CST716, CST816D, CST816S, CST816T, CST820, CST826, CST836을 지원합니다. 4″–7″ 멀티터치 패널은 GT911을, 1.28″ 라운드 디스플레이는 GC9A01 + ESP32 가이드를 참고하세요.

가이드 및 비교

CST816S 문제 해결 및 FAQ

CST816S가 I2C에서 감지되지 않는 이유는?

CST816S는 터치와 같은 이벤트가 발생한 후에만 I2C로 응답하므로, 부팅 시 스캔에서는 0x15 주소가 보통 아무것도 찾지 못합니다. 스캔하는 동안 화면을 터치하고, 먼저 리셋을 해제하며, ESPHome에서는 skip_probe: true로 설정하세요. Espressif에 따르면 일부 칩에서는 ID를 읽는 과정이 초기화 실패를 유발할 수 있습니다.

CST816S는 멀티터치를 지원하나요?

아니요. 단일 터치만 보고하며, Espressif의 드라이버도 포인트 수를 1로 제한합니다. 다만 제스처(상하좌우 슬라이드, 롱프레스)는 보고합니다. 멀티터치가 필요하면 GT911급 컨트롤러를 사용하세요.

CST816에서 고스트 터치(유령 터치)가 발생하는 이유는?

공개된 사례 중 하나에서 Waveshare ESP32-S3-Touch-LCD-2에 장착된 CST816D가 벤더 자체 데모 코드로도 화면 세로 중앙선을 따라 터치를 보고하는 현상이 있었으며, 아직 확정된 해결 방법은 없습니다. 먼저 벤더 데모를 실행해 코드 문제를 배제하고, 소프트웨어적으로 터치를 필터링하기 전에 전원과 그라운딩을 점검하세요.

출처

  1. Espressif ESP-BSP: esp_lcd_touch_cst816s 드라이버
  2. Espressif ESP-BSP: esp_lcd_touch_cst816s README
  3. Linux 커널: drivers/input/touchscreen/hynitron-cst816x.c
  4. Linux 커널: hynitron,cst816x 디바이스 트리 바인딩
  5. ESPHome: CST816 터치스크린
  6. seanuleh: Waveshare ESP32-S3-Touch-LCD-2 (CST816D) 고스트 터치 테스트 스케치

어떤 디스플레이가 설계에 맞는지 고민되시나요?

크기, 인터페이스, 호스트 프로세서를 알려 주세요. 디스플레이 엔지니어가 12시간 이내에 데이터시트와 초기화 코드를 포함한 2–3가지 옵션을 회신합니다. 샘플 1개부터.