CST816S 한눈에 보기
항목 | 값 | 출처 |
|---|---|---|
I2C 주소 (7비트) | | Espressif esp_lcd_touch_cst816s; Linux 디바이스 트리 예제 |
터치 포인트 수 | 1 (단일 터치) | Espressif 드라이버 및 README |
터치 데이터 | | Linux hynitron-cst816x 드라이버 |
칩 ID 레지스터 | | Espressif 드라이버 |
Linux compatible | | Linux 디바이스 트리 바인딩 |
터치 읽기
Linux 드라이버는 레지스터 0x01에서 6바이트를 읽습니다:
레지스터 | 내용 |
|---|---|
| 제스처 코드 |
| 터치 핑거 수 (0 또는 1) |
| X, 빅 엔디안, 하위 12비트 |
| 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가 벤더 자체 데모 코드로도 화면 세로 중앙선을 따라 터치를 보고하는 현상이 있었으며, 아직 확정된 해결 방법은 없습니다. 먼저 벤더 데모를 실행해 코드 문제를 배제하고, 소프트웨어적으로 터치를 필터링하기 전에 전원과 그라운딩을 점검하세요.