I2c設(shè)備-tp驅(qū)動分析(二)

轉(zhuǎn)載請注明出處 !!

流程:

module_init → i2c 注冊 → 驅(qū)動注冊 → 驅(qū)動初始化 → 設(shè)備的注冊→ 上電(硬件初始化) → 固件下載(軟件初始化) → 中斷申請 → 結(jié)束

TP 無觸摸分析:

  1. TP 無觸摸的現(xiàn)象: 主要變現(xiàn)為觸摸 TP 無反應(yīng),或者一部分區(qū)域無反應(yīng)。

    ?

  2. TP 無觸摸的分類 由于觸摸 TP 無反應(yīng)有很多原因,有可能是沒有中斷,也有可能是有中斷但 是不能準確觸摸,所以 TP 無反應(yīng)主要分為兩種:

1、有中斷性質(zhì);2、無中斷性質(zhì);

  1. TP 無觸摸的確認 TP 無觸摸的可以通過 adb信息查看:1、adb shell cat proc/kmsg2、adb shell getevent

  2. 導(dǎo)致沒有中斷的原因

軟件方面的原因:

  • ① 中斷的模式,中斷引腳是否正確 ----- 中斷引腳一般出現(xiàn)問題的 概率性很大

  • ② TP 的固件是否正確 ---- 即.h 有沒有下載正確,主要的辦法就是將 (3.0)里的數(shù)據(jù)打印出來跟正確測試 OK 的.h 對比來判斷。

  • ③ I2C 是否能正常通訊 ---- 沒有中斷很多原因都是 i2c 不通導(dǎo)致,所 以優(yōu)先考慮

  1. 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
image
image
image

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容