I2c设备-tp驱动分析(二)

转载请注明出处 !!

流程:

module_init → i2c 注册 → 驱动注册 → 驱动初始化 → 设备的注册→ 上电(硬件初始化) → 固件下载(软件初始化) → 中断申请 → 结束

TP 无触摸分析:

  1. TP 无触摸的现象: 主要变现为触摸 TP 无反应,或者一部分区域无反应。

  2. TP 无触摸的分类 由于触摸 TP 无反应有很多原因,有可能是没有中断,也有可能是有中断但 是不能准确触摸,所以 TP 无反应主要分为两种:

1、有中断性质;2、无中断性质;

  1. TP 无触摸的确认 TP 无触摸的可以通过 adb信息查看:1、adb shell cat proc/kmsg2、adb shell getevent

  2. 导致没有中断的原因

软件方面的原因:

  • ① 中断的模式,中断引脚是否正确 ----- 中断引脚一般出现问题的 概率性很大

  • ② TP 的固件是否正确 ---- 即.h 有没有下载正确,主要的办法就是将 (3.0)里的数据打印出来跟正确测试 OK 的.h 对比来判断。

  • ③ I2C 是否能正常通讯 ---- 没有中断很多原因都是 i2c 不通导致,所 以优先考虑

  1. I2C 不通:如何判断驱动 i2c 是否通讯成功?
  • 1、硬件方面:用示波器查看波形,测试每个 GPIO 的电压。 1/每个 GPIO 的电压:VCC 电压 2.8V----3.3V,SDA,SCL 电压 1.8V 或 2.8V,主要是指芯片的 VDDIO 的电压。RST 电压 1.8V 或者 2.8V IRQ 电压 1.8V 或者 2.8V2/ 通过示波器查看 SDA 跟 SCL 的波形

  • 2、软件方面:通过读写某些的寄存器,读写的方法主要有两种: 1/ 读 0xfc 或者 0xb0 的值。 2/ 向某个寄存器写入一个数据,然后再将该地址里的数据读出来, 对比读前后两个数据是否相同。

软件方面:

  • 1、检查 i2c 是否注册成功 ls sys/bus/i2c/devices/主要是通过 adb shell 来查看,在 sys/bus/i2c/devices/下有没有 1-0040 或 者 0-0040 这个地址,并且在该目录下有我们 i2c 设备的相关信息, if no 则说明i2c 没有注册成功

  • 2、GPIO 的配置 i2c 总线的配置

硬件方面:

主要考虑每个 GPIO 的电压 通过万用表可以测试开机后 IC 每个引脚的电压,主要就是 VCC、SDA、 SCL、RST 的电压。这里重点测试 VCC 电压跟 SDA、SCL 电压是否达到要求。

I2c设备-tp驱动分析(二)_第1张图片
image
I2c设备-tp驱动分析(二)_第2张图片
image
I2c设备-tp驱动分析(二)_第3张图片
image
I2c设备-tp驱动分析(二)_第4张图片
image

[图片上传中...(image-887d98-1511600277619-0)]

你可能感兴趣的:(I2c设备-tp驱动分析(二))