為什么我的處理器漏電?
問(wèn):為什么我的處理器功耗大于數據手冊給出的值?
本文引用地址:http://dyxdggzs.com/article/201803/376686.htm答:在我的上一篇文章中,我談到了一個(gè)功耗過(guò)小的器件——是的,的確有這種情況——帶來(lái)麻煩的事情。但這種情況很罕見(jiàn)。我處理的更常見(jiàn)情況是客戶(hù)抱怨器件功耗大于數據手冊所宣稱(chēng)的值。

記得有一次,客戶(hù)拿著(zhù)處理器板走進(jìn)我的辦公室,說(shuō)它的功耗太大,耗盡了電池電量。由于我們曾驕傲地宣稱(chēng)該處理器屬于超低功耗器件,因此舉證責任在我們這邊。我準備按照慣例,一個(gè)一個(gè)地切斷電路板上不同器件的電源,直至找到真正肇事者,這時(shí)我想起不久之前的一個(gè)類(lèi)似案例,那個(gè)案例的“元兇”是一個(gè)獨自?huà)煸诠╇娷壓偷刂g的LED,沒(méi)有限流電阻與之為伍。LED最終失效是因為過(guò)流,還是純粹因為它覺(jué)得無(wú)聊了,我不能完全肯定,不過(guò)這是題外話(huà),我們暫且不談。從經(jīng)驗出發(fā),我做的第一件事是檢查電路板上有無(wú)閃閃發(fā)光的LED。但遺憾的是,這次沒(méi)有類(lèi)似的、昭示問(wèn)題的希望曙光。另外,我發(fā)現處理器是板上的唯一器件,沒(méi)有其他器件可以讓我歸咎責任??蛻?hù)接下來(lái)拋出的一條信息讓我的心情更加低落:通過(guò)實(shí)驗室測試,他發(fā)現功耗和電池壽命處于預期水平,但把系統部署到現場(chǎng)之后,電池電量快速耗盡。此類(lèi)問(wèn)題是最難解決的問(wèn)題,因為這些問(wèn)題非常難以再現“第一案發(fā)現場(chǎng)”。這就給數字世界的問(wèn)題增加了模擬性的無(wú)法預測性和挑戰,而數字世界通常只是可預測的、簡(jiǎn)單的1和0的世界。
在最簡(jiǎn)單意義上,處理器功耗主要有兩方面:內核和I/O。當涉及到抑制內核功耗時(shí),我會(huì )檢查諸如以下的事情:PLL配置/時(shí)鐘速度、內核供電軌、內核的運算量。有多種辦法可以使內核功耗降低,例如:降低內核時(shí)鐘速度,或執行某些指令迫使內核停止運行或進(jìn)入睡眠/休眠狀態(tài)。如果懷疑I/O吞噬了所有功耗,我會(huì )關(guān)注I/O電源、I/O開(kāi)關(guān)頻率及其驅動(dòng)的負載。
我能探究的只有這兩個(gè)方面。結果是,問(wèn)題同內核方面沒(méi)有任何關(guān)系,因此必然與I/O有關(guān)。這時(shí),客戶(hù)表示他使用該處理器純粹是為了計算,I/O活動(dòng)極少。事實(shí)上,器件上的大部分可用I/O接口都沒(méi)有得到使用。
“等等!有些I/O您沒(méi)有使用。您的意思是這些I/O引腳未使用。您是如何連接它們的?”
“理所當然,我沒(méi)有把它們連接到任何地方!”
“原來(lái)如此!”
這是一個(gè)令人狂喜的時(shí)刻,我終于找到了問(wèn)題所在。雖然沒(méi)有沿路尖叫,但我著(zhù)實(shí)花了一會(huì )工夫才按捺住興奮之情,然后坐下來(lái)向他解釋。
典型CMOS數字輸入類(lèi)似下圖:

當以推薦的高(1)或低(0)電平驅動(dòng)該輸入時(shí),PMOS和NMOS FET一次導通一個(gè),絕不會(huì )同時(shí)導通。輸入驅動(dòng)電壓有一個(gè)不確定區,稱(chēng)為“閾值區域”,其中PMOS和NMOS可能同時(shí)部分導通,從而在供電軌和地之間產(chǎn)生一個(gè)泄漏路徑。當輸入浮空并遇到雜散噪聲時(shí),可能會(huì )發(fā)生這種情況。這既解釋了客戶(hù)電路板上功耗很高的事實(shí),又解釋了高功耗為什么是隨機發(fā)生的。

圖2.PMOS和NMOS均部分導通,在電源和地之間產(chǎn)生一個(gè)泄漏路徑
某些情況下,這可能引起閂鎖之類(lèi)的狀況,即器件持續汲取過(guò)大電流,最終燒毀??梢哉f(shuō),這個(gè)問(wèn)題較容易發(fā)現和解決,因為眼前的器件正在冒煙,證據確鑿。我的客戶(hù)報告的問(wèn)題則更難對付,因為當您在實(shí)驗室的涼爽環(huán)境下進(jìn)行測試時(shí),它沒(méi)什么問(wèn)題,但送到現場(chǎng)時(shí),就會(huì )引起很大麻煩。
現在我們知道了問(wèn)題的根源,顯而易見(jiàn)的解決辦法是將所有未使用輸入驅動(dòng)到有效邏輯電平(高或低)。然而,有一些細微事項需要注意。我們再看幾個(gè)CMOS輸入處理不當引起麻煩的情形。我們需要擴大范圍,不僅考慮徹底斷開(kāi)/浮空的輸入,而且要考慮似乎連接到適當邏輯電平的輸入。
如果只是通過(guò)電阻將引腳連接到供電軌或地,應注意所用上拉或下拉電阻的大小。它與引腳的拉/灌電流一起,可能使引腳的實(shí)際電壓偏移到非期望電平。換言之,您需要確保上拉或下拉電阻足夠強。
如果選擇以有源方式驅動(dòng)引腳,務(wù)必確保驅動(dòng)強度對所用的CMOS負載足夠好。若非如此,電路周?chē)脑肼暱赡軓姷阶阋猿^(guò)驅動(dòng)信號,迫使引腳進(jìn)入非預期的狀態(tài)。
我們來(lái)研究幾種情形:
1.在實(shí)驗室正常工作的處理器,在現場(chǎng)可能莫名重啟,因為噪聲耦合到?jīng)]有足夠強上拉電阻的RESET(復位)線(xiàn)中。

圖3.噪聲耦合到帶弱上拉電阻的RESET)引腳中,可能引起處理器重啟
2.想象CMOS輸入屬于一個(gè)柵極驅動(dòng)器的情況,該柵極驅動(dòng)器控制一個(gè)高功率MOSFET/IGBT,后者在應當斷開(kāi)的時(shí)候意外導通!簡(jiǎn)直糟糕透了。

圖4.噪聲過(guò)驅一個(gè)弱驅動(dòng)的CMOS輸入柵極驅動(dòng)器,引起高壓總線(xiàn)短路

另一種相關(guān)但不那么明顯的問(wèn)題情形是當驅動(dòng)信號的上升/下降非常慢時(shí)。這種情況下,輸入可能會(huì )在中間電平停留一定的時(shí)間,進(jìn)而引起各種問(wèn)題。

圖5.CMOS輸入的上升/下降很慢,導致過(guò)渡期間暫時(shí)短路
我們已經(jīng)在一般意義上討論了CMOS輸入可能發(fā)生的一些問(wèn)題,值得注意的是,就設計而言,有些器件比其他器件更擅長(cháng)處理這些問(wèn)題。例如,采用施密特觸發(fā)器輸入的器件能夠更好地處理具有高噪聲或慢邊沿的信號。
我們的一些最新處理器也注意到這種問(wèn)題,并在設計中采取了特殊預防措施,或發(fā)布了明確的指南,以確保運行順利。例如,ADSP-SC58x/ADSP-2158x數據手冊清楚說(shuō)明了有些管腳具有內部端接電阻或其他邏輯電路以確保這些管腳不會(huì )浮空。
最后,正如大家常說(shuō)的,正確完成所有收尾工作很重要,尤其是CMOS數字輸入。
評論