轉(zhuǎn)載請注明出處 !!
流程:
module_init → i2c 注冊 → 驅(qū)動注冊 → 驅(qū)動初始化 → 設(shè)備的注冊→ 上電(硬件初始化) → 固件下載(軟件初始化) → 中斷申請 → 結(jié)束
TP 無觸摸分析:
-
TP 無觸摸的現(xiàn)象: 主要變現(xiàn)為觸摸 TP 無反應(yīng),或者一部分區(qū)域無反應(yīng)。
?
TP 無觸摸的分類 由于觸摸 TP 無反應(yīng)有很多原因,有可能是沒有中斷,也有可能是有中斷但 是不能準確觸摸,所以 TP 無反應(yīng)主要分為兩種:
1、有中斷性質(zhì);2、無中斷性質(zhì);
TP 無觸摸的確認 TP 無觸摸的可以通過 adb信息查看:1、adb shell cat proc/kmsg2、adb shell getevent
導(dǎo)致沒有中斷的原因
軟件方面的原因:
① 中斷的模式,中斷引腳是否正確 ----- 中斷引腳一般出現(xiàn)問題的 概率性很大
② TP 的固件是否正確 ---- 即.h 有沒有下載正確,主要的辦法就是將 (3.0)里的數(shù)據(jù)打印出來跟正確測試 OK 的.h 對比來判斷。
③ I2C 是否能正常通訊 ---- 沒有中斷很多原因都是 i2c 不通導(dǎo)致,所 以優(yōu)先考慮
- I2C 不通:如何判斷驅(qū)動 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/ 向某個寄存器寫入一個數(shù)據(jù),然后再將該地址里的數(shù)據(jù)讀出來, 對比讀前后兩個數(shù)據(jù)是否相同。
軟件方面:
1、檢查 i2c 是否注冊成功 ls sys/bus/i2c/devices/主要是通過 adb shell 來查看,在 sys/bus/i2c/devices/下有沒有 1-0040 或 者 0-0040 這個地址,并且在該目錄下有我們 i2c 設(shè)備的相關(guān)信息, if no 則說明i2c 沒有注冊成功
2、GPIO 的配置 i2c 總線的配置
硬件方面:
主要考慮每個 GPIO 的電壓 通過萬用表可以測試開機后 IC 每個引腳的電壓,主要就是 VCC、SDA、 SCL、RST 的電壓。這里重點測試 VCC 電壓跟 SDA、SCL 電壓是否達到要求。




[圖片上傳中...(image-887d98-1511600277619-0)]