發布成功
讚賞金額:
您輸入的金額有誤,請重新輸入
支付金額:5元
支付方式:
讚賞成功!
你的讚賞是對作者最大的肯定~?
為(wei) 什麽(me) 我的處理器功耗大於(yu) 數據手冊(ce) 給出的值?
記得有一次,客戶拿著處理器板走進我的辦公室,說它的功耗太大,耗盡了電池電量。由於(yu) 我們(men) 曾驕傲地宣稱該處理器屬於(yu) 超低功耗器件,因此舉(ju) 證責任在我們(men) 這邊。
我準備按照慣例,一個(ge) 一個(ge) 地切斷電路板上不同器件的電源,直至找到真正肇事者,這時我想起不久之前的一個(ge) 類似案例,那個(ge) 案例的“元凶”是一個(ge) 獨自掛在供電軌和地之間的LED,沒有限流電阻與(yu) 之為(wei) 伍。LED最終失效是因為(wei) 過流,還是純粹因為(wei) 它覺得無聊了,我不能完全肯定,不過這是題外話,我們(men) 暫且不談。
從(cong) 經驗出發,我做的第一件事是檢查電路上有無閃閃發光的LED。但遺憾的是,這次沒有類似的、昭示問題的希望曙光。另外,我發現處理器是板上的唯一器件,沒有其他器件可以讓我歸咎責任。客戶接下來拋出的一條信息讓我的心情更加低落:通過實驗室測試,他發現功耗和電池壽命處於(yu) 預期水平,但把係統部署到現場之後,電池電量快速耗盡。此類問題是最難解決(jue) 的問題,因為(wei) 這些問題非常難以再現“第一案發現場”。這就給數字世界的問題增加了模擬性的無法預測性和挑戰,而數字世界通常隻是可預測的、簡單的1和0的世界。
在最簡單意義(yi) 上,處理器功耗主要有兩(liang) 方麵:內(nei) 核和I/O。當涉及到抑製內(nei) 核功耗時,我會(hui) 檢查諸如以下的事情:PLL配置/時鍾速度、內(nei) 核供電軌、內(nei) 核的運算量。有多種辦法可以使內(nei) 核功耗降低,例如:降低內(nei) 核時鍾速度,或執行某些指令迫使內(nei) 核停止運行或進入睡眠/休眠狀態。如果懷疑I/O吞噬了所有功耗,我會(hui) 關(guan) 注I/O電源、I/O開關(guan) 頻率及其驅動的負載。
我能探究的隻有這兩(liang) 個(ge) 方麵。結果是,問題同內(nei) 核方麵沒有任何關(guan) 係,因此必然與(yu) I/O有關(guan) 。這時,客戶表示他使用該處理器純粹是為(wei) 了計算,I/O活動極少。事實上,器件上的大部分可用I/O接口都沒有得到使用。
“等等!有些I/O您沒有使用?您的意思是這些I/O引腳未使用。您是如何連接它們(men) 的?”
“我沒有把它們(men) 連接到任何地方!”
“原來如此!”
這是一個(ge) 令人狂喜的時刻,我終於(yu) 找到了問題所在。雖然沒有沿路尖叫,但我著實花了一會(hui) 工夫才按捺住興(xing) 奮之情,然後坐下來向他解釋。
典型CMOS數字輸入類似下圖:
圖1. 典型CMOS輸入電路(左)和CMOS電平邏輯(右)
當以推薦的高(1)或低(0)電平驅動該輸入時,PMOS和NMOS FET一次導通一個(ge) ,絕不會(hui) 同時導通。輸入驅動電壓有一個(ge) 不確定區,稱為(wei) “閾值區域”,其中PMOS和NMOS可能同時部分導通,從(cong) 而在供電軌和地之間產(chan) 生一個(ge) 泄漏路徑。當輸入浮空並遇到雜散噪聲時,可能會(hui) 發生這種情況。這既解釋了客戶電路板上功耗很高的事實,又解釋了高功耗為(wei) 什麽(me) 是隨機發生的。
圖2. PMOS和NMOS均部分導通,在電源和地之間產(chan) 生一個(ge) 泄漏路徑
某些情況下,這可能引起閂鎖之類的狀況,即器件持續汲取過大電流,最終燒毀。可以說,這個(ge) 問題較容易發現和解決(jue) ,因為(wei) 眼前的器件正在冒煙,證據確鑿。我的客戶報告的問題則更難對付,因為(wei) 當您在實驗室的涼爽環境下進行測試時,它沒什麽(me) 問題,但送到現場時,就會(hui) 引起很大麻煩。
現在我們(men) 知道了問題的根源,顯而易見的解決(jue) 辦法是將所有未使用輸入驅動到有效邏輯電平(高或低)。然而,有一些細微事項需要注意。我們(men) 再看幾個(ge) CMOS輸入處理不當引起麻煩的情形。我們(men) 需要擴大範圍,不僅(jin) 考慮徹底斷開/浮空的輸入,而且要考慮似乎連接到適當邏輯電平的輸入。
如果隻是通過電阻將引腳連接到供電軌或地,應注意所用上拉或下拉電阻的大小。它與(yu) 引腳的拉/灌電流一起,可能使引腳的實際電壓偏移到非期望電平。換言之,您需要確保上拉或下拉電阻足夠強。
如果選擇以有源方式驅動引腳,務必確保驅動強度對所用的CMOS負載足夠好。若非如此,電路周圍的噪聲可能強到足以超過驅動信號,迫使引腳進入非預期的狀態。
接下來,我們(men) 來研究幾種情形:
1
在實驗室正常工作的處理器,在現場可能莫名重啟,因為(wei) 噪聲耦合到沒有足夠強上拉電阻的RESET(複位)線中。
圖3. 噪聲耦合到帶弱上拉電阻的RESET引腳中,可能引起處理器重啟
2
想象CMOS輸入屬於(yu) 一個(ge) 柵極驅動器的情況,該柵極驅動器控製一個(ge) 高功率MOSFET/IGBT,後者在應當斷開的時候意外導通!簡直糟糕透了。
圖4. 噪聲過驅一個(ge) 弱驅動的CMOS輸入柵極驅動器,引起高壓總線短路
圖6. ADSP-SC58x/ADSP-2158x數據手冊(ce) 快速參考
另一種相關(guan) 但不那麽(me) 明顯的問題情形是當驅動信號的上升/下降非常慢時。這種情況下,輸入可能會(hui) 在中間電平停留一定的時間,進而引起各種問題。
圖5. CMOS輸入的上升/下降很慢,導致過渡期間暫時短路
我們(men) 已經在一般意義(yi) 上討論了CMOS輸入可能發生的一些問題,值得注意的是,就設計而言,有些器件比其他器件更擅長處理這些問題。例如,采用施密特觸發器輸入的器件能夠更好地處理具有高噪聲或慢邊沿的信號。
我們(men) 的一些最新處理器也注意到這種問題,並在設計中采取了特殊預防措施,或發布了明確的指南,以確保運行順利。例如,ADSP-SC58x/ADSP-2158x數據手冊(ce) 清楚說明了有些管腳具有內(nei) 部端接電阻或其他邏輯電路以確保這些管腳不會(hui) 浮空。
最後,正如大家常說的,正確完成所有收尾工作很重要,尤其是CMOS數字輸入。