-
Notifications
You must be signed in to change notification settings - Fork 5
I2C Over HID、USB HID
Barryblueice edited this page Dec 31, 2025
·
2 revisions
根据Windows精确式触摸板——设备总线连接定义,如果设备通过I2C连接到Host,至少需要5个引脚:
- 数据(SDA)
- 时钟(SCL)
- 中断(INT)
- 电源(VCC)
- 接地(GND)
同时手册中建议至少使用400KHz的I2C始终速度且应独享一个I2C控制器,不然可能会导致I2C总线端超量。。
另外手册中也提到了Touchpad I2C Over USB这一情况:
如果决定使用某个 USB 桥将 I²C Windows 精确式触摸板连接到其 Windows 主机,则该桥应使用设备的独特属性(wVendorID、wProductID、wVersionID)将触摸板公开为独特的设备节点。
所以最后开发的时候,我们需要在USB描述符中声明HID TouchPad和Multi-Touch。
要注意的是不要尝试去伪装原有的ELAN触摸板,不然的话可能会加载错误的驱动,最后进入错误的设备路径导致设备无法被识别。
我们需要让Windows相信,这是一个USB HID Touchpad,不是笔记本内建的触摸板,以此来防止驱动栈误判。
而我们ESP32需要把ELAN的I2C Over HID转为USBHID通信,简要概括就是把ELAN的多指状态转为USB HID Touchpad中的多指状态。