【啟動AI Maker世代 】2024 MAI 開發者社群大會(5/16-17)
|

【實作實驗室】USB 插孔短路讓電腦自動關機,從硬體角度探討根本原因

   

作者:實作派

上週同事跟我說有台電腦開不起來,於是我看了一下畫面,出現「USB Device Over Current Status Detected !!」,簡單說就是主機板認為 USB 插孔有短路的現象,造成過電流,所以它會在 15 秒後自動關機,連進入 BIOS 或 UEFI 的機會都沒有。

USB device over current 的錯誤訊息(圖片來源:實作派提供)

爬文看災情

我想這應該不會是個案,所以網路搜尋了一下,果然從 2010 年開始就有這類災情,但絕大部分的處理方式都不是我認同的,因為 Over Current 是硬體的現象,但他們卻不是用硬體的角度來看,只是單純用試誤法 Try and Error、軟體觀點、外加經驗談來做分享解決方案,也許曾經有人用過有效,但對我來說,這些方法無法解釋 Over Current 的訊息是怎麼來的,例如:

  • 加強接地:這和高頻通訊有關,但與直流的過電流沒有關係
  • 試試裸測是否會好:所謂裸測就是不接機殼單測主機板,如果這樣會好,那表示主機板很有問題,就算裸測好了又怎樣,沒找到真正原因之前,換一塊主機板一樣有潛在問題
  • 重裝 BIOS 電池:目的是要將 BIOS 設定 Reset,但只改變設定我不認為會改變過電流的狀態,實際上我試了確實沒用
  • 更新 BIOS:如果根本開不進 BIOS 哪來的更新,除非是拔 IC 硬燒。根據讀者回饋,雖然系統本身有提供 Over current 的功能,但只有華碩主機板有做這個保護,技嘉、微星都沒有做,所以只有華碩主機板會跳這個 Error,那如果主機板硬體有保護 USB 電流的設計,我就會傾向由硬體來解決
  • 檢查 USB 保險絲是否燒毀:如果 5 V 的電流保險絲燒毀,那就表示保險絲為了避免短路犧牲了自己,從此電流流不出去,也不會有短路現象了,但 Over current 訊息依舊,而我的 5 V 也在,表示這個判斷不正確
  • 送原廠維修:網路上找到的最後一種答案類型,大概就是這種沒營養的答案。如果要送原廠維修,我還需要爬文嗎?這與作業系統當機時,出現「請與系統管理員聯絡」,是一樣的無用,因為管理員就是使用者本人。

以下是我認同的維修除錯方式,硬體問題當然要硬體解決。

  • 檢查 USB 孔是否 5 V 針腳與地線 GND 有短路

當然確實有人以上述的方法修好 USB 過電流的主機板,但可惜的是,這並不是我的 Case,顯然我需要的解決方案可能在更深的地方。

簡介 USB Device Over Current

如下圖 USB host 本身可以供電 +5 V,萬一 USB Port 不慎將 +5 V 與地線 GND 短路在一起,在 5 V 的電源線上會產生非常大的電流,因而將供電電路燒毀,而此時USB Device 會因為隔壁的 USB 孔正在短路中,電流都往短路的地方跑,造成 USB Device 電壓不足無法工作。

USB 電源的接線方式(圖片來源:實作派提供)

這種因為短路造成 USB 裝置無法工作的狀況在這裡是不好的情況,但是在電器漏電的情況,我們卻需要這種短路來救命,我先亂入一張圖如下,詳情請看觸電-漏電-如何發生與預防,同樣是短路卻有不同的作用,所以事情都沒有絕對,端看你用在哪裡。

機殼接地避免人員觸電(圖片來源:實作派提供)

言歸正傳,為了避免燒毀 5 V 的情況發生,主機板的晶片組有提供 OC# 腳位,也就是 Over Current 的通知訊號腳位,其中井字號告訴我們低電壓過電流,高電壓表示正常電流,這樣工程師可以利用外部的過電流感測電路透過 OC# 通知晶片組 USB 電源發生短路,進而把 USB 電源關掉,達到保護的作用。不過上圖只是我個人推測而已,OC# 到底在晶片組裡啟動了多少東西,其實我不知道。

除了主動關掉電源外,主機板通常也會額外加上一個保險絲以防萬一,通常這種保險絲是可自動復原的,也就是大電流高溫的時候它的電阻會突然升高,而正常時候的電阻會非常小,這樣可以用來保護 USB device,(電流如果過大也不是沒有燒到掛的可能,但這不是這次的狀況)。

檢查主機板外觀

以前我修過幾片主機板,大部分是因為爆電容產生問題,但這主機板 ASUS P8B75-V 相對來說算新,而且用的都是固態電容,在外觀上我完全看不出有異狀。

發生 Over current 的主機板(圖片來源:實作派提供)

檢查 USB 5 V

既然系統說 USB 有過電流,那我就來看看 USB 5 V 是否有短路或是電壓偏低的現象,於是我測量了每一個 USB port,但每個 Port 卻都有足夠的 5 V 電壓,完全看不出來有被短路的樣子,所有外接 USB 面板的孔也檢查了,全部都沒有短路。

實體沒短路,但系統卻收到 over current 的訊息,這個意思就是說,除非我有線路圖,否則永遠別想看到 OC# 腳位附近的電路。

點位圖-維修的好幫手

要想拿到電路圖,幾乎是不可能的事情,因為對原廠來說這算是機密,但對於維修的商家來說,還是需要基本的維修資訊才能進行維修,因此就有了「點位圖」這種東西,它隱藏了大部分的資訊,只透露電路板兩面的接線名稱,讓店家可以進行維修,避免競爭對手複製。

我剛好夠幸運,在網路上找到有人分享點位圖,而且它遇到的問題也是 over current,聽說這種圖一般要花錢買,所以真的很好運。我拿到的點位圖是 .fz 檔案,它可以由 BoardViewer 打開,這個程式它沒說是否為 Freeware,也沒寫是否為 Open source,總之它用起來像個 Freeware。

既然有工具、有檔案,那就趕快把 fz 檔案打開,看看是不是真的可以用,因為網路上的資訊有時候不太可靠。

結果很順利地就把主機板的點位圖 .fz 檔打開了,如下圖這就是一個扎扎實實的主機板啊,而且型號還是我手上的這塊主機板,雖然版本差一版,但通常不會差太多,還是很有參考價值的。

主機板的點位圖(圖片來源:實作派提供)

發生 Over Current 的位置

既然有前人已經遇到相同問題,那我就直接參考他的作法,他說是晶片組附近接 OC# 的排阻有問題。所謂排阻就是把電阻排起來打包成一個元件,像下圖就是 8 pin 排阻,它由 4 個電阻平行包在一起,只是晶片組附近的排阻還滿多的,到底是哪個跟 USB 有關咧?

網路說是晶片組附近的排阻故障(圖片來源:實作派提供)

於是我就找了下圖中,所有與排阻 URN 有關的地方,果然讓我找到 OC# 的腳位,它位於排阻 URN61、URN62 上,我標示了其中一個 OC#,它的全名為 S_USB_OC#12,圖中我只簡寫 OC#12。前人種樹後人乘涼,有人留下維修經驗我找起來就快多了。

Over current 的發生點在這裡(圖片來源:實作派提供)

我稍微巡了一下其它排阻,還有其他的 USB 接線分別標示如下,前面四個是 USB 2.0,最後兩個是 USB 3.0。

  • S_USB_OC#12
  • S_USB_OC#34
  • S_USB_OC#56
  • S_USB_OC#78
  • S_USB3_OC#12
  • S_USB3_OC#34

根據點位圖這個主機板共有 8 組 USB 2.0,4 組 USB3.0,每兩組共用一個 OC# 監控 USB 電流,那到底哪個電壓被拉成 Low?我們就來測量看看這 6 個 OC# 電壓各是多少。

測量 OC#電壓

經過電壓測量,只有 S_USB_OC#12 的電壓是 0.87 V,電壓明顯偏低,其餘都是 3.27 V,所以只有 S_USB_OC#12 有問題,還好其餘三組沒問題,因為那三組位於排阻 URN81 與 URN82,雖然在點位圖上看起來沒什麼問題,但你如果對照之前照片的話,會發現 URN82 剛好被散熱片蓋住,如果要施工會需要拆散熱片,那超級麻煩。

Over current 故障點的位置(圖片來源:實作派提供)

接下來剩下的問題就是,為什麼 S_USB_OC#12 會被拉成這麼低電壓?我跟據點位圖把 OC# 周邊的連接方式做了簡單的反向工程,畫出過電流的偵測線路。原來它其實只是簡單的電阻分壓而已,原理如下圖,5 V 是來自 USB 的電源,正常情況之下 S_USB_OC#12 會依照分壓定律得到 3.17 V,經過實測其他的 OC# 腳位電壓是 3.27 V。如果 5 V 發生短路,那麼 OC# 的電壓也會跟著往下掉,它不見得會變成 0 V,但肯定會變低,如此就等同於通知晶片組 USB 短路了。

Over current 感測線路(圖片來源:實作派提供)

所以主機板並沒有真的去測量電流是不是變大,它只是利用短路造成的壓降來通知短路現象,你可以說它很聰明,也可以說它 cost reduction,畢竟真正的電流感測器還真有點小複雜,也貴很多。

現在的狀況是 5 V 正常,但 S_USB_OC#12 電壓卻只有 0.87 V,所以根據上面的感測線路,要嘛是 URN62 電阻變小,要嘛就是 URN61 電阻偏高,總之就是電阻故障。

動手更換排阻

既然要換就兩個一起換,於是去買了 4.7 K 與 8.2 K 的排阻,下圖中的 472 就是 47 乘以 10 的 2 次方的意思,也就是 4.7K ohm,822 就是 8.2K ohm。

4.7K 與 8.2K ohm 的 8p 排阻(圖片來源:實作派提供)

首先要把零件解焊下來,通常是用熱風槍,它的溫度可以把焊錫熔化就能移除零件,但我沒有這種東西,就用烙鐵處理,過程中還不慎燒壞了一個焊點PAD,你看下圖中 URN61 有一個地方沒有亮晶晶,就是那裡掉 PAD 了。不過通常會掉 PAD 是因為它空接,無法排掉高溫,只好自己吸收熱量而掛點,但這不影響主機板運作,反正這個點它沒有用。

移除故障的排阻(圖片來源:實作派提供)

接著就把新買的排阻給焊上去,焊排阻就簡單多了,只是怕會短路在一起,這時就要靠吸錫線了,下圖就是焊好的樣子。

焊好排阻的主機板(圖片來源:實作派提供)

開機測試

最後當然又來到緊張的時刻了,換了排阻之後,S_USB_OC#12 電壓變正常,理當要能順利開機才是。把電源螢幕鍵盤滑鼠接好,按下電源按鈕,然後就不斷按 DEL 鍵,過了幾秒鐘出現 UEFI BIOS 的畫面,這表示主機板已經不再收到 Over Current 訊號了,真是太棒啦!

打開電源後順利進入 UEFI BIOS(圖片來源:實作派提供)

電阻真的壞了嗎?

能開機就結束了嗎?助教很好奇,這兩顆排阻到底阻值是多少,於是動手測量了各別的阻值,說也奇怪它們的阻值都是正常的,一個排阻內有 4 個電阻,每個都是正常的,難道剛才只是單純的冷焊現象?這無從考證,如果再來一次,我應該還是會選擇更換電阻,畢竟我也確實遇過電阻故障的情況。

所以有讀者留言說這個 USB overcurrent 的機制很容易誤報,技嘉微星都省略不用,只有華碩會用,難怪災情只出現在華碩主機板上,既然有前人的經驗,我們就可選擇要不要透過刷新 BIOS 繞過 over current 偵測,如果誤報非常嚴重,這也是一種選擇。

(本文經同意轉載自實作派電子實驗室原文連結;責任編輯:賴佩萱)

StrongPiLab
StrongPiLab

Author: StrongPiLab

實作派電子實驗室(StrongPiLab)是一個著重知識與經驗的實作交流媒體,提供工程師們理論外的實務經驗,主要傳達電子產品與家電用品的正確操作概念與生活小常識、解說各種測試手法的技巧。

Share This Post On
468 ad

Submit a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *