今天是新項目調試的第一天。
不管我怎么修改我的軟件配置,我們的PHY始終不能驅動成功,從內核日志里面就是讀不到PHY的ID地址。
我不死心,我覺得應該不是軟件的問題,然后找老劉討論,我說「要不我們測量下波形吧,這里讀出來的ID是不對的」。
老劉說「你現在設置的PHY ID是多少?是不是跟我們硬件上的配置不一樣」。
因為之前調試過PHY芯片,我說「開機的時候,驅動會循環掃描PHY的ID,只要PHY ID 在我們掃描的范圍內,就肯定是可以掃描出來」。
然后我找了一個帥哥,這個帥哥是一個真正的帥哥,因為他的名字里面有一個特別的帥字。
我找他的原因是因為他手里有一個硬件設備,那個硬件設備的PHY芯片和我們正在調試的硬件設備是一樣的,我想用那個設備來看看內核的開機日志。
從這個日志里面看到的是可以讀到PHY的ID的。
之前在一個文章里面說過,PHY的作用就像I2S和功放芯片一樣。所以如果PHY芯片驅動不正常,我之后的switch芯片也不能正常調試,是讓我挺頭痛的。
我跟老劉說,我們把這個板子上的MDC和MDIO飛線到那個可以的板子上讀下PHY ID吧,然后又是搗鼓了好長一會時間。
讀到的ID也不正確,但是有數據出來了。
上午的時間過得很快,反復測試了好長時間,有一個帥哥就叫我去吃午飯了。
老劉剛用上了示波器,剛開始測量MDC和MDIO的信號,老劉跟我說「為什么MDC的信號高電平那么低?」
然后我又開始搗鼓代碼,我從dts編譯生成的tmp文件里面不斷的查,把可能被復用的地方都注釋掉,然后再重新編譯出來燒錄進去,因為硬件有點奇怪的問題,不能直接進入bootloader 模式燒錄,每次需要把編譯出來的boot.img打包成整個update.img再燒錄,這個過程消耗了我非常久的時間。
然后發現無論怎么修改,MDC的電平總是上不去,我就干脆不讓PHY驅動控制這個GPIO口,自己寫了一個sys文件系統的驅動來控制,可以用指令拉高拉低的「這個是我自己的調試驅動,正常用sysfs下的GPIO也可以」,測試一輪后發現還是有問題。
這個時候老劉說「可能我們這個示波器有問題,我要換一個牛逼點點示波器」。
過了一會,老劉搬來一個很大的示波器,這個示波器看起來很牛逼,探頭也很新,屏幕也很大,掃描的頻率也更高。
不過遺憾的是,那個GPIO口的電平還是上不去。
不過這個時候,老劉說,臥槽,好像這兩個地方反了。
本來是MDC連接GPIO14,MDIO連接GPIO15的,老劉的原理圖上把MDC接到了GPIO15上,MDIO連接到了GPIO14上。
當然,我們想到的第一個辦法就是不要修改硬件,直接通過修改軟件配置把這兩個GPIO口換一下。
芯片原廠給出來的調試里面也寫了幾個重要的調試手段。
然后就開始修改GPIO口的映射,結果令人遺憾的還是不成功。
這個時候應該去看看芯片的GPIO功能手冊的,但是時間比較晚了,老劉果斷找了一個板子把兩個GPIO 給調換了下,這調換可是廢九牛二虎之力,因為當時設計的時候就沒有想過會出問題,里面有一個過孔,需要把過孔的部分給斷開后再連接起來。
然后就繼續整。
老劉這個時候看起來已經著急了,這樣的一個技術專家,被這樣的一個GPIO口給調戲了一整天,我這個時候還記得早上他說的那句「發哥,這個是小問題,今天一定能全部調通」。
我下樓去給老劉買水,我擔心一直在他旁邊他更著急了,10幾分鐘后回來,老劉把東西幾乎整得差不多了,剛才不能開機的板子也修理好了。
然后我們開機,我繼續看了下PHY ID ,還是沒有讀取出來。
我們繼續拿了那個最貴的示波器看了下,這個時候波形什么的都已經是正常的,幅值也正確了。
然后這個時候我想到了復位時序。
我說等我修改下,我把復位時序加長了一些,然后開機,終于看到了那個該死的PHY ID。
因為每個PHY芯片對復位的時間不同
我們用的這個RTL8201芯片的復位時序要求如下
如果那個低電平小于10ms,那是不行的。
審核編輯:劉清
-
示波器
+關注
關注
113文章
6441瀏覽量
187602 -
PHY
+關注
關注
2文章
310瀏覽量
52366 -
GPIO
+關注
關注
16文章
1238瀏覽量
53274 -
MDIO
+關注
關注
0文章
14瀏覽量
11302
原文標題:被一個gpio口搞死的一天
文章出處:【微信號:嵌入式與Linux那些事,微信公眾號:嵌入式與Linux那些事】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
HTR3306 6路LED驅動器和GPIO控制器中文手冊
HTR3310 10路LED驅動器和GPIO控制器中文手冊
HTR3316 16路LED驅動器和GPIO控制器中文手冊
使用Labview做一個485串口電子秤程序
GPIO使用教程 GPIO接口應用
同一個74AHC138控制輸出的8個GPIO口是可以同時輸出的嗎?
GPIO模塊與其他外設的連接方法
GPIO錯誤排查與解決
藍橋杯的第一個項目,點亮一個LED

GPIO內部電路的原理

評論