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

FT6336: หมายเหตุดาต้าชีต & การตั้งค่า

FT6336 เป็นชิปคอนโทรลเลอร์ทัชสกรีนแบบ self-capacitive ของ FocalTech สื่อสารผ่านอินเทอร์เฟซ I2C รองรับจุดสัมผัสได้ถึง 2 จุด อัตรารายงานสูงสุด 100 Hz นิยมใช้กับจอทัชขนาดเล็กไม่เกินประมาณ 4″

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

FT6336 ภาพรวมสเปกสำคัญ

รายการ

ค่า

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

จุดสัมผัส

2 จุด หรือ 1 จุดพร้อมท่าทางสัมผัส (gesture)

ดาต้าชีต FT6336G

ที่อยู่ I2C (7-bit)

0x38

ไดรเวอร์จาก 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 อ่านค่าจากรีจิสเตอร์เหล่านี้:

รีจิสเตอร์

เนื้อหา

0x00

โหมดของอุปกรณ์ (ESPHome เขียนค่า 0x00)

0x02

จำนวนจุดสัมผัส, 4 บิตล่าง

0x03

อีเวนต์ที่บิต 7:6, บิตสูงของ X ที่บิต 3:0

0x04

ไบต์ล่างของ X

0x05

Touch ID ที่บิต 7:4, บิตสูงของ Y ที่บิต 3:0

0x06

ไบต์ล่างของ Y

0x07

น้ำหนักของจุดสัมผัส

0x80

เกณฑ์การสัมผัส

0x88

อัตราการสแกนเมื่อมีการสัมผัส (ESPHome เขียนค่า 0x0E)

0xA3

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 บนแผงที่อยู่ในสถานะพัก เราไม่ได้ทำการวัดนี้เอง จึงควรถือเป็นสิ่งที่ต้องตัดออกไปก่อน: ให้สัมผัสแผงไปด้วยขณะสแกน

อาการและวิธีแก้

อาการ

วิธีตรวจสอบ

ไม่พบอะไรเลยที่ 0x38

ตรวจยืนยันว่า RSTN เป็น logic high รอ 300 ms หลังรีเซ็ต แล้วแตะที่พาเนลขณะสแกน จากนั้นตรวจสอบ SDA, SCL และตัวต้านทาน pull-up

ESPHome แจ้ง log "FT6336U touch driver failed to start"

ESPHome อ่านค่า 0 จาก 0xA3 และจะ log ข้อผิดพลาดนี้แล้วทำงานต่อไป จึงควรตรวจสอบสายไฟและจังหวะเวลาของรีเซ็ต

ไลบรารีปฏิเสธ chip ID

chip ID ต่างกันตามรุ่น: Adafruit ระบุ 0x06 สำหรับ FT6206, 0x36 สำหรับ FT6236 และ 0x64 สำหรับ FT6236U และ FT6336U ควรตรวจว่าไลบรารีของคุณยอมรับค่าใด

ทัชนิ้วไวเกินไปหรือไม่ไวพอ

รีจิสเตอร์ 0x80 มีค่าที่ขึ้นกับพาเนล Adafruit ตั้งค่าเริ่มต้นเป็น 128 ซึ่ง "คาลิเบรต" มาสำหรับจอ 2.8″ ของตัวเอง ส่วนไดรเวอร์ FT5x06 ของ Espressif เขียนค่า 70 อย่าสันนิษฐานว่าค่าใดค่าหนึ่งจะเหมาะกับพาเนลของคุณ

นิ้วที่สามไม่ถูกรายงาน

นี่คือขีดจำกัดของชิป: datasheet และไดรเวอร์ Linux ต่างระบุจุดสัมผัสได้ 2 จุด หากต้องการมากกว่านี้ ดูที่ GT911

การรองรับไดรเวอร์

  • ESPHome: ใช้ platform ft63x6 พร้อมตัวเลือก reset_pin และ interrupt_pin โดยต้องตั้งค่า I2C เอกสารของมันระบุบอร์ด WT32-SC01 และซอร์สโค้ดของมัน log ว่า FT6336U
  • Linux: ไม่มีรายการสำหรับ FT6336 ที่ใกล้เคียงที่สุดคือ focaltech,ft6236 ในไดรเวอร์ edt-ft5x06 ซึ่งรองรับ 2 จุด และต้องระบุ property compatible, 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

แหล่งที่มา

  1. FocalTech: FT6336G datasheet v1.0
  2. FocalTech: FT6X36 series datasheet v0.3
  3. ESPHome: FT63X6 touchscreen
  4. ESPHome: ft63x6.cpp source
  5. Linux kernel: drivers/input/touchscreen/edt-ft5x06.c
  6. Linux kernel: edt-ft5x06 device-tree binding
  7. Espressif ESP-BSP: ไดรเวอร์ esp_lcd_touch_ft5x06
  8. Adafruit: ไฟล์ header ของไลบรารี FT6206

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

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