最近在调试全志T527的触摸功能时,发现GT911触摸芯片的I2C地址有时是0x5d,有时又识别成0x14,不知道大家有没有遇到过类似这个情况。

图片

图片

虽然最后使用0x5d地址调通了触摸功能,但是一直还是很困惑,为什么会出现0x14和0x5d两个i2c地址呢?

于是开始在GT911芯片规格书寻找答案...

查阅规格书发现,原来GT911会根据RTS和INT的开机时序来决定I2C地址是0x14还是0x5d。

在通信中GT911始终作为从设备,其I2C设备地址由7位设备地址加1位读写控制位组成,高7位为地址,bit0为读写控制位。GT911有两个从设备地址可供选择, 如下表:

图片

每次上电或复位时需要使用 INT 脚进行I2C地址设置,如下是设定不同I2C地址的时序图。

设定地址为 0x28/0x29 的时序:

图片

设定地址为 0xBA/0xBB 的时序:

图片

在实际应用中,Linux内核提供的gt9xx.c触摸驱动默认时序设定的I2C地址为0x5d,调试中偶尔出现0x14地址,多数情况是由于dts的RTS或INT引脚配置不正确导致。

至于GT911为什么要有两个I2C地址,下回分解。

欢迎关注“嵌入式分享”,持续更新!

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐