本文提供触摸屏出现异常排查思路参考,包括软件方面,硬件方面排查;排查手法,排查思路由简单排查到较深入排查,由简便初步排查到麻烦步骤排查,按照顺序排查,基本可以定位到哪个环节出现问题。
排查思路参考
排查方法可按照自己理解,或者已知现象直接定位排查,然后使用方法确认问题根因,可加速尽快解决问题。不用按照流程一步步排查,但是若不知问题根因,可参考此流程一点点确认。
排查总流程简述
- 使用 $ demsg 命令查看内核日志,驱动加载以及工作是否正常。
- 使用 $ getevet -l 命令,手指触摸,查看是否有事件上报。
- 使用万用表测量中断是否触发。
以上除 2 外需继续细致排查。
- 查看硬件原理图,确认没备树配置正确。
- 检查设备树,排除有相同地址,相同总线情况。
- 按照规格书配置时序,排除时序影响。
- 使用逻辑分析仪或示波器,飞线抓取 i2c 数据,逐个细致分析数据是否正常。
若仍然无法定位到问题。
- 协调硬件工程师排查上电台阶是否存在、爬升坡度坡度是否正常, i2c 时钟上电台阶是否正常。
- 同时进行对比交叉实验,针对性分析问题位置。
- 最后,除了排查驱动,硬件方面,平台本身代码,也可能存在问题。
排查流程详述
1. 使用 demsg 命令查看内核日志 .驱动加载以及工作是否正常
连接 adb 后,如果现象必现,可使用命令 $ dmesg -w | grep (TP关键字) ,来查看触摸屏工作日志,进行初步定位,或者驱动加载状况确认,也需观看初始化日志,确认驱动加载情况。
2. 使用getevet -l命令,手指触摸,查看是否有事件上报。
连接 adb 后,在现象发生的时候,使用命令 $ getevent -l ,首先查看驱动 input 设备是否正常加载,随后手指触摸屏幕,正常需有 input 事件上报。
@若有事件上报:则转给 应用层 开发人员排查
@若无事件上报:则继续排查
3. 使用万用表测量中断是否触发
使用万用表测量电路板中断引脚,在手动触摸,查看电平是否变化,中断是否触发。
4. 查看硬件原理图,确认没备树配置正确
查看硬件原理图,对比驱动设备树配置,确定设备书配置正确,并核对设备书使用是否正确。
5. 检查设备树,排除有相同地址,相同总线情况
再确保设备树中,无使用中设备与此驱动产生资源冲突,如地址冲突,总线冲突,引脚冲突
6. 按照规格书,配置时序,排除时序影响
查看器件规格书中时序部分,先简单量取时序高低电平是否一致,若一致,则稍后无法找到问题根因,可尝试严格按照规格书配置时序
7. 使用逻辑分析仪或示波器,飞线抓取i2c数据,逐帧分析数据是否正常
使用逻辑分析仪或者示波器,对照驱动代码,分析各个 I2C 指令产生原因,寻找异常指令产生原因。
8. 协调硬件工程师排查上电台阶是否存在、爬升坡度坡度是否正常,i2c时钟,上电台阶是否正常
请求硬件工程师一同分析,抓取上电波形,查看上电台阶是否正常,上电爬升坡度与正常对比,I2C 相关电气信号是否正常
9. 同时进行对此交叉实验,针对性分析问题位置
同时别忘了进行对比交叉实验,尽快确定问题根因
10. 最后,除了排查驱动,硬件方面,平台本身代码,也可能存在问题
驱动,硬件方面排查无果,或者进度缓慢,可同步联系平台支持,排除平台本身问题。