ข้ามไปยังเนื้อหา
Display Engineer
ตัวควบคุมระบบสัมผัส · Hynitron

CST816S: datasheet ผังขา และโค้ดเริ่มต้น

CST816S เป็นชิปควบคุมทัชสกรีนแบบ capacitive จุดเดียวจาก Hynitron ใช้อินเทอร์เฟซ I2C และมีท่าทางสัมผัส (gesture) ในตัว ใช้บนจอแสดงผลขนาดเล็กและจอกลม เช่น โมดูล 1.28″ 240×240

DEDisplay Engineer Applications Team · วิศวกรแอปพลิเคชันด้านจออัปเดต 21 ต.ค. 2569
ผู้ผลิตHynitron
ประเภทตัวควบคุมระบบสัมผัส
อินเทอร์เฟซI2C
ความละเอียดสูงสุด1 touch point

CST816S ภาพรวม

รายการ

ค่า

แหล่งอ้างอิง

ที่อยู่ I2C (7 บิต)

0x15

Espressif esp_lcd_touch_cst816s; ตัวอย่าง device-tree ของ Linux

จำนวนจุดสัมผัส

1 (นิ้วเดียว)

ไดรเวอร์และ README ของ Espressif

ข้อมูลสัมผัส

เริ่มที่ 0x01 (gesture) ตามด้วย 0x02 (จำนวนนิ้ว) X อยู่ที่ 0x03–0x04, Y อยู่ที่ 0x05–0x06

ไดรเวอร์ Linux hynitron-cst816x

รีจิสเตอร์ Chip ID

0xA7

ไดรเวอร์ของ Espressif

ค่า compatible บน Linux

hynitron,cst816s

device-tree binding ของ Linux

การอ่านค่าสัมผัส

ไดรเวอร์ Linux อ่าน 6 ไบต์จากรีจิสเตอร์ 0x01:

รีจิสเตอร์

เนื้อหา

0x01

รหัส gesture

0x02

จำนวนนิ้ว (0 หรือ 1)

0x03–0x04

X, big-endian, 12 บิตล่าง

0x05–0x06

Y, big-endian, 12 บิตล่าง

รหัส gesture ที่ไดรเวอร์ Linux รองรับ: 0x01 ปัดขึ้น, 0x02 ปัดลง, 0x03 ปัดซ้าย, 0x04 ปัดขวา, 0x0C กดค้าง

CST816S จะไม่ตอบสนองจนกว่าคุณจะแตะหน้าจอ

README ของ Espressif เตือนว่าชิปนี้ "จะตอบสนองต่อคำสั่ง I2C หลังจากมีเหตุการณ์เกิดขึ้นเท่านั้น เช่น การตรวจจับการสัมผัส อย่าคาดหวังว่าจะตอบสนองตอน init" นั่นคือเหตุผลที่ I2C scanner ตอนบูตมักไม่พบอะไรที่ 0x15 และเหตุผลที่ ESPHome มีตัวเลือก skip_probe สำหรับข้ามการอ่าน Chip ID ตอนเริ่มต้น Espressif เสริมด้วยว่าในชิปบางรุ่นการอ่าน ID อาจทำให้การเริ่มต้นล้มเหลว ให้แตะหน้าจอขณะสแกน หรือข้ามการตรวจสอบ ID ไป

การรีเซ็ตและขาอินเทอร์รัปต์

  • ไดรเวอร์ Linux ดึงขา reset ค้างไว้ 50 ms ปล่อยแล้วรอ 100 ms ส่วนไดรเวอร์ของ Espressif รอ 200 ms ทั้งสองช่วง
  • INT เป็นแบบเลือกใช้ในไดรเวอร์ของ Espressif (สามารถ poll แทนได้) ไดรเวอร์ Linux จะขอ interrupt และ probe ไม่สำเร็จหากไม่มีขานี้

การสัมผัสผิด (ghost touch)

มีนักพัฒนาเผยแพร่เทสต์สเก็ตช์ที่แสดงว่า CST816D บนบอร์ด Waveshare ESP32-S3-Touch-LCD-2 รายงานการสัมผัสที่ไม่มีใครแตะ ส่วนใหญ่อยู่บนแนวเส้นกึ่งกลางแนวตั้ง ซึ่งเกิดขึ้นบนบอร์ดสองตัวและด้วยโค้ดเดโมของ Waveshare เอง ยังไม่มีวิธีแก้ที่ยืนยันได้ หากพบ ghost touch ให้รันเดโมของผู้ผลิตก่อนเพื่อแยกปัญหาฮาร์ดแวร์ออกจากโค้ดของคุณ จากนั้นตรวจสอบไฟเลี้ยงและกราวด์ของบอร์ด ก่อนจะกรองการสัมผัสด้วยซอฟต์แวร์

คอนโทรลเลอร์ที่เกี่ยวข้อง

คอมโพเนนต์ cst816 ของ ESPHome ระบุ CST716, CST816D, CST816S, CST816T, CST820, CST826 และ CST836 สำหรับพาเนลมัลติทัชขนาด 4″–7″ ดู GT911 สำหรับจอแสดงผลกลมขนาด 1.28″ ดูคู่มือ GC9A01 + ESP32 ของเรา

คู่มือและการเปรียบเทียบ

การแก้ปัญหาและคำถามที่พบบ่อยของ CST816S

ทำไม CST816S ของฉันจึงไม่ถูกตรวจพบบน I2C?

CST816S จะตอบสนองบน I2C ก็ต่อเมื่อมีอีเวนต์เช่นการสัมผัสเกิดขึ้นเท่านั้น ดังนั้นการสแกน I2C ตอนบูตมักไม่พบอะไรที่ 0x15 ให้แตะหน้าจอขณะสแกน ปล่อยพินรีเซ็ตก่อน และใน ESPHome ให้ตั้งค่า skip_probe: true Espressif ระบุว่าบนชิปบางรุ่นการอ่าน ID อาจทำให้การเริ่มต้นล้มเหลว

CST816S รองรับมัลติทัชหรือไม่?

ไม่ รายงานได้เพียงนิ้วเดียว ไดรเวอร์ของ Espressif จำกัดจำนวนจุดสัมผัสไว้ที่ 1 แต่รายงานท่าทาง (gesture) ได้ ได้แก่ ปัดขึ้น ลง ซ้าย ขวา และกดค้าง สำหรับมัลติทัชให้ใช้คอนโทรลเลอร์ระดับ GT911

ทำไม CST816 ของฉันจึงรายงาน ghost touch?

มีรายงานสาธารณะหนึ่งรายการที่พบว่า CST816D บน Waveshare ESP32-S3-Touch-LCD-2 รายงานการสัมผัสตามแนวเส้นกึ่งกลางแนวตั้งแม้ใช้โค้ดสาธิตของผู้ขายเอง และยังไม่มีวิธีแก้ที่ได้รับการยืนยัน ให้รันโค้ดสาธิตของผู้ขายเพื่อตัดปัญหาจากโค้ดของคุณออกก่อน จากนั้นตรวจสอบการจ่ายไฟและกราวด์ก่อนจะกรองการสัมผัสในซอฟต์แวร์

แหล่งที่มา

  1. Espressif ESP-BSP: ไดรเวอร์ esp_lcd_touch_cst816s
  2. Espressif ESP-BSP: README ของ esp_lcd_touch_cst816s
  3. Linux kernel: drivers/input/touchscreen/hynitron-cst816x.c
  4. Linux kernel: device-tree binding ของ hynitron,cst816x
  5. ESPHome: จอสัมผัส CST816
  6. seanuleh: สเก็ตช์ทดสอบ ghost touch สำหรับ Waveshare ESP32-S3-Touch-LCD-2 (CST816D)

ไม่แน่ใจว่าจอแบบใดเหมาะกับงานออกแบบของคุณ?

ส่งขนาด อินเทอร์เฟซ และโปรเซสเซอร์โฮสต์มาให้เรา วิศวกรจอจะตอบกลับภายใน 12 ชั่วโมงพร้อมตัวเลือก 2–3 รายการ datasheet และโค้ดเริ่มต้น ตัวอย่างเริ่มที่ 1 ชิ้น