i2c触摸屏调试

Chinese, Simplified

1.      概述

i2c接口的触摸屏驱动每个厂家都不一样,Amlink平台目前支持汇顶公司和敦泰公司的大部分触摸屏芯片。其它厂家的后续陆续支持。

2.     触摸问题排查

2.1 如果触摸屏无法工作,请先排查硬件连线,接口电平是否跟开发板一致,务必确保sda/scl 有4.7k左右的上拉电阻。一般建议多测试几块屏,排除硬件单体不良。

 

2.2 然后排查i2c是否能正常通信,方法如下,接好屏后,开机,插入usb线,命令行终端输入以下adb命令

敦泰的ic,输入:adb shell "ls  /sys/bus/i2c/drivers/ft5x0x/ "

汇顶的ic,输入:adb shell "ls /sys/bus/i2c/drivers/gt9xx "

正常会显示4个文件,如:

 屏幕快照 2018-07-02 下午4.45.19.png                                            

第一个表示i2c的地址(汇顶地址是0x5d,敦泰地址是0x38,7位地址),如果只有后3个文件,则说明开机检测触屏i2c失败。如果失败,重点排查硬件,以及i2c地址是否不一样。(android 6.0, gt和ft驱动有点差异,如果开机检测不到触屏,gt的驱动目录会卸载掉,也就是/sys/bus/i2c/drivers/gt9xx目录会没有。但ft的驱动目录不管有没有触屏都会一直保留,跟android5.1模块的现象一样

 

开机后,也可以输入adb指令读设备寄存器,在确保屏亮即系统没有休眠的情况下,输入:

屏幕快照 2018-07-02 下午4.27.25.png

上述2行i2ctransfer命令是读取i2c总线1上从设备地址是0x5d,寄存器地址是0x8000的2字节的值,返回结果是0x47 0x4f. 上述例子是针对汇顶ic的。

 

敦泰ic可以读a6寄存器(或参考规格书读其它寄存器),如:

屏幕快照 2018-07-02 下午4.44.14.png

 

 2.3  如果2.2 pass,触摸还是没反应,需进一步排查是否有触摸坐标数据上报,一方面可以测量下中断信号是否有脉冲变化(触摸的时候)。另一方面,可以用adb命令查看,先输入adb shell getevent, (如显示太多数据,请及时按ctrl+c终止)前面几行会列出当前所有的输入设备名,如:

屏幕快照 2018-07-02 下午4.46.33.png

其中i2c触摸的设备名称是是“mtk-tpd”,由上图知道,对应的设备是/dev/input/event3,然后输入

adb shell getevent | grep event3

(windows系统输入adb shell getevent | findstr “event3”)

接着点击触摸屏,观察刚才输入命令的终端窗口是否有数据打压出来,如果有可以分析坐标是否正确,下图是截取部分数据:

屏幕快照 2018-07-02 下午4.47.02.png

关键是下面2行:

/dev/input/event3: 0003 0035 00000174

/dev/input/event3: 0003 0036 0000023e

 

分别表示触摸的坐标x/y是174/23e,换算成十进制是372/574,一般来说,屏幕左上角坐标是最小值0/0左右,右下角是最大值,如719/1279 。以此类推。

 

如果测试后还是无法定位问题,请把上述的测试情况反馈给我们。support@temolin.com


文档中心

以上内容是否对您有帮助?