如何正確選擇低功耗MCU
另外,如果 MCU 時鐘系統(tǒng)為外設(shè)提供多個時鐘源的話,當(dāng) CPU 處于睡眠狀態(tài)時外設(shè)仍然可以運行。例如,一次 A/D 轉(zhuǎn)換可能需要一個高速時鐘。如果 MCU 時鐘系統(tǒng)提供獨立于 CPU 的高速時鐘,CPU 就可以在 A/D 轉(zhuǎn)換器運行情況下進(jìn)入睡眠狀態(tài),從而節(jié)省 CPU 耗流量。
事件驅(qū)動功能與時鐘系統(tǒng)的靈活性并存。中斷會使 MCU 退出低功耗模式,因此,MCU 的中斷越多,其防止浪費電流的 CPU 輪詢與降低功耗的靈活性就越大。輪詢意味著進(jìn)行與不進(jìn)行功耗預(yù)算之間存在差異,因為它在等待出現(xiàn)事件時會浪費CPU 帶寬并需要額外電流。一個好的低功耗 MCU 應(yīng)具有充分的中斷功能,為其所有外設(shè)提供中斷,同時為外部事件提供眾多外部中斷。
按鈕或鍵盤應(yīng)用可以證明外部中斷的優(yōu)勢。如果不具備中斷功能,MCU 必須頻繁輪詢鍵盤或按鈕,以確定其是否被按下。不僅輪詢自身會消耗功率,而且控制輪詢間隔也需要定時器,其會消耗附加電流。相比而言,在具備中斷情況下,CPU 可以在整個過程中保持睡眠狀態(tài),只有按下按鈕時才激活。
在選擇低功率 MCU 時,還需要考慮外設(shè)功耗與電源管理。某些低功率 MCU 僅僅是設(shè)計時不具備低利率功能的舊架構(gòu)的改進(jìn)版本。而有些 MCU 在設(shè)計時即具備低功耗特性,并在其外設(shè)中內(nèi)置了低功耗功能。一種特性是在需要時單獨啟動或關(guān)閉外設(shè)的能力,換言之,更重要的是自動啟動或關(guān)閉外設(shè)的能力。 A/D 轉(zhuǎn)換器就是一個例子,其在完成一次轉(zhuǎn)換后可以自動關(guān)閉。另外,某些 MCU 正在引入直接存儲器存取功能,其可以在無需 CPU 干預(yù)情況下自動處理數(shù)據(jù)。
大多 MCU 具有集成的掉電保護(hù)功能,當(dāng)電源低于正常操作范圍時其可以復(fù)位 MCU。通常會提供啟動或關(guān)閉掉電保護(hù)以節(jié)省功耗的功能,但是必須在整個過程中都使掉電保護(hù)功能置于可用狀態(tài),因為掉電是不可預(yù)測的。某些 MCU 需要70uA 的電流來實現(xiàn)掉電保護(hù)。在只需要 45uA 平均電流的應(yīng)用實例中很明顯可以不考慮這些 MCU。
在選擇低功耗 MCU 期間有時會忽視漏電流,但是,在最苛刻的低功耗應(yīng)用中則必須考慮到漏電流。大多改進(jìn)后的低功耗 MCU 都具有 1uA 的限定輸入漏電流。在 20 輸入器件中,它可能會消耗 20uA!針對低功耗設(shè)計的最新 MCU 具有最高50nA 的漏電流。
最后,我們常常會誤解 MCU 處理效率。大家通常會認(rèn)為 16 位 MCU 需要兩倍于 8 位 MCU 的內(nèi)存,但是一個 16 位架構(gòu)實際上需要比 8 位架構(gòu)要少一些的代碼,而 16 位 MCU 一般會更快速地執(zhí)行任務(wù)。例如,8 位 MCU 需要 CPU 開銷來管理具有 10 位 A/D 轉(zhuǎn)換數(shù)據(jù)或需要 16 位計算的應(yīng)用中的數(shù)據(jù)。而且當(dāng)今許多MCU 產(chǎn)品都具有單個工作文件或累加器,其數(shù)據(jù)必須進(jìn)行傳輸,以便處理,因此,與基于寄存器的架構(gòu)相比需要額外的 CPU 開銷。表 1 說明在 16 位現(xiàn)代架構(gòu)與8 位 8051 架構(gòu)上傳輸 10 位 A/D 數(shù)據(jù)的指令。在采用 1Mhz 時鐘情況下,16 位器件需要 6us 進(jìn)行傳輸,而 8 位器件則需要 24us。
表 1:16 位與 8 位 MCU 代碼要求
選擇低功率 MCU 是一項耗時、棘手的工作。如果花費一些時間來了解可用產(chǎn)品選項的架構(gòu)特性,我們就能夠開發(fā)出能滿足最苛刻功率預(yù)算的設(shè)計。
評論