触摸驱动常见问题分析(一)

#I2C 类问题
##1、 no acknowledgment
##调试方法:
\qquad 在确认硬件连接正确,管脚电平(主要是 AVDD,RESET 等)正常,VDDIO 设置与主控 IO
电平匹配的前提下,在 probe 函数中 I2C 测试的地方增加以下测试代码:

//for test
While(1)
{
	gtp_i2c_test(client);
	msleep(50);
}

\qquad 然后用示波器同时测量 SCL 和 SDA 的波形,通过测量确定是否有以下现象:
##问题现象:
(1)I2C 寻址不符合该 IC 的 device address;
(2)I2C 波形不够“陡峭”;
(3)I2C 低电平处是否出现明显的阶梯状波形;
(4)I2C 波形时序不符合要求,需要对 I2C 时序非常熟悉才能发现该问题;
(5)I2C 速度超过 IC 所支持的最高速度。
##分析解决:
(1)驱动中 device address 设置错误;
(2)I2C 上拉电阻设置过大,一般 300kHZ 左右的 I2C 速度,上拉电阻推荐 2.2k~4.7k 欧姆,
且速度越高,上拉电阻应该越小;
(3)I2C 上拉电阻设置过小,一般为主控端和模组端重复设置上拉电阻所致;
(4)该问题一般出现在 MTK feature phone、Rockchip RK2818 等一些使用软件 I2C 的主控
上,此时需要调整主控总线驱动的 I2C 时序来纠正错误。
(5)如 GT801 速度不能超过 250kHZ,需要注意各芯片的 I2C 速度限制要求。

##2、设备地址冲突
调试方法:
\qquad TP 驱动正常加载后,拔掉 TP,并打开驱动中的调试信息,用镊子或导线将 INT PIN 交替接
GND 和 VDD,模拟在 INT PIN 上产生方波,观察 Log 信息。
##问题现象:
(1)在上述实验过程中,Log 中没报 I2C no acknowledgment 此类错误信息;
(2)如果 IC 的坐标信息有设置 checksum(如 GT813,811 等),则连接 TP 后画线,会报大
量 checksum error 此类错误信息;
(3)Android 上层使用画线演示工具画线时,会出现明显丢点或者飞线现象。
##分析解决:
\qquad 确认问题后,此类问题可以通过更换同条总线上的冲突设备中其中一个的 device address 来
解除冲突,如果都不能更改,则需要想办法将其中一个设备迁移到其他 I2C 总线上挂载。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值