在主板調(diào)試過程中,發(fā)現(xiàn)一個(gè)嚴(yán)重問題:關(guān)機(jī)后快速啟機(jī),主板正常開啟,但風(fēng)扇不轉(zhuǎn)。如果使用過程中快速開關(guān)機(jī),但使用者沒有注意到風(fēng)扇其實(shí)沒有運(yùn)行,很容易導(dǎo)致CPU持續(xù)處于高溫狀態(tài),損壞CPU及其周邊元器件。
- (1) 故障復(fù)現(xiàn)
拿到故障板后,上電正常的情況下下電,然后迅速上電,發(fā)現(xiàn)風(fēng)扇沒有響應(yīng),故障得以成功復(fù)現(xiàn),重復(fù)三次動(dòng)作,故障復(fù)現(xiàn)兩次,看來故障復(fù)現(xiàn)率還算比較高。
- (2) 問題初步分析
最開始懷疑的是風(fēng)扇啟動(dòng)時(shí)刻電流需求過大導(dǎo)致觸發(fā)過流保護(hù),因此進(jìn)行了如下測(cè)試。
- (3) 靜態(tài)電壓測(cè)試
在復(fù)現(xiàn)故障情況下進(jìn)行相關(guān)電壓的測(cè)量。首先,測(cè)量風(fēng)扇的12V供電,發(fā)現(xiàn)電壓已經(jīng)接近0V;然后,往前一級(jí)排查:風(fēng)扇的12V由efuse通過12VBUS母線提供,起到熱插拔保護(hù)和電流限制等作用。測(cè)量efuse的輸入12VBUS,電壓正常,繼續(xù)測(cè)量efuse的EN使能引腳,電壓也正常。如果風(fēng)扇觸發(fā)過流保護(hù),那efuse的FLTB引腳也會(huì)被拉低,表示有過流故障被發(fā)生,但此時(shí)測(cè)量的FLTB引腳是高電平,沒有錯(cuò)誤報(bào)警,因此,排除了過流保護(hù)被觸發(fā)。
圖1.efuse參考線路
- (4) 動(dòng)態(tài)波形測(cè)試
目前遇到的問題是efuse在上電重啟過程中沒有輸出,但其靜態(tài)的EN和輸入都是有的(其他引腳電壓也正常)。因此,需要進(jìn)一步進(jìn)行波形的抓取,觀察故障產(chǎn)生時(shí)刻輸入輸出發(fā)生了什么動(dòng)作。
圖2.故障狀態(tài)12V VIN和EN波形
上圖2是故障復(fù)現(xiàn)狀態(tài)下12V VIN和EN的上電波形。開始并沒有發(fā)現(xiàn)什么異常,但進(jìn)一步測(cè)試,逐步增加上下電的時(shí)間間隔,就會(huì)找到一個(gè)臨界時(shí)間,間隔大于這個(gè)時(shí)間情況下風(fēng)扇就可以正常運(yùn)轉(zhuǎn),這個(gè)間隔大概1.5s(如下圖3)。
圖3.臨界正常狀態(tài)12V VIN和EN波形
- (5) 問題分析
那么問題來了,為什么時(shí)間間隔拉長(zhǎng)后就可以正常啟電了?按理說efuse的啟動(dòng)只要EN和12V VIN正常,就會(huì)有輸出,但我們前面測(cè)到故障狀態(tài)下兩者電壓明明都是正常的。所以推斷應(yīng)該是下電過程中有信號(hào)不滿足efuse工作要求,導(dǎo)致efuse鎖死了,這時(shí)就算再把輸入信號(hào)恢復(fù)正常也沒法解開鎖死狀態(tài)。
那到底是VIN還是EN,或是其他信號(hào)呢?首先分析VIN,查閱手冊(cè),它的UVLO電壓門限為4.15V,而實(shí)際我們測(cè)到,故障復(fù)現(xiàn)時(shí)刻的VIN有6.88V,遠(yuǎn)大于UVLO門限電壓,因此可以推斷VIN的跌落不會(huì)導(dǎo)致efuse鎖死。然后,看下EN:這款5022c有兩個(gè)EN信號(hào),一個(gè)是ENABLE一個(gè)是LOADEN,它們門限分別是1.3V和2.3V。而這里實(shí)際電路中使用了365K和100K對(duì)12V分壓再到EN和LOADEN,當(dāng)VIN為12V時(shí),EN和LOADEN均為2.58V,這個(gè)值十分接近LOADEN的門限電壓,因此,EN或者LOAD EN電壓的跌落會(huì)首先導(dǎo)致的efuse關(guān)斷,但這又有什么問題呢?它們電壓跌落使得efuse關(guān)斷之后電壓還會(huì)隨著主板開機(jī)二再次上升呀?再仔細(xì)閱讀芯片手冊(cè),發(fā)現(xiàn)如下描述:
這里的LOADEN只能起到關(guān)斷efuse的作用,而無法起到開啟efuse的作用。到這里,似乎感覺有些方向了,這個(gè)LOADEN一旦失效,是無法通過它再次開啟efuse的!所以我們嘗試將LOADEN這個(gè)信號(hào)的分壓加大,讓它晚一點(diǎn)跌落到門限以下,極限情況是去掉其下分壓電阻。結(jié)果效果很不錯(cuò),故障不再復(fù)現(xiàn)了!同時(shí)注意到芯片本身也有不使用LOADEN這一功能的處理方法:將TMEN引腳直接接地,經(jīng)驗(yàn)證,該方式有效解決此問題。
- (6) 問題解決
但問題就這樣解決了么?好像還缺點(diǎn)什么。畢竟更改LOADEN分壓電阻阻值或者禁能LOADEN只能是讓該信號(hào)電壓跌落變慢,那如果使用者開關(guān)機(jī)速度非常快,抵消了分壓阻值帶來的時(shí)間改善怎么辦?所以還得找一個(gè)根本的解決辦法。這時(shí)候就想到了12V VIN,其實(shí)造成這一問題的根本原因還是12V下電過于緩慢,導(dǎo)致使用者兩次開關(guān)機(jī)操作間隔遠(yuǎn)小于它的掉電速度,efuse再關(guān)機(jī)后1s乃至更久一段時(shí)間都沒有關(guān)閉、復(fù)位,造成了上述問題,加入12V在關(guān)機(jī)后10ms內(nèi)迅速跌落到0V,所有器件均復(fù)位,這時(shí)候就不會(huì)存在所謂的“快”、“慢”上下電了。所以最終的問題解決落在了如何讓12V在關(guān)機(jī)后迅速掉電!
在研究過增加放電電路和延長(zhǎng)主板自身12V負(fù)載下電延遲時(shí)間等方法之后,最終選擇了后者,一來這樣可以避免增加額外電路,節(jié)約成本,二來是可以通過修改CPLD程序直接達(dá)到目的,簡(jiǎn)單快捷,且易于調(diào)試。
- (7) 結(jié)果對(duì)比
下面是修改CPLD程序前后12VD的掉電波形??梢钥吹?,在修改CPLD之前,12V下電之后掉電緩慢,需要1.5s以上時(shí)間才能跌落到3V以下,而修改CPLD之后只需要50ms便可以跌落到3V以下。
圖4.修改CPLD前12V VIN和EN波形
圖5.修改CPLD后12V VIN和EN波形
通過上述修改,就從根本上解決了主板快速開關(guān)機(jī)(上下電)情況下風(fēng)扇概率性停轉(zhuǎn)的問題??偨Y(jié)今后需要注意的點(diǎn):
- (1) efuse的LOADEN信號(hào)可能將芯片鎖死,因?yàn)樗挥?ldquo;禁能”功能,而沒有“使能功能”。
- (2) 主板12V下電緩慢會(huì)帶來一系列問題,比如芯片鎖死
- (3) 通過延緩負(fù)載停止工作的時(shí)間可以有效解決12V下電緩慢問題