問:為什么我的處理器功耗大于數據手冊給出的值,?
答:在我的上一篇文章中,我談到了一個功耗過小的器件——是的,,的確有這種情況——帶來麻煩的事情,。但這種情況很罕見,。我處理的更常見情況是客戶抱怨器件功耗大于數據手冊所宣稱的值。
記得有一次,,客戶拿著處理器板走進我的辦公室,,說它的功耗太大,耗盡了電池電量,。由于我們曾驕傲地宣稱該處理器屬于超低功耗器件,,因此舉證責任在我們這邊。我準備按照慣例,一個一個地切斷電路板上不同器件的電源,,直至找到真正肇事者,,這時我想起不久之前的一個類似案例,那個案例的“元兇”是一個獨自掛在供電軌和地之間的LED,,沒有限流電阻與之為伍,。LED最終失效是因為過流,還是純粹因為它覺得無聊了,,我不能完全肯定,,不過這是題外話,我們暫且不談,。從經驗出發(fā),,我做的第一件事是檢查電路板上有無閃閃發(fā)光的LED。但遺憾的是,,這次沒有類似的,、昭示問題的希望曙光。另外,,我發(fā)現處理器是板上的唯一器件,,沒有其他器件可以讓我歸咎責任??蛻艚酉聛頀伋龅囊粭l信息讓我的心情更加低落:通過實驗室測試,,他發(fā)現功耗和電池壽命處于預期水平,但把系統部署到現場之后,,電池電量快速耗盡,。此類問題是最難解決的問題,因為這些問題非常難以再現“第一案發(fā)現場”,。這就給數字世界的問題增加了模擬性的無法預測性和挑戰(zhàn),,而數字世界通常只是可預測的、簡單的1和0的世界,。
在最簡單意義上,,處理器功耗主要有兩方面:內核和I/O。當涉及到抑制內核功耗時,,我會檢查諸如以下的事情:PLL配置/時鐘速度,、內核供電軌、內核的運算量,。有多種辦法可以使內核功耗降低,例如:降低內核時鐘速度,,或執(zhí)行某些指令迫使內核停止運行或進入睡眠/休眠狀態(tài),。如果懷疑I/O吞噬了所有功耗,我會關注I/O電源、I/O開關頻率及其驅動的負載,。
我能探究的只有這兩個方面,。結果是,問題同內核方面沒有任何關系,,因此必然與I/O有關,。這時,客戶表示他使用該處理器純粹是為了計算,,I/O活動極少,。事實上,器件上的大部分可用I/O接口都沒有得到使用,。
“等等,!有些I/O您沒有使用。您的意思是這些I/O引腳未使用,。您是如何連接它們的,?”
“理所當然,我沒有把它們連接到任何地方,!”
“原來如此,!”
這是一個令人狂喜的時刻,我終于找到了問題所在,。雖然沒有沿路尖叫,,但我著實花了一會工夫才按捺住興奮之情,然后坐下來向他解釋,。
典型CMOS數字輸入類似下圖:
圖1.典型CMOS輸入電路(左)和CMOS電平邏輯(右)
當以推薦的高(1)或低(0)電平驅動該輸入時,,PMOS和NMOS FET一次導通一個,絕不會同時導通,。輸入驅動電壓有一個不確定區(qū),,稱為“閾值區(qū)域”,其中PMOS和NMOS可能同時部分導通,,從而在供電軌和地之間產生一個泄漏路徑,。當輸入浮空并遇到雜散噪聲時,可能會發(fā)生這種情況,。這既解釋了客戶電路板上功耗很高的事實,,又解釋了高功耗為什么是隨機發(fā)生的。
圖2.PMOS和NMOS均部分導通,,在電源和地之間產生一個泄漏路徑
某些情況下,,這可能引起閂鎖之類的狀況,即器件持續(xù)汲取過大電流,,最終燒毀,??梢哉f,這個問題較容易發(fā)現和解決,,因為眼前的器件正在冒煙,,證據確鑿。我的客戶報告的問題則更難對付,,因為當您在實驗室的涼爽環(huán)境下進行測試時,,它沒什么問題,但送到現場時,,就會引起很大麻煩,。
現在我們知道了問題的根源,顯而易見的解決辦法是將所有未使用輸入驅動到有效邏輯電平(高或低),。然而,,有一些細微事項需要注意。我們再看幾個CMOS輸入處理不當引起麻煩的情形,。我們需要擴大范圍,,不僅考慮徹底斷開/浮空的輸入,而且要考慮似乎連接到適當邏輯電平的輸入,。
如果只是通過電阻將引腳連接到供電軌或地,,應注意所用上拉或下拉電阻的大小。它與引腳的拉/灌電流一起,,可能使引腳的實際電壓偏移到非期望電平,。換言之,您需要確保上拉或下拉電阻足夠強,。
如果選擇以有源方式驅動引腳,,務必確保驅動強度對所用的CMOS負載足夠好。若非如此,,電路周圍的噪聲可能強到足以超過驅動信號,,迫使引腳進入非預期的狀態(tài)。
我們來研究幾種情形:
1. 在實驗室正常工作的處理器,,在現場可能莫名重啟,,因為噪聲耦合到沒有足夠強上拉電阻的RESET(復位)線中。
圖3.噪聲耦合到帶弱上拉電阻的引腳中,,可能引起處理器重啟
2. 想象CMOS輸入屬于一個柵極驅動器的情況,,該柵極驅動器控制一個高功率MOSFET/IGBT,后者在應當斷開的時候意外導通,!簡直糟糕透了,。
圖4.噪聲過驅一個弱驅動的CMOS輸入柵極驅動器,引起高壓總線短路
表1. ADSP-SC58x/ADSP-2158x設計人員快速參考
另一種相關但不那么明顯的問題情形是當驅動信號的上升/下降非常慢時,。這種情況下,,輸入可能會在中間電平停留一定的時間,,進而引起各種問題。
圖5.CMOS輸入的上升/下降很慢,,導致過渡期間暫時短路
我們已經在一般意義上討論了CMOS輸入可能發(fā)生的一些問題,值得注意的是,,就設計而言,,有些器件比其他器件更擅長處理這些問題。例如,,采用施密特觸發(fā)器輸入的器件能夠更好地處理具有高噪聲或慢邊沿的信號,。
我們的一些最新處理器也注意到這種問題,并在設計中采取了特殊預防措施,,或發(fā)布了明確的指南,,以確保運行順利。例如,,ADSP-SC58x/ADSP-2158x數據手冊清楚說明了有些管腳具有內部端接電阻或其他邏輯電路以確保這些管腳不會浮空,。
最后,正如大家常說的,,正確完成所有收尾工作很重要,,尤其是CMOS數字輸入。
參考文獻:
ADSP-SC58X/ADSP-2158X: SHARC+ Dual Core DSP with ARM Cortex-A5 data sheet. Analog Devices, Inc., 2017.
ADSP-SC58X/ADSP-2158X:帶ARM Cortex-A5的SHARC+雙核DSP數據手冊,。ADI公司,,2017年。
Patil, Abhinay. “Burned by Low Power? When Lower Current Consumption Can Get You Into Trouble.” Analog Dialogue, Vol. 51, 2017.
Patil,,Abhinay,。“低功耗會燒毀器件,?低電流損耗也可能帶來麻煩,。”《模擬對話》,,第51卷,,2017年。
作者簡介:
Abhinay Patil 于2003年加入ADI公司,,現在印度班加羅爾任現場應用工程師,。他擁有電子通信工程學士學位。