匯頂GT928調試總結

匯頂GT928調試總結

一、GT928正常工作的前提條件:

a、通過RST和INT腳的拉的電平時序確定設備地址是0x5D還是0x14;
b、IIC訪問設備地址成功讀到到TP信息;
–> 只有當以上兩個條件同時達到,kernel drivers纔會將該設備地址掛載到IIC總線上,以及加載並配置INT口,進入TP中斷事件處理流程;

二、軟件配置支持:

a、配置TP IC掛載的IIC總線 b、中斷和復位使用的GPIO口配置 c、配置系統給TP中斷信號處理的外部斷號 d、檢查IO口配置是否正確;

三、遇到的問題:

描述:完成軟件相關的驅動及配置工作後,通過i2cdetect工具查看發現IIC總線上沒有掛載TP IC對應的設備地址;
–> 查看設備對應驅動的初始化過程Log,提示IIC訪問設備地址不成功,錯誤原因是設備沒有回覆ACK;
可能原因:設備上電覆位異常,沒有正常工作;
–> 檢查電源供電,及示波器測量中斷及復位腳的波形,若都正常,則應該是和設備IIC通信不通;
可能原因:IIC被拉住;
–> 通過用示波器測量IIC clk和data線波形確認,或者用邏輯分析儀抓取數據,若不能抓取到ARM發出的數據,則說明IIC總線被拉住;調試遇到的問題是——IIC沒有被拉住,示波器測量也能量到波形,但就是和設備地址通信設備沒有回覆ACk?
原因:則很有可能是ARM和設備通信的線序連接不正確,導致數據收發存在問題;
–>檢查IIC通信的線序,此步驟應該是放在第一步做的單純測量到clk和data上有數據並不說明硬件IIC這部分是正常的,當出現IIC發送數據成功但收不到模塊回的ACK時,需要特別去確認這個可能因素。

四、調試遇到的坑:

i、IIC的clk和data線序反,一般調試新的硬件平臺或飛線調試模塊時,優先確認線序是否正確,這是開始軟件功能調試的前提;
ii、IIC data線或者clk線被拉低,IIC總線不能正常工作,導致設備不能掛在到IIC總線上;
iii、因爲中斷和復位使用的IO口配置了內部上拉,導致rst腳拉不低或者中斷腳拉不低的問題,所以配置完成後,要檢查IO口的配置是否正確,參考對比正常平臺上IO口的配置即可;

i2cdetect工具不能查看到 IIC總線上的設備地址時,有兩種可能情形導致:
1> 設備上電覆位操作不成功,模塊工作不正常,導致IIC總線上的設備沒有正常掛載;
2> 因爲IIC 設備初始化時,會依據dts配置的設備地址進行讀寫訪問,只有訪問成功後,設備驅動才能正常加載,並將設備掛載到系統IIC總線上;

五、調試後還存在的問題或疑問:

存在的問題:RST腳在復位操作過程中,不能拉低(3.3V 拉低到1.2V),可能會導致設備復位不成功而不能正常工作及掛載到IIC總線上;
疑問:-要是IIC設備貼在具體某一路IIC上,但是dts文件中沒有配置設備相關地址信息,IIC總線上是否會掛載該設備呢?i2cdetect工具應該也查看不到該設備吧?
–>如,將7729配置信息從dts文件中去掉,編譯鏡像確認是否還會掛載到IIC總線上?
–>確認:即使去掉7729模塊驅動,系統仍會掛載7729設備地址到IIC總線上,爲什麼?應該是7729模塊硬件確定設備地址,上電即可正常工作,不需要額外的IO時序確定設備地址,IIC通信正常也是7729模塊正常掛載到IIC總線上的前提(若clk和data線序接反,很定也是掛載不了的);

總結:

分析處理這類問題的原則:
1、分析此類問題時,做好自己工作內容的確認,以及分析可能導致這個問題的原因(必要條件達成才能使模塊正常工作),做好交流,哪些是需要硬件協助確認、排查的;相信自己做的工作,並善於用對比試驗說明問題,或者抓取數據說明,數據才能說服人,用階段分析結論指導下一步問題分析方向,多思考和請教、及時溝通,藉助力量一起分析,可能導致這個現象及問題出現的可能原因及條件;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章