FT6336 ภาพรวมสเปกสำคัญ
รายการ | ค่า | แหล่งอ้างอิง |
|---|---|---|
จุดสัมผัส | 2 จุด หรือ 1 จุดพร้อมท่าทางสัมผัส (gesture) | ดาต้าชีต FT6336G |
ที่อยู่ I2C (7-bit) | | ไดรเวอร์จาก Adafruit และ Espressif |
I2C SCL | 10 ถึง 400 kHz | ดาต้าชีต FT6336G |
อัตรารายงาน (report rate) | สูงสุด 100 Hz | ดาต้าชีต FT6336G |
แรงดันใช้งาน | 2.8 V ถึง 3.6 V | ดาต้าชีต FT6336G |
IOVCC | แยกอิสระ 1.8 V ถึง 3.6 V | ดาต้าชีต FT6336G |
อุณหภูมิใช้งาน | −40 °C ถึง 85 °C | ดาต้าชีต FT6336G |
รายการฟีเจอร์ในดาต้าชีตระบุแรงดัน 2.8 V ถึง 3.6 V แต่ในตารางค่า DC ระบุ VDDA และ VDD3 ไว้ที่ 2.8 V ถึง 3.3 V ควรออกแบบตามช่วงที่แคบกว่า เว้นแต่ซัพพลายเออร์โมดูลของคุณจะระบุเป็นอย่างอื่น
FT6336 รุ่นไหนที่คุณใช้อยู่?
รุ่น | จำนวนช่องสัญญาณ | แพ็กเกจ | ขนาดแผงจอ |
|---|---|---|---|
FT6336G | 31 | QFN 5×5, 40 ขา | สูงสุด 4.0″ |
FT6336DMB | 36 | QFN 6×6, 48 ขา | สูงสุด 4.5″ |
ข้อมูลตัวเลขเหล่านี้มาจากดาต้าชีตของ FocalTech สองฉบับ ได้แก่ FT6336G v1.0 และซีรีส์ FT6X36 v0.3 เราไม่พบดาต้าชีตของ FT6336U จึงต้องอ้างอิงจากซอร์สโค้ดของไดรเวอร์สำหรับข้อมูลเกี่ยวกับรุ่นนี้
การอ่านค่าการสัมผัส
ซอร์สโค้ด FT63x6 ของ ESPHome อ่านค่าจากรีจิสเตอร์เหล่านี้:
รีจิสเตอร์ | เนื้อหา |
|---|---|
| โหมดของอุปกรณ์ (ESPHome เขียนค่า |
| จำนวนจุดสัมผัส, 4 บิตล่าง |
| อีเวนต์ที่บิต 7:6, บิตสูงของ X ที่บิต 3:0 |
| ไบต์ล่างของ X |
| Touch ID ที่บิต 7:4, บิตสูงของ Y ที่บิต 3:0 |
| ไบต์ล่างของ Y |
| น้ำหนักของจุดสัมผัส |
| เกณฑ์การสัมผัส |
| อัตราการสแกนเมื่อมีการสัมผัส (ESPHome เขียนค่า |
| Chip ID |
จุดสัมผัสที่สองใช้เลย์เอาต์เดียวกันโดยเลื่อนขึ้น 6 ไบต์ เริ่มที่ 0x09 ESPHome จะไม่สนใจกรณีที่จำนวนจุดสัมผัสเป็น 0x00 หรือ 0xFF
ทาร์มิงของการรีเซ็ตและการเปิดเครื่อง
จากดาต้าชีตของ FT6336G:
- พัลส์รีเซ็ต (Trst): ให้ RSTN เป็นสถานะ LOW อย่างน้อย 5 ms
- หลังรีเซ็ต (Trsi): ต้องรออย่างน้อย 300 ms จึงจะเริ่มรายงานจุดสัมผัส
- หลังจ่ายไฟ (Tpon): ต้องรออย่างน้อย 300 ms จึงจะเริ่มรายงานจุดสัมผัส
- ก่อนจ่ายไฟ: ให้ต่อ RSTN ไว้ที่สถานะ LOW และแนะนำให้ INT และสาย I2C เป็นสถานะ LOW ด้วย
- การเปิด-ปิดไฟใหม่: ปล่อยให้แรงดันจ่ายไฟต่ำกว่า 0.3 V นานเกิน 5 ms
ไดรเวอร์แต่ละตัวมีพฤติกรรมแตกต่างกันในจุดนี้ ไดรเวอร์ edt-ft5x06 ของ Linux รอ 300 ms หลังจากปล่อยรีเซ็ต ซึ่งสอดคล้องกับดาต้าชีต ส่วนรูทีนรีเซ็ตของ ESPHome กดรีเซ็ตไว้ 10 ms และไม่มีการรอหลังปล่อยรีเซ็ต ส่วนไดรเวอร์ FT5x06 ของ Espressif กดรีเซ็ตไว้ 10 ms แล้วจึงรอ 10 ms
โหมดการทำงานและ I2C
ดาต้าชีตระบุโหมดการทำงาน 3 โหมด:
- Active: สแกนที่ความถี่เริ่มต้น 60 เฟรมต่อวินาที และโฮสต์สามารถปรับเปลี่ยนได้
- Monitor: สแกนที่ความถี่เริ่มต้น 25 เฟรมต่อวินาที เมื่อมีการสัมผัสจะกลับเข้าสู่โหมด Active ดาต้าชีตระบุว่าในโหมดนี้ "the serial port is closed"
- Hibernation: โหมดพาวเวอร์ดาวน์ที่ต้องมีการรีเซ็ตหรือสัญญาณปลุกจากโฮสต์
หมายเหตุเรื่องโหมด Monitor อาจมีผลต่อการสแกน I2C บนแผงที่อยู่ในสถานะพัก เราไม่ได้ทำการวัดนี้เอง จึงควรถือเป็นสิ่งที่ต้องตัดออกไปก่อน: ให้สัมผัสแผงไปด้วยขณะสแกน
อาการและวิธีแก้
อาการ | วิธีตรวจสอบ |
|---|---|
ไม่พบอะไรเลยที่ | ตรวจยืนยันว่า RSTN เป็น logic high รอ 300 ms หลังรีเซ็ต แล้วแตะที่พาเนลขณะสแกน จากนั้นตรวจสอบ SDA, SCL และตัวต้านทาน pull-up |
ESPHome แจ้ง log "FT6336U touch driver failed to start" | ESPHome อ่านค่า |
ไลบรารีปฏิเสธ chip ID | chip ID ต่างกันตามรุ่น: Adafruit ระบุ |
ทัชนิ้วไวเกินไปหรือไม่ไวพอ | รีจิสเตอร์ |
นิ้วที่สามไม่ถูกรายงาน | นี่คือขีดจำกัดของชิป: datasheet และไดรเวอร์ Linux ต่างระบุจุดสัมผัสได้ 2 จุด หากต้องการมากกว่านี้ ดูที่ GT911 |
การรองรับไดรเวอร์
- ESPHome: ใช้ platform
ft63x6พร้อมตัวเลือกreset_pinและinterrupt_pinโดยต้องตั้งค่า I2C เอกสารของมันระบุบอร์ด WT32-SC01 และซอร์สโค้ดของมัน log ว่า FT6336U - Linux: ไม่มีรายการสำหรับ FT6336 ที่ใกล้เคียงที่สุดคือ
focaltech,ft6236ในไดรเวอร์ edt-ft5x06 ซึ่งรองรับ 2 จุด และต้องระบุ propertycompatible,regและinterruptsเรายังไม่ได้ทดสอบสิ่งนี้กับ FT6336 - ESP-IDF: ไดรเวอร์
esp_lcd_touch_ft5x06ใช้ที่อยู่0x38และความถี่ 100 kHz เป็นค่าเริ่มต้น ซอร์สโค้ดของมันรองรับสูงสุด 5 จุดและไม่ได้ระบุชื่อ FT6336 จึงควรตรวจสอบรุ่นชิปของคุณก่อนใช้งาน - Arduino: ไลบรารี FT6206 ของ Adafruit กำหนด chip ID ของ FT6336U ไว้และใช้ที่อยู่เริ่มต้น
0x38
คอนโทรลเลอร์ที่เกี่ยวข้อง
สำหรับทัชนิ้วเดียวบนจอทรงกลม ดูที่ CST816S สำหรับพาเนลขนาดใหญ่กว่า ดูที่ GT911 โดย M5Stack Core2 เป็นหนึ่งในบอร์ดที่ใช้ FT6336U
คู่มือและการเปรียบเทียบ
การแก้ปัญหาและคำถามที่พบบ่อยของ FT6336
ที่อยู่ I2C ของ FT6336 คืออะไร?
ไดรเวอร์ของ Adafruit และ Espressif ใช้ที่อยู่ 0x38 (แบบ 7-bit) และ Linux ใช้ค่าเดียวกันในตัวอย่าง binding ของตระกูล FT5x06 โดย datasheet ของ FT6336G ที่เราอ่านไม่ได้ระบุที่อยู่ไว้ จึงควรยืนยันด้วยการสแกน I2C บนบอร์ดของคุณ
ทำไม FT6336 ของฉันจึงไม่ตอบสนองบน I2C?
ตรวจว่า RSTN เป็น logic high แล้วรออย่างน้อย 300 ms หลังรีเซ็ต: นั่นคือค่าขั้นต่ำตาม datasheet ก่อนที่ชิปจะเริ่มรายงานจุดสัมผัส นอกจากนี้ datasheet ยังระบุว่าพอร์ตอนุกรมจะปิดในโหมด Monitor จึงควรแตะที่พาเนลและสแกนซ้ำก่อนที่จะสงสัยที่สายไฟ
FT6336, FT6336G และ FT6336U ต่างกันอย่างไร?
datasheet ของ FocalTech ระบุ FT6336G มี 31 ชาแนลสำหรับพาเนลไม่เกิน 4.0″ และ FT6336DMB มี 36 ชาแนลสำหรับพาเนลไม่เกิน 4.5″ เราไม่พบ datasheet ของ FT6336U โดยไลบรารีของ Adafruit ระบุ chip ID เป็น 0x64 ซึ่งเป็นค่าเดียวกับ FT6236U
แหล่งที่มา
- FocalTech: FT6336G datasheet v1.0
- FocalTech: FT6X36 series datasheet v0.3
- ESPHome: FT63X6 touchscreen
- ESPHome: ft63x6.cpp source
- Linux kernel: drivers/input/touchscreen/edt-ft5x06.c
- Linux kernel: edt-ft5x06 device-tree binding
- Espressif ESP-BSP: ไดรเวอร์ esp_lcd_touch_ft5x06
- Adafruit: ไฟล์ header ของไลบรารี FT6206