FT6336 概览
项目 | 参数值 | 资料来源 |
|---|---|---|
触点数量 | 2 个触点,或 1 个触点加手势 | FT6336G 数据手册 |
I2C 地址(7 位) | | Adafruit 与 Espressif 驱动 |
I2C SCL 时钟频率 | 10 至 400 kHz | FT6336G 数据手册 |
报告速率 | 最高 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,而其直流参数表将 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 的数据手册,因此关于它的信息来自驱动源代码。
读取触点数据
ESPHome 的 FT63x6 源代码会读取以下寄存器:
寄存器 | 内容 |
|---|---|
| 设备模式(ESPHome 写入 |
| 触点数量,低 4 位 |
| 事件位于位 7:6,X 坐标高位位于位 3:0 |
| X 坐标低字节 |
| 触点 ID 位于位 7:4,Y 坐标高位位于位 3:0 |
| Y 坐标低字节 |
| 触点权重 |
| 触发阈值 |
| 有效触点报告速率(ESPHome 写入 |
| 芯片 ID |
第二个触点采用相同布局,地址向上偏移 6 字节,从 0x09 开始。ESPHome 会忽略 0x00 或 0xFF 的触点数量。
复位与上电时序
摘自 FT6336G 数据手册:
- 复位脉冲(Trst):RSTN 引脚保持低电平至少 5 ms。
- 复位后(Trsi):至少需要 300 ms 才开始上报触点。
- 上电后(Tpon):至少需要 300 ms 才开始上报触点。
- 上电前:将 RSTN 保持为低电平。同时建议将 INT 和 I2C 线也保持为低电平。
- 重新上电:让电源电压降至 0.3 V 以下并保持超过 5 ms。
各驱动在这方面的做法不同。Linux 的 edt-ft5x06 驱动在释放复位后等待 300 ms,与数据手册一致。ESPHome 的复位流程将复位保持 10 ms,释放后不添加任何等待。Espressif 的 FT5x06 驱动将复位保持 10 ms,然后等待 10 ms。
工作模式与 I2C
数据手册列出了三种模式:
- Active(主动):默认以每秒 60 帧的速率扫描,主机可以更改此速率。
- Monitor(监测):默认以每秒 25 帧的速率扫描。触摸会使它返回 Active 模式。数据手册称在此模式下"串口关闭"。
- Hibernation(休眠):掉电模式,需要复位或来自主机的唤醒信号才能退出。
Monitor 模式的说明可能影响空闲面板上的 I2C 扫描。我们并未亲自测量过这一点,因此在排查时可将其列为待排除因素:扫描时触摸一下面板。
常见症状与解决方法
症状 | 检查方法 |
|---|---|
扫描 | 确认 RSTN 为高电平,复位后等待 300 ms,然后在扫描的同时触摸面板。随后检查 SDA、SCL 和上拉电阻。 |
ESPHome 日志报 "FT6336U touch driver failed to start" | ESPHome 从 |
库拒绝该芯片 ID | 不同型号的 ID 不同:Adafruit 列出 |
触摸过于灵敏或不够灵敏 | 寄存器 |
第三根手指无上报 | 这是芯片本身的限制:数据手册和 Linux 驱动均只给出 2 个触摸点。如需更多触摸点,请参见 GT911。 |
驱动支持
- ESPHome: 使用
ft63x6平台,可选配置reset_pin和interrupt_pin。I2C 必须已配置。其文档中提到的开发板为 WT32-SC01,其源码日志中为 FT6336U。 - Linux: 没有 FT6336 的条目。最接近的是 edt-ft5x06 驱动中的
focaltech,ft6236,支持 2 个触摸点,且必须提供compatible、reg和interrupts属性。我们尚未在 FT6336 上测试过此驱动。 - ESP-IDF:
esp_lcd_touch_ft5x06驱动默认使用地址0x38和 100 kHz。其源码最多覆盖 5 个触摸点,且未提及 FT6336,因此依赖它之前请先核对你的具体型号。 - Arduino: Adafruit 的 FT6206 库定义了 FT6336U 的芯片 ID,并默认使用地址
0x38。
相关控制器
圆形显示屏的单指触摸,请参见 CST816S。更大的面板,请参见 GT911。M5Stack Core2 是使用 FT6336U 的开发板之一。
指南与对比
FT6336 排障与常见问题
FT6336 的 I2C 地址是多少?
Adafruit 和 Espressif 的驱动均使用 0x38(7 位),Linux 在其 FT5x06 系列绑定示例中也使用同一值。我们所查阅的 FT6336G 数据手册并未给出该地址,因此请在你的开发板上通过 I2C 扫描加以确认。
我的 FT6336 为什么在 I2C 上无响应?
先检查 RSTN 是否为高电平,然后复位后至少等待 300 ms:这是数据手册规定其在开始上报触摸点之前的最短时间。数据手册还指出串口在 Monitor 模式下是关闭的,因此在怀疑接线之前,请先触摸面板并再次扫描。
FT6336、FT6336G 和 FT6336U 之间有什么区别?
FocalTech 的数据手册列出 FT6336G 具有 31 个通道,适用于最大 4.0″ 的面板;FT6336DMB 具有 36 个通道,适用于最大 4.5″ 的面板。我们没有找到 FT6336U 的数据手册。Adafruit 的库给它的芯片 ID 为 0x64,与 FT6236U 相同。