我們檢查了微控制器中可用的幾種不同的低功率模式,以及這些低功率模式如何影響能耗和喚醒時間。低功率模式是減少微控制器使用的能量的主要技術之一,但這并不是開發(fā)人員可用的唯一技術。在這篇文章中,我們將研究我最喜歡的五種用于降低微控制器能耗的技術。
技術#1 - 使用DMA控制器
在微控制器中,CPU通常是渴望使用最新的功率的設備。外圍設備肯定會導致能源消耗,尤其是在有USB或以太網控制器的情況下,但是優(yōu)化能源設備的第一步之一就是盡可能長時間保持CPU的狀態(tài)。應用程序將定期喚醒,盡管可以將數據移動到諸如從UART接收字節(jié)并將其存儲在緩沖區(qū)中的數據。避免不斷喚醒CPU以處理移動數據的一種方法是使用直接內存訪問(DMA)控制器。
DMA允許開發(fā)人員保持其CPU入睡,而是使用較低的功率外圍設備來執(zhí)行CPU否則會做的事情,請在微控制器周圍移動數據。 DMA控制器可用于多種目的,例如:
· 將數據從外圍移動到內存
· 將數據從內存移動到另一個內存位置
· 將數據中的數據移至外圍
關于如何設置DMA的細節(jié)將從一個微控制器到另一個微控制器,但是好處是,CPU可以保持低功率狀態(tài),直到需要實際喚醒并處理DMA傳輸的數據為止。
技術#2 - 使用時鐘節(jié)流
您可能會從微控制器課程或在線閱讀中記得,微控制器的能量消耗取決于時鐘頻率。頻率越高,能耗越高。應用程序不一定總是需要完全傾斜。實際上,根據需要完成的操作,可以將時鐘限制為最小化所消耗的能量的有效技術。
顯示了NXP Kinetis-L微控制器中的運行模式電流與核心頻率。從這個數字中,讀者可以看到,節(jié)流頻率將減少能耗。還可以看出,禁用未使用的外圍設備如何在微控制器消耗的能量中有所作為。
究竟何時以及如何防風頻率完全取決于應用程序。某些應用程序可能仍然希望一直傾斜。在其他情況下,可以將頻率從最大值切成兩半并以這種方式運行。在其他情況下,根據應用程序的操作,動態(tài)更改時鐘可能是有意義的。只需注意,如果您決定動態(tài)使用時鐘節(jié)流,則可能需要動態(tài)更改外圍寄存器設置以補償更改。
技術#3 - 利用編譯器優(yōu)化
現代編譯器提供嵌入式的優(yōu)化設置,可以改善給定代碼的執(zhí)行時間。例如,大多數編譯器為開發(fā)人員提供優(yōu)化設置,以執(zhí)行循環(huán)展開和內聯功能。盡管這些只是兩個示例,但開發(fā)人員可以使用這些技術來生成更快執(zhí)行的代碼。執(zhí)行更快的代碼即使確實使用了更多的代碼空間,也將使在低功率模式下花費更多時間,從而減少應用程序消耗的能量。
我建議您盡快安排一些時間來查看編譯器手冊,并查看其內置功能,以幫助您更快地執(zhí)行代碼。雖然似乎節(jié)省了幾十個時鐘周期并不重要。這些時鐘周期可以在數周甚至幾個月的時間內迅速增加。
技術#4 - 利用低功率(LP)外圍設備
如果您仔細閱讀了微控制器數據表,您會注意到,專為低功率操作而設計的微控制器通常包括與“標準”外圍設備分開的低功率外圍設備。例如,STM32微控制器包括LP計時器。這是一個計時器外圍設備,不包括所有額外的鈴鐺和哨子,但被設計為在低功率環(huán)境中操作。在優(yōu)化甚至開始低功率設計時,觀察這些低功率外圍設備并利用它們可能是減少產品能源消耗而無需額外努力的好方法。
技術#5 - 在框外思考
有時,您可能會發(fā)現您需要真正思考開箱即用才能優(yōu)化能量。幾年前,我從事電池運行的醫(yī)療產品,必須在電池上持續(xù)12至14小時。我們選擇了所需的電池,然后繼續(xù)進行設計。好吧,工業(yè)設計師認為電池太大了,沒有告訴電子或軟件團隊,他們決定大量收縮電池,以便他們可以創(chuàng)建一個更小,更性感的設備。該設備的第一次測試表明,電池只能持續(xù)約4-5個小時!
工業(yè)團隊當然已經使用了生產工具,而且沒有回到更大的電池。唯一的選擇是瘋狂地優(yōu)化。盡管在書中使用了所有可能的優(yōu)化技術,但我只能使設備持續(xù)約8個小時。那么,怎么辦?事實證明,該產品在船上有一個USB主機,該主機在MSD/CDC設備上連接了自定義存儲設備。 USB使用大量的能量,如果不需要的USB可以關閉,則可以節(jié)省很多能量。
我們必須從框框外面思考,然后啟動設備后,我們將禁用USB設備,撥動USB主機供電,當需要USB設備時,我們在USB D+和D端口上鍵入了一條消息,該端口發(fā)出信號USB主機將恢復電源。這是瘋狂的,丑陋的,一個工作的工作,但成功的電池壽命超過了14個小時。有時,您只需要在盒子外面思考即可獲得所需的能源效率。
結論
在這篇文章中,我們研究了一些其他技術,開發(fā)人員可以利用這些技術來最大程度地減少其微控制器的能耗。使用這些技術以及低功率模式可以大大降低設備能源消耗。當您致力于優(yōu)化微控制器的能源應用程序時,請不要忘記選擇將為您提供最大爆炸的技術。能源優(yōu)化通常會成為一個黑洞,因為時間投資隨著每次迭代而降低回報。





