91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

被一個(gè)GPIO口搞死的一天

嵌入式與Linux那些事 ? 來(lái)源:嵌入式Linux ? 2023-06-12 14:08 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

今天是新項(xiàng)目調(diào)試的第一天。

不管我怎么修改我的軟件配置,我們的PHY始終不能驅(qū)動(dòng)成功,從內(nèi)核日志里面就是讀不到PHY的ID地址。

504621c6-08d9-11ee-962d-dac502259ad0.png

我不死心,我覺(jué)得應(yīng)該不是軟件的問(wèn)題,然后找老劉討論,我說(shuō)「要不我們測(cè)量下波形吧,這里讀出來(lái)的ID是不對(duì)的」。

老劉說(shuō)「你現(xiàn)在設(shè)置的PHY ID是多少?是不是跟我們硬件上的配置不一樣」。

因?yàn)橹罢{(diào)試過(guò)PHY芯片,我說(shuō)「開(kāi)機(jī)的時(shí)候,驅(qū)動(dòng)會(huì)循環(huán)掃描PHY的ID,只要PHY ID 在我們掃描的范圍內(nèi),就肯定是可以?huà)呙璩鰜?lái)」。

然后我找了一個(gè)帥哥,這個(gè)帥哥是一個(gè)真正的帥哥,因?yàn)樗拿掷锩嬗幸粋€(gè)特別的帥字。

我找他的原因是因?yàn)樗掷镉幸粋€(gè)硬件設(shè)備,那個(gè)硬件設(shè)備的PHY芯片和我們正在調(diào)試的硬件設(shè)備是一樣的,我想用那個(gè)設(shè)備來(lái)看看內(nèi)核的開(kāi)機(jī)日志。

5062943c-08d9-11ee-962d-dac502259ad0.png

從這個(gè)日志里面看到的是可以讀到PHY的ID的。

之前在一個(gè)文章里面說(shuō)過(guò),PHY的作用就像I2S和功放芯片一樣。所以如果PHY芯片驅(qū)動(dòng)不正常,我之后的switch芯片也不能正常調(diào)試,是讓我挺頭痛的。

我跟老劉說(shuō),我們把這個(gè)板子上的MDC和MDIO飛線(xiàn)到那個(gè)可以的板子上讀下PHY ID吧,然后又是搗鼓了好長(zhǎng)一會(huì)時(shí)間。

讀到的ID也不正確,但是有數(shù)據(jù)出來(lái)了。

50773842-08d9-11ee-962d-dac502259ad0.png

上午的時(shí)間過(guò)得很快,反復(fù)測(cè)試了好長(zhǎng)時(shí)間,有一個(gè)帥哥就叫我去吃午飯了。

老劉剛用上了示波器,剛開(kāi)始測(cè)量MDC和MDIO的信號(hào),老劉跟我說(shuō)「為什么MDC的信號(hào)高電平那么低?」

然后我又開(kāi)始搗鼓代碼,我從dts編譯生成的tmp文件里面不斷的查,把可能被復(fù)用的地方都注釋掉,然后再重新編譯出來(lái)燒錄進(jìn)去,因?yàn)橛布悬c(diǎn)奇怪的問(wèn)題,不能直接進(jìn)入bootloader 模式燒錄,每次需要把編譯出來(lái)的boot.img打包成整個(gè)update.img再燒錄,這個(gè)過(guò)程消耗了我非常久的時(shí)間。

然后發(fā)現(xiàn)無(wú)論怎么修改,MDC的電平總是上不去,我就干脆不讓PHY驅(qū)動(dòng)控制這個(gè)GPIO口,自己寫(xiě)了一個(gè)sys文件系統(tǒng)的驅(qū)動(dòng)來(lái)控制,可以用指令拉高拉低的「這個(gè)是我自己的調(diào)試驅(qū)動(dòng),正常用sysfs下的GPIO也可以」,測(cè)試一輪后發(fā)現(xiàn)還是有問(wèn)題。

這個(gè)時(shí)候老劉說(shuō)「可能我們這個(gè)示波器有問(wèn)題,我要換一個(gè)牛逼點(diǎn)點(diǎn)示波器」。

過(guò)了一會(huì),老劉搬來(lái)一個(gè)很大的示波器,這個(gè)示波器看起來(lái)很牛逼,探頭也很新,屏幕也很大,掃描的頻率也更高。

不過(guò)遺憾的是,那個(gè)GPIO口的電平還是上不去。

不過(guò)這個(gè)時(shí)候,老劉說(shuō),臥槽,好像這兩個(gè)地方反了。

本來(lái)是MDC連接GPIO14,MDIO連接GPIO15的,老劉的原理圖上把MDC接到了GPIO15上,MDIO連接到了GPIO14上。

5086ffde-08d9-11ee-962d-dac502259ad0.png

當(dāng)然,我們想到的第一個(gè)辦法就是不要修改硬件,直接通過(guò)修改軟件配置把這兩個(gè)GPIO口換一下。

芯片原廠(chǎng)給出來(lái)的調(diào)試?yán)锩嬉矊?xiě)了幾個(gè)重要的調(diào)試手段。

50937228-08d9-11ee-962d-dac502259ad0.png

然后就開(kāi)始修改GPIO口的映射,結(jié)果令人遺憾的還是不成功。

這個(gè)時(shí)候應(yīng)該去看看芯片的GPIO功能手冊(cè)的,但是時(shí)間比較晚了,老劉果斷找了一個(gè)板子把兩個(gè)GPIO 給調(diào)換了下,這調(diào)換可是廢九牛二虎之力,因?yàn)楫?dāng)時(shí)設(shè)計(jì)的時(shí)候就沒(méi)有想過(guò)會(huì)出問(wèn)題,里面有一個(gè)過(guò)孔,需要把過(guò)孔的部分給斷開(kāi)后再連接起來(lái)。

然后就繼續(xù)整。

老劉這個(gè)時(shí)候看起來(lái)已經(jīng)著急了,這樣的一個(gè)技術(shù)專(zhuān)家,被這樣的一個(gè)GPIO口給調(diào)戲了一整天,我這個(gè)時(shí)候還記得早上他說(shuō)的那句「發(fā)哥,這個(gè)是小問(wèn)題,今天一定能全部調(diào)通」。

我下樓去給老劉買(mǎi)水,我擔(dān)心一直在他旁邊他更著急了,10幾分鐘后回來(lái),老劉把東西幾乎整得差不多了,剛才不能開(kāi)機(jī)的板子也修理好了。

然后我們開(kāi)機(jī),我繼續(xù)看了下PHY ID ,還是沒(méi)有讀取出來(lái)。

我們繼續(xù)拿了那個(gè)最貴的示波器看了下,這個(gè)時(shí)候波形什么的都已經(jīng)是正常的,幅值也正確了。

509f7104-08d9-11ee-962d-dac502259ad0.jpg

然后這個(gè)時(shí)候我想到了復(fù)位時(shí)序。

我說(shuō)等我修改下,我把復(fù)位時(shí)序加長(zhǎng)了一些,然后開(kāi)機(jī),終于看到了那個(gè)該死的PHY ID。

50b5c24c-08d9-11ee-962d-dac502259ad0.png

因?yàn)槊總€(gè)PHY芯片對(duì)復(fù)位的時(shí)間不同

我們用的這個(gè)RTL8201芯片的復(fù)位時(shí)序要求如下

50c5c7e6-08d9-11ee-962d-dac502259ad0.png

如果那個(gè)低電平小于10ms,那是不行的。





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 示波器
    +關(guān)注

    關(guān)注

    113

    文章

    7082

    瀏覽量

    196158
  • PHY
    PHY
    +關(guān)注

    關(guān)注

    2

    文章

    335

    瀏覽量

    54109
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1329

    瀏覽量

    56244
  • MDIO
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    11565

原文標(biāo)題:被一個(gè)gpio口搞死的一天

文章出處:【微信號(hào):嵌入式與Linux那些事,微信公眾號(hào):嵌入式與Linux那些事】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    嵌入式新手必看!GPIO調(diào)試從0到1:計(jì)算、操作、排錯(cuò)全指南

    在嵌入式開(kāi)發(fā)中,GPIO(通用輸入輸出口)是最基礎(chǔ)也最常用的硬件接口 —— 小到控制顆 LED 亮滅、讀取個(gè)按鍵狀態(tài),大到驅(qū)動(dòng)傳感器、控制外設(shè),都離不開(kāi)
    的頭像 發(fā)表于 02-01 16:55 ?2698次閱讀
    嵌入式新手必看!<b class='flag-5'>GPIO</b>調(diào)試從0到1:計(jì)算、操作、排錯(cuò)全指南

    【MCU學(xué)習(xí)】GPIO詳解

    本實(shí)驗(yàn)通過(guò)個(gè)“小實(shí)驗(yàn)框架 GPIO Mode Lab”,在同一個(gè) GPIO 引腳上依次配置不同模式,并用 ADC 探頭測(cè)量電壓、同時(shí)讀取數(shù)
    的頭像 發(fā)表于 01-24 11:45 ?3697次閱讀
    【MCU學(xué)習(xí)】<b class='flag-5'>GPIO</b>詳解

    ARM Cortex M3系列的GPIO介紹

    DMA控制器可直接操作APB外設(shè),而無(wú)需等待總線(xiàn)寫(xiě)操作完成。 M3數(shù)字I/O功能:高速GPIO,其寄存器移到外設(shè)AHB總線(xiàn),可以字節(jié),半字和字尋址。 位電平置位和清零寄存器允許單指令置位和清零一
    發(fā)表于 01-22 06:42

    【乾芯QXS320F開(kāi)發(fā)板試用】拿板第一天:環(huán)境準(zhǔn)備

    驅(qū)動(dòng)。 根據(jù)原理圖,板載LED在GPIO8. 修改宏定義為L(zhǎng)ED4 8 (這里例程里是5,我也不知道咋回事,沒(méi)看原理圖之前還以為程序不能用) 再點(diǎn)燒錄就解決了。 總之 第一天點(diǎn)亮了LED,也踩了
    發(fā)表于 12-08 17:27

    如何控制蜂鳥(niǎo)E203的GPIO

    _enable_output(). 要控制個(gè)gpio,首先要使能輸入或者輸出,然后才能讀或者寫(xiě)。 1、例如要讀GPIOB的0號(hào)接口,把GPIO
    發(fā)表于 10-22 07:36

    【EK-RA6E2開(kāi)發(fā)指南】GPIO使用

    我相信大多數(shù)學(xué)習(xí)嵌入式的朋友學(xué)習(xí)單片機(jī)的第一個(gè)程序都是點(diǎn)燈,畢竟點(diǎn)燈簡(jiǎn)單嘛,操作下GPIO即可。當(dāng)然,本教程的第一個(gè)應(yīng)用也從GPIO的使用開(kāi)始。
    的頭像 發(fā)表于 09-23 18:13 ?3447次閱讀
    【EK-RA6E2開(kāi)發(fā)指南】<b class='flag-5'>GPIO</b>使用

    vision board GPIO輸出電壓不對(duì)是什么原因?qū)е碌模?/a>

    在RASC里配置p510引腳輸出模式,initial high后電壓只有0.9v,換了個(gè)vision board后還是只有0.9,此前一天c電壓正常
    發(fā)表于 09-18 07:09

    深度揭秘GPIO的三重身份:從普通IO到AGPIO與Wakeup IO

    分享Air780EPM的GPIO使用注意事項(xiàng)及硬件設(shè)計(jì)要點(diǎn),產(chǎn)品手冊(cè)、原理圖、應(yīng)用示例等資料持續(xù)更新開(kāi)放。 、GPIO復(fù)用表及LuatIO配置工具 Air780EPM模組共支持38個(gè)
    的頭像 發(fā)表于 08-11 13:44 ?735次閱讀
    深度揭秘<b class='flag-5'>GPIO</b>的三重身份:從普通IO到AGPIO與Wakeup IO

    FX3是否支持配置個(gè)GPIO引腳作為個(gè)弱下拉的輸入?

    FX3是否支持配置個(gè)GPIO引腳作為個(gè)弱下拉的輸入?如果可以的話(huà),這將如何完成?#CYUSB3014
    發(fā)表于 08-11 07:47

    股價(jià)一天暴漲倍,全球碳化硅龍頭起死回生?

    。 ? ? 此次大漲的個(gè)主要原因是Wolfspeed任命了新的首席財(cái)務(wù)官(CFO)Gregor van Issum。他將于2025年9月1日正式上任,并將主導(dǎo)公司的財(cái)務(wù)重組工作。 ? Gregor
    的頭像 發(fā)表于 07-09 00:16 ?4674次閱讀
    股價(jià)<b class='flag-5'>一天</b>暴漲<b class='flag-5'>一</b>倍,全球碳化硅龍頭起死回生?

    vision board GPIO輸出電壓不對(duì)是什么原因?qū)е碌模?/a>

    在RASC里配置p510引腳輸出模式,initial high后電壓只有0.9v,換了個(gè)vision board后還是只有0.9,此前一天c電壓正常
    發(fā)表于 06-10 08:24

    HTR3306 6路LED驅(qū)動(dòng)器和GPIO控制器中文手冊(cè)

    或輸出。? ? 通電后,6個(gè)IO端口配置默認(rèn)為GPIO輸出,默認(rèn)狀態(tài)根據(jù)AD0和AD1決定。所有配置為輸入的IO端口都會(huì)持續(xù)監(jiān)控狀態(tài)變化,并具有8us的防抖動(dòng)時(shí)間,IO的變化由INTN輸出指示。當(dāng)
    發(fā)表于 04-14 17:41 ?1次下載

    HTR3310 10路LED驅(qū)動(dòng)器和GPIO控制器中文手冊(cè)

    輸入或輸出。? ? ?通電后,10個(gè)IO端口配置默認(rèn)為GPIO輸出,默認(rèn)狀態(tài)根據(jù)AD0和AD1決定。所有配置為輸入的IO端口都會(huì)持續(xù)監(jiān)控狀態(tài)變化,并具有8us的防抖動(dòng)時(shí)間,IO的變化由INTN輸出指示。當(dāng)
    發(fā)表于 04-14 16:31 ?2次下載

    HTR3316 16路LED驅(qū)動(dòng)器和GPIO控制器中文手冊(cè)

    輸入或輸出。? ? ?通電后,16個(gè)IO端口配置默認(rèn)為GPIO輸出,默認(rèn)狀態(tài)根據(jù)AD0和AD1決定。所有配置為輸入的IO端口都會(huì)持續(xù)監(jiān)控狀態(tài)變化,并具有8us的防抖動(dòng)時(shí)間,IO的變化由INTN輸出指示。當(dāng)
    發(fā)表于 04-11 17:51 ?2次下載

    單片機(jī)學(xué)習(xí)之GPIO

    今日分享如何通過(guò)手冊(cè)理解單片機(jī)IO知識(shí)點(diǎn)含義解釋?zhuān)?.GPIO:同我們常說(shuō)的IO樣,GeneralPurposeInputOutput(通用輸入/輸出)簡(jiǎn)稱(chēng)為GPIO,每個(gè)
    發(fā)表于 03-26 14:53 ?0次下載