一:首先了解芯片的內(nèi)部功耗
開發(fā)一個手持設(shè)備,有一個設(shè)計(jì)重點(diǎn)問題是必須要重視和解決的。那就是在待機(jī)狀態(tài)下如何做到最省電,即在待機(jī)狀態(tài)下如何做到盡可能的低功耗,比如用芯唐科技的Cortex-M0內(nèi)核的NUC100做手持電臺的開發(fā),那么
1、首先要了解的就是該芯片在深度休眠或睡眠模式下功耗是多少(即該模式下的工作電流時多大,注一般的芯片都是uA級別的)。
通過查看NUC100芯片資料(在每個芯片手冊電氣特性或DC電氣特性一節(jié)會有說明)了解到該芯片的工作最大電流(即最大功耗)和深度休眠模式下的最低功耗 (最低功耗有Ipwd1,Ipwd2,Ipwd3,Ipwd4,表示NUC100內(nèi)部的模塊工作需要外部提供四個VDD接口,計(jì)算功耗時要把他們累加起來,這里給出了每個VDD接口的休眠模式下最低功耗值,當(dāng)然如果芯片可以關(guān)閉某個模塊的對應(yīng)的VDD,那就可以降低更多不必要的功耗了)
2、首先要了解的就是該芯片在深度休眠或睡眠模式下功耗是多少(即該模式下的工作電流時多大,注一般的芯片都是uA級別的)。
通過查看NUC100芯片資料(在每個芯片手冊電氣特性或DC電氣特性一節(jié)會有說明)了解到該芯片的工作最大電流(即最大功耗)和深度休眠模式下的最低功耗 (最低功耗有Ipwd1,Ipwd2,Ipwd3,Ipwd4,開始理解是:表示NUC100內(nèi)部的模塊工作需要外部提供四個VDD接口,計(jì)算功耗時要把他們累加起來,這里給出了每個VDD接口的休眠模式下最低功耗值,當(dāng)然如果芯片可以關(guān)閉某個模塊的對應(yīng)的VDD,那就可以降低更多不必要的功耗了,其實(shí)不是這樣的。后來發(fā)現(xiàn)Ipwd1,Ipwd2,Ipwd3,Ipwd4分別代表4種情況下測得的功耗電流,后來也芯片廠商客服也確認(rèn)過,他們說NUC100在深度休眠的情況下可以做到25uA以下。)
二:電路供電系統(tǒng)的功耗分析
下圖是7R手臺控制電路(用2個端口做開關(guān)機(jī)判斷處理,按鍵開關(guān)機(jī)時波形圖(開/關(guān)機(jī)波形一樣))
上圖的工作原理是這樣的:
當(dāng)POWER_KEY按下不,TP1點(diǎn)就持續(xù)高電平(下面示波器波形圖的下面一個通道的波形圖),
由于C1兩端電平不能突變,所以C1在POWER_KEY按下瞬間其兩端都是高電平(其實(shí)C1起到加速作用),這樣三極管Q1的由于基極出現(xiàn)高電平會瞬間導(dǎo)通,然后,TP2點(diǎn)出現(xiàn)低電平,然后C1會通過Q1的基--Q1發(fā)射--R1--C1構(gòu)成一個回路進(jìn)行放電(整個過程波形如同下圖示波器截圖的上面那個通道波形:開始出現(xiàn)2ms低電平,后來按照指數(shù)形式放電,Q1就從導(dǎo)通,然后慢慢截止,最后TP2的電平穩(wěn)定為高電平),注意C2電容的容量相比C1很小,0.1u=100000p,估計(jì)C2在此電路的作用就是濾除高頻成分的目的。
?。ㄟ@里容易糊涂:C1不能突變,POWER_KEY按下瞬間C1兩端不能突變,可是C2兩端也不能突變,所以C2兩端都是低電平,那C1和C2的交點(diǎn)電壓就打架了?,因?yàn)镃2電容量相比C1的電容量很小,幾乎對C1不會產(chǎn)生影響,當(dāng)然如果C1和C2都是0.1uf,這POWER_KEY1導(dǎo)通瞬間,由于C1 C2兩端電壓都不能突變,則他們的交點(diǎn)電壓應(yīng)該是2.5V)
?。娙菹嚓P(guān)理解:[深入理解電容的工作特性總結(jié)] )
下面用一個端口實(shí)現(xiàn)的開關(guān)機(jī)功能(因?yàn)镮NT0和PB14功能可以做程序中作改變):
程序控制流程稍好加上:
》》》
一:首先了解芯片的內(nèi)部功耗
開發(fā)一個手持設(shè)備,有一個設(shè)計(jì)重點(diǎn)問題是必須要重視和解決的。那就是在待機(jī)狀態(tài)下如何做到最省電,即在待機(jī)狀態(tài)下如何做到盡可能的低功耗,比如用芯唐科技的Cortex-M0內(nèi)核的NUC100做手持電臺的開發(fā),那么
1、首先要了解的就是該芯片在深度休眠或睡眠模式下功耗是多少(即該模式下的工作電流時多大,注一般的芯片都是uA級別的)。
通過查看NUC100芯片資料(在每個芯片手冊電氣特性或DC電氣特性一節(jié)會有說明)了解到該芯片的工作最大電流(即最大功耗)和深度休眠模式下的最低功耗 (最低功耗有Ipwd1,Ipwd2,Ipwd3,Ipwd4,表示NUC100內(nèi)部的模塊工作需要外部提供四個VDD接口,計(jì)算功耗時要把他們累加起來,這里給出了每個VDD接口的休眠模式下最低功耗值,當(dāng)然如果芯片可以關(guān)閉某個模塊的對應(yīng)的VDD,那就可以降低更多不必要的功耗了)
2、首先要了解的就是該芯片在深度休眠或睡眠模式下功耗是多少(即該模式下的工作電流時多大,注一般的芯片都是uA級別的)。
通過查看NUC100芯片資料(在每個芯片手冊電氣特性或DC電氣特性一節(jié)會有說明)了解到該芯片的工作最大電流(即最大功耗)和深度休眠模式下的最低功耗 (最低功耗有Ipwd1,Ipwd2,Ipwd3,Ipwd4,開始理解是:表示NUC100內(nèi)部的模塊工作需要外部提供四個VDD接口,計(jì)算功耗時要把他們累加起來,這里給出了每個VDD接口的休眠模式下最低功耗值,當(dāng)然如果芯片可以關(guān)閉某個模塊的對應(yīng)的VDD,那就可以降低更多不必要的功耗了,其實(shí)不是這樣的。后來發(fā)現(xiàn)Ipwd1,Ipwd2,Ipwd3,Ipwd4分別代表4種情況下測得的功耗電流,后來也芯片廠商客服也確認(rèn)過,他們說NUC100在深度休眠的情況下可以做到25uA以下。)
二:電路供電系統(tǒng)的功耗分析
下圖是7R手臺控制電路(用2個端口做開關(guān)機(jī)判斷處理,按鍵開關(guān)機(jī)時波形圖(開/關(guān)機(jī)波形一樣))
上圖的工作原理是這樣的:
當(dāng)POWER_KEY按下不,TP1點(diǎn)就持續(xù)高電平(下面示波器波形圖的下面一個通道的波形圖),
由于C1兩端電平不能突變,所以C1在POWER_KEY按下瞬間其兩端都是高電平(其實(shí)C1起到加速作用),這樣三極管Q1的由于基極出現(xiàn)高電平會瞬間導(dǎo)通,然后,TP2點(diǎn)出現(xiàn)低電平,然后C1會通過Q1的基--Q1發(fā)射--R1--C1構(gòu)成一個回路進(jìn)行放電(整個過程波形如同下圖示波器截圖的上面那個通道波形:開始出現(xiàn)2ms低電平,后來按照指數(shù)形式放電,Q1就從導(dǎo)通,然后慢慢截止,最后TP2的電平穩(wěn)定為高電平),注意C2電容的容量相比C1很小,0.1u=100000p,估計(jì)C2在此電路的作用就是濾除高頻成分的目的。
?。ㄟ@里容易糊涂:C1不能突變,POWER_KEY按下瞬間C1兩端不能突變,可是C2兩端也不能突變,所以C2兩端都是低電平,那C1和C2的交點(diǎn)電壓就打架了?,因?yàn)镃2電容量相比C1的電容量很小,幾乎對C1不會產(chǎn)生影響,當(dāng)然如果C1和C2都是0.1uf,這POWER_KEY1導(dǎo)通瞬間,由于C1 C2兩端電壓都不能突變,則他們的交點(diǎn)電壓應(yīng)該是2.5V)
(電容相關(guān)理解:[深入理解電容的工作特性總結(jié)] )
下面用一個端口實(shí)現(xiàn)的開關(guān)機(jī)功能(因?yàn)镮NT0和PB14功能可以做程序中作改變):
程序控制流程稍好加上:
》》》
當(dāng)在待機(jī)情況下要求極低功耗時的電路
低功耗設(shè)計(jì)問題:如何實(shí)現(xiàn)一個MCU系統(tǒng)在待機(jī)狀態(tài)下0uA的低功耗?(在待機(jī)模式下不能工作。如何通過長按按鍵開啟系統(tǒng),并能夠在釋放按鍵后系統(tǒng)也能正常工作?)
分析:
根據(jù)系統(tǒng)功耗要求,MCU在待機(jī)模式下不能工作。如何通過長按按鍵開啟系統(tǒng),并能夠在釋放按鍵后系統(tǒng)也能正常工作?然后在開機(jī)后,再次長按按鍵后又可以進(jìn)入0uA的超低功耗下面待機(jī)。
解決:
系統(tǒng)在待機(jī)狀態(tài)(關(guān)機(jī))時,當(dāng)POWER_KEY1按鍵被長按。Q2導(dǎo)通,電池輸入電壓的高電平信號直接供到MCU芯片電源端,然后MCU一個GPIO端口立即輸出一個高電平使Q2的基極持續(xù)高電平,目的是鎖住Q2持續(xù)工作,這樣MCU就持續(xù)有電供電,這樣,按鍵即使被釋放后,也能保證系統(tǒng)一直處于工作狀態(tài)。
當(dāng)需要關(guān)閉系統(tǒng)時,還是長按POWER_KEY1按鍵,這樣會通過INT0中斷檢測到這個中斷,然后GPIO不在輸出高電平鎖存Q2的基極,這樣松口當(dāng)POWER_KEY1就可以關(guān)閉系統(tǒng)了。這樣關(guān)閉系統(tǒng)后,也沒什么功耗了,
注:下圖只是提供一個思路,這個電路還有待完善,GPIO這樣連接是否安全,比如Q2換用MOS管,各個電阻的值也要根據(jù)實(shí)際電路選區(qū),或增加電阻,電容等器件,這個系統(tǒng)才能完美工作!
三:設(shè)計(jì)低功耗常用思路
如何利用萬用表測試一臺機(jī)器在穩(wěn)定電壓下的功耗:把FLUK萬用表跳到電流檔(注意表筆的插頭搖換到電流檔)的紅表筆接到電源的正極(用黑表筆接正也不會有危險(xiǎn)),然后用黑表筆接到機(jī)器的正極,然后把電源的負(fù)極接到機(jī)器的地端,就可以測電流了。
四:設(shè)計(jì)低功耗常用思路
降低功耗不光能夠大大的節(jié)約電能還能簡化電源部分的設(shè)計(jì),甚至可以用于手持設(shè)備上面使用,這些都已經(jīng)越來越成為未來產(chǎn) 品的設(shè)計(jì)方向了^_^
1 降低功耗從MCU選型開始,一開始選型的時候就應(yīng)該考慮選擇低功耗的MCU比如MSP430一類的為低功耗設(shè)計(jì)的CPU。 強(qiáng)烈不建議使用51一方面是因?yàn)?1速度慢,另外一方面是因?yàn)?1的IO是有上拉電阻的,雖然當(dāng)IO為高電平是上拉電阻不費(fèi)電,但是下拉電流的時候卻也有不小的功耗產(chǎn)生。還有一點(diǎn)就是51的運(yùn)算速度實(shí)在是太慢了,很多運(yùn)算用51都需要很高的 主頻而主頻高了就意味著高的功耗。
2 選擇器件用電電壓,很明顯降低器件的用電電壓能夠明顯的降低器件的耗電比如說ATmega8和ATmega88雖然芯片大致內(nèi)部結(jié)構(gòu) 一致但是后者可以工作在1.8V的超低電壓下而前者就不行,綜合考慮下當(dāng)然還是選擇后者。
3 盡量降低器件的工作頻率,大家都知道CMOS電路的工作電流主要來此于開關(guān)轉(zhuǎn)換時對后一級輸入端的電容充放電,如果能夠 降低MCU的工作頻率自然耗電也就下來了。要知道當(dāng)AVR工作在32.768Hz時和工作在20Mhz時的工作電流差異可不是一般的小啊 。
4 盡量使用中斷讓處理器進(jìn)入更深的睡眠,眾所周知睡眠模式和掉電模式能夠大大的降低MCU的工作電流,聰明的單片機(jī)設(shè)計(jì)師能夠充分的利用MCU的中斷功能讓MCU周期性的工作和睡眠從而大大的降低MCU的工作電流。
5 盡量關(guān)閉MCU內(nèi)部不用的資源,這個嗎,地球人都知道的好處,我說這個有點(diǎn)像廢話一樣,不用的東西你干嗎開著呢 ?比如ATmega8內(nèi)部的模擬比較器,默認(rèn)是開著的還有ATmega88內(nèi)部的大多數(shù)資源都可以在不用的時候用軟件關(guān)閉。
6 盡量使用VMOS做為外部功率擴(kuò)展器件,道理很簡單VMOS驅(qū)動的時候是電壓行器件驅(qū)動是幾乎不產(chǎn)生功耗,要比普通的晶體管 省電多了。而且由于VMOS的導(dǎo)通內(nèi)阻低通常只有幾十個毫歐,在小電流的時候器件自身發(fā)熱也小,尤其是小電流是效率遠(yuǎn)比 傳統(tǒng)晶體管要高的多的多。這里還是建議使用高速VMOS,因?yàn)楦咚賄MOS在開關(guān)速度相當(dāng)高的PWM時效率會更高。
7 片外IC的電源最好都能由MCU的IO控制比如說我們常用的24C02,由于它是掉電記憶的,所以我們完全可以在它不工作的時候 對它關(guān)電源,以節(jié)約電流還有比如說我們常用的6116的SRAM我們完全可以用單片機(jī)來控制它的片選端口來控制它的工作與休 眠從而節(jié)約電流。
8 這招也是最毒辣的一招通常我們驅(qū)動一些LED器件,完全可以通過PWM來控制從而省略限流電阻,要知道當(dāng)器件選定后它的內(nèi) 阻也就已經(jīng)確定,而當(dāng)電源電壓也確定的時候,就可以通過占空比來確定器件上的電壓從而節(jié)約了限流電阻同時也就節(jié)約了限 流電阻上面的功耗,如果用戶使用的是電池,我們完全還可以不定期的對電池電壓進(jìn)行檢測然后改變占空比,從而恒定負(fù)載上 面的電壓,達(dá)到電源的最大利用率。