GT911触摸芯片
发布时间:2026/10/15 5:05:08 锦皓数字建站

第1章 基础知识1.1 芯片原理1.2 硬件接口GT911 一般通过 6 根线和主控(MCU)连接VDD / GND供电。对应12号引脚/对应49号引脚。SCL / SDAI²C 通信。对应19号引脚和20号引脚。INT触摸中断有触摸变化时通知主控。对应16号引脚。RST复位引脚。对应22号引脚。1.3 GT911上电与复位流程GT911 不是上电就能直接用而是在上电之后需要在驱动里做如下步骤电源稳定后控制RST、INT引脚时序。通过 RST/INT 的组合决定 I²C 地址。RST 拉低一段时间再拉高完成硬件复位。复位后延时等待芯片就绪。读取芯片 ID 寄存器确认通信正常。必要时写入配置参数然后开始读取触摸数据。比较关键的是INT 在上电初始化阶段通常要先当输出用用来设定地址初始化完成后再改成输入用来接收触摸中断。当然INT可以只是在初始化时用来设定地址以后就不用了。是否触摸我们采用轮询的方式实现。1.3.1 RST 和 INT 引脚时序GT911 内部固化了两组 I²C 从机地址它不会让你像写寄存器那样“写入一个新地址”而是通过上电/复位时 对RST 和 INT 引脚发起一个电平组合从而激活GT911使用那组从机地址。通俗的将就是GT911出厂就固化了两个从机地址在芯片内部用户在使用的时候需要控制RST 和 INT 引脚激活具体的哪一个从机地址。两个从机地址如下7 位地址8 位写地址8 位读地址0x140x280x290x5D0xBA0xBBI²C 协议规定设备真实地址只有 7 位但总线上每次发送的地址字节是 8 位。多出来的那 1 位是读写方向位 R/W。[ A6 A5 A4 A3 A2 A1 A0 | R/W ]↑ 7位从机地址 ↑ 读写位写0x14 1 | 0 0x28读0x14 1 | 1 0x291把RST、INT拉低延时10ms把INT拉高延时100us把RST拉高就可以把IIC地址设为0x28/0x29(2) 把RST、INT拉低延时10ms把RST拉高就可以把IIC地址设为0xBA/0xBB1.3.2 读取芯片 ID 寄存器GT911芯片内部的0x8140这个寄存器中存放着芯片的名字“GT911”。我们通过I2C去读取这个寄存器的值来比较判断是否通讯正常。1.4 GT911寄存器的访问GT911 内部有很多寄存器驱动通过 I²C 读写这些寄存器来工作。几个常用寄存器1. 0x8040命令寄存器可写 2 做软件复位写 0 恢复正常。2. 0x8140~0x8143产品 ID 寄存器用来确认是不是 GT911。3. 0x814E触摸状态寄存器表示当前有没有触点、有几个触点。很重要的2个信息很重要的2个信息很重要的2个信息!!!!!!!!!!!1. 读取完0x814E寄存器一定要对这个寄存器写0。2. 该寄存器你最快只能7~10ms来读取一次。读的太快数据都还没准备好相当于做无用功。4. 0x8150 起各触点坐标数据包括 X、Y、触点 ID、接触面积等。由于GT911同时支持5点触摸。至此0x81500x8158、0x8160、0x8168、x8170分别存储着这5组坐标的起始地址。写寄存器时先发 16 位寄存器地址再写数据读寄存器时先写寄存器地址再发起读操作取回数据。1.5 坐标读取方式GT911 坐标读取一般有两种方式中断方式INT 引脚产生边沿驱动进入中断处理函数读取 0x814E 判断是否有触摸再读取坐标寄存器。轮询方式不用中断定时读取 0x814E判断是否有新触点。每次读完触点数据后通常要往0x814E 写 0清除状态否则 INT 可能一直触发。1.6 软件设计第2章 工程实践
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。