不會(huì)低功耗設(shè)計(jì)?MCU低功耗設(shè)計(jì)的5點(diǎn)注意要點(diǎn)
功耗設(shè)計(jì)不合格?設(shè)計(jì)的產(chǎn)品功耗太高了?不符合低功耗的要求?沒(méi)事沒(méi)事,這篇文章中,小編將對(duì)MCU設(shè)計(jì)時(shí)的低功耗的5點(diǎn)注意要點(diǎn)予以介紹。如果你正在頭疼低功耗設(shè)計(jì)如何實(shí)現(xiàn)或者你對(duì)本文內(nèi)容具有興趣,不妨從本文中汲取一點(diǎn)靈感哦。
微控制單元(Microcontroller Unit;MCU) ,又稱(chēng)單片微型計(jì)算機(jī)(Single Chip Microcomputer )或者單片機(jī),是把中央處理器(Central Process Unit;CPU)的頻率與規(guī)格做適當(dāng)縮減,并將內(nèi)存(memory)、計(jì)數(shù)器(Timer)、USB、A/D轉(zhuǎn)換、UART、PLC、DMA等周邊接口,甚至LCD驅(qū)動(dòng)電路都整合在單一芯片上,形成芯片級(jí)的計(jì)算機(jī),為不同的應(yīng)用場(chǎng)合做不同組合控制。諸如手機(jī)、PC外圍、遙控器,至汽車(chē)電子、工業(yè)上的步進(jìn)馬達(dá)、機(jī)器手臂的控制等,都可見(jiàn)到MCU的身影。
MCU功耗明明應(yīng)該只有176nA,可是測(cè)出來(lái)的硬是達(dá)到了700mA!簡(jiǎn)直是不能忍啊,想死的心都有了。
平常我們?cè)谑褂肕CU低功耗時(shí)經(jīng)常會(huì)出現(xiàn)實(shí)際功耗比理論功耗偏差較大,如在某些低到微安級(jí)的功耗模式,而我們?cè)O(shè)計(jì)的低功耗怎么測(cè)都是毫安級(jí)的,電流竟然能夠高出理論幾百到上千倍,遇到這種情況千萬(wàn)不要怕,只要認(rèn)真你就贏了。
下面列出在設(shè)計(jì)低功耗時(shí)需要注意的五點(diǎn)。
1、掐斷外設(shè)命脈——關(guān)閉外設(shè)時(shí)鐘
先說(shuō)最直觀的,也是我們都比較注意的方面,就是關(guān)閉MCU的外設(shè)時(shí)鐘。對(duì)于現(xiàn)在大多數(shù)的MCU,其外設(shè)模塊都對(duì)應(yīng)著一個(gè)時(shí)鐘開(kāi)關(guān),只要打開(kāi)這個(gè)外設(shè)時(shí)鐘,就可以正常使用該外設(shè)了,當(dāng)然,該外設(shè)也就會(huì)產(chǎn)生相應(yīng)的功耗;反之,如果想要讓這個(gè)外設(shè)不產(chǎn)生功耗,一般只需要關(guān)閉該外設(shè)時(shí)鐘即可。
2、讓工作節(jié)奏慢下來(lái)——時(shí)鐘不要倍頻
除了外設(shè)模塊功耗消耗之外,還有一個(gè)功耗大戶(hù),那就是PLL和FLL模塊。PLL和FLL主要是用來(lái)對(duì)原始的時(shí)鐘信號(hào)進(jìn)行倍頻操作,從而提高系統(tǒng)得整體時(shí)鐘,相應(yīng)的其功耗也會(huì)被提上去。所以在進(jìn)入低功耗前,需要切換時(shí)鐘模式,旁路掉PLL和FLL模塊,等到MCU喚醒之后再把時(shí)鐘切換回去。
3、圍堵涓涓細(xì)流——注意IO口的電平狀態(tài)
如果認(rèn)為只要關(guān)閉外設(shè)時(shí)鐘就能夠保證外設(shè)不在耗電,那你就真的太年輕了。如果IO口沒(méi)有做好處理的話(huà),它就會(huì)在暗地里偷走功耗,而你卻渾然不知。具體原因是這樣的,一般IO內(nèi)部或者外部都會(huì)有上下拉電阻,舉個(gè)例子如下圖所示,假設(shè)某個(gè)IO口有個(gè)10KΩ的上拉電阻,根據(jù)歐姆定律,此引腳就會(huì)消耗3.3V/10K=0.33mA的電流,假如有四、五個(gè)這樣的IO口,那么幾個(gè)毫安的電流就這樣貼進(jìn)去了,太可惜了。
所以在進(jìn)入低功耗之前,請(qǐng)逐個(gè)檢查IO的狀態(tài):
如果該IO口帶上拉,請(qǐng)?jiān)O(shè)置為高電平輸出或者高阻態(tài)輸入;
如果該IO口帶下拉,請(qǐng)?jiān)O(shè)置為低電平輸出或者高阻態(tài)輸入;
4、睦鄰友好合作——注意IO與外設(shè)IC的統(tǒng)籌
IO口的上下拉電阻消耗電流這一因素相抵比較明顯,下面咱們來(lái)說(shuō)一個(gè)不明顯的因素:IO口與外部IC相連時(shí)的電流消耗。假如某個(gè)IO口自帶上拉,而與此IO相連的IC引腳偏偏是自帶下拉的,那么無(wú)論這個(gè)引腳處于什么樣的電平輸出,都不可避免的會(huì)產(chǎn)生一定的電流消耗。所以凡是遇到這一類(lèi)的情況,首先需要閱讀外設(shè)IC的手冊(cè),確定好此引腳的狀態(tài),做到心中有數(shù);然后再控制MCU睡眠前,設(shè)置好MCU的IO的上下拉模式及輸入輸出狀態(tài),要保證一絲兒電流都不要被它消耗掉。
5、斷開(kāi)調(diào)試器連接——不要被假象所迷惑
還有一類(lèi)比較奇特,檢測(cè)出來(lái)的電流消耗很大,可實(shí)際結(jié)果是自己杞人憂(yōu)天,什么原因呢?是因?yàn)樵跍y(cè)試功耗的時(shí)候MCU還連著調(diào)試器呢!這時(shí)候大部分電流就會(huì)被調(diào)試器給擄走,平白無(wú)故的讓我們產(chǎn)生極度郁悶的心情。所以在測(cè)試低功耗的時(shí)候,一定不要連接著調(diào)試器,更不要邊調(diào)試邊測(cè)電流。
