低功耗設(shè)計(jì)
STC15省電模式(數(shù)據(jù)手冊(cè)有介紹)
STC15系列單片機(jī)可以運(yùn)行3種省電模式以降低功耗,它們分別是:低速模式,空閑模式和掉電模式。
正常工作模式下,STC15系列單片機(jī)的典型功耗是2.7mA ~7mA,而掉電模式下的典型功耗是<0.1uA,空閑模式下的典型功耗是1.8mA
低速模式由時(shí)鐘分頻器CLK_DIV (PCON2)控制,時(shí)鐘分頻器可以對(duì)內(nèi)部時(shí)鐘進(jìn)行分頻,從而降低工作時(shí)鐘頻率,降低功耗,降低EMI。
而空閑模式和掉電模式的進(jìn)入由電源控制寄存器PCON的相應(yīng)位控制。PCON寄存器定義如下:
SMOD, SMOD0:與電源控制無(wú)關(guān),與串口有關(guān),在此不作介紹。
LVDF:低壓檢測(cè)標(biāo)志位,同時(shí)也是低壓檢測(cè)中斷請(qǐng)求標(biāo)志位。
在正常工作和空閑工作狀態(tài)時(shí),如果內(nèi)部工作電壓Vcc低于低壓檢測(cè)門(mén)檻電壓,該位自動(dòng)置1,與低壓檢測(cè)中斷是否被允許無(wú)關(guān)。即在內(nèi)部工作電壓Vcc低于低壓檢測(cè)門(mén)檻電壓時(shí),不管有沒(méi)有允許低壓檢測(cè)中斷,該位都自動(dòng)為1。該位要用軟件清0,清0后,如內(nèi)部工作電壓Vcc繼續(xù)低于低壓檢測(cè)門(mén)檻電壓,該位又被自動(dòng)設(shè)置為1。
在進(jìn)入掉電工作狀態(tài)前,如果低壓檢測(cè)電路未被允許可產(chǎn)生中斷,則在進(jìn)入掉電模式后,該低壓檢測(cè)電路不工作以降低功耗。如果被允許可產(chǎn)生低壓檢測(cè)中斷,則在進(jìn)入掉電模式后,該低壓檢測(cè)電路繼續(xù)工作,在內(nèi)部工作電壓Vcc低于低壓檢測(cè)門(mén)檻電壓后,產(chǎn)生低壓檢測(cè)中斷,可將MCU從掉電狀態(tài)喚醒。
POF :上電復(fù)位標(biāo)志位,單片機(jī)停電后,上電復(fù)位標(biāo)志位為1 ,可由軟件清0 。
實(shí)際應(yīng)用:要判斷是上電復(fù)位(冷啟動(dòng)),還是外部復(fù)位腳輸入復(fù)位信號(hào)產(chǎn)生的復(fù)位,還是內(nèi)部看門(mén)狗復(fù)位,還是軟件復(fù)位或者其他復(fù)位,可通過(guò)如下方法來(lái)判斷:
GF1,GFO :兩個(gè)通用工作標(biāo)志位,用戶可以任意使用。
PD:將其置1時(shí),進(jìn)入掉電模式,可由外部中斷上升沿觸發(fā)或下降沿觸發(fā)喚醒,進(jìn)入掉電模式時(shí),內(nèi)部時(shí)鐘停振,由于無(wú)時(shí)鐘,所以CPU、定時(shí)器等功能部件停止工作,只有外部中斷繼續(xù)工作。可將CPU從掉電模式喚醒的外部管腳有:INT0/P3.2,INT1/P3.3,INT2/P3.6, INT3/P3.7,INT4/P3.0;管腳CCP0/CCP1/CCP2;管腳RxD/RxD2/RxD3/RxD4;管腳T0/T1/T2/T3/T4;有些單片機(jī)還具有內(nèi)部低功耗掉電喚醒專用定時(shí)器。掉電模式也叫停機(jī)模式,此時(shí)功耗<0.1uA。
本次實(shí)驗(yàn)就是將PD位置1,讓MCU進(jìn)入掉電模式,減低功耗
IDL:將其置1,進(jìn)入IDLE模式(空閑),除系統(tǒng)不給CPU供時(shí)鐘,CPU不執(zhí)行指令外,其余功能部件仍可繼續(xù)工作,可由外部中斷、定時(shí)器中斷、低壓檢測(cè)中斷及A/D轉(zhuǎn)換中斷中的任何一個(gè)中斷喚醒。
空閑模式詳解
掉電模式詳解(< 0.1uA)
本項(xiàng)目實(shí)驗(yàn)現(xiàn)象
-
數(shù)碼管顯示PCB板溫度;
-
長(zhǎng)按按鍵1超過(guò)2s,系統(tǒng)進(jìn)入待機(jī)模式;
-
單擊按鍵1,系統(tǒng)退出待機(jī)模式,正常運(yùn)行;
-
待機(jī)電流處于1.1uA左右,其中LDO占了 1uA,單片機(jī)占了0.1uA;
-
用萬(wàn)用表測(cè)試到正常運(yùn)行的電流大概為30、40mA;進(jìn)入待機(jī)模式后,電流為1.1uA
開(kāi)發(fā)板上電后,串口輸出初始化信息,數(shù)碼管顯示PCB板的溫度,運(yùn)行指示燈每隔一秒閃爍一次
將萬(wàn)用表串聯(lián)在電源線上,量程調(diào)到直流mA檔,待穩(wěn)定后,可看到電流在30或40多mA變動(dòng)
長(zhǎng)按按鍵1兩秒以上,串口輸出調(diào)試信息,單片機(jī)輸出停機(jī)指示后進(jìn)入停機(jī)模式,數(shù)碼管不亮,外設(shè)電源被切斷,運(yùn)行指示燈不閃
此時(shí)萬(wàn)用表電流
看萬(wàn)用表仍然有十幾mA的電流,原因是雖然單片機(jī)和外設(shè)都不工作了,但CH340芯片還在耗電,在實(shí)際的產(chǎn)品中CH340芯片是沒(méi)有的,開(kāi)發(fā)板的CH340只是用來(lái)調(diào)試信息,所以要把CH340芯片的供電去掉,開(kāi)發(fā)板硬件上有做了一個(gè)跳線冒,把跳線冒拔掉,則CH340芯片的電源被切斷,不再耗電,把萬(wàn)用表的量程調(diào)到uA檔,此時(shí)電流達(dá)到最低,理論1.1uA,測(cè)量會(huì)有些許誤差
在停機(jī)模式下單擊按鍵1,喚醒系統(tǒng),系統(tǒng)退出停機(jī)模式,串口重新輸出信息,WIFI模塊重新初始化,開(kāi)發(fā)板數(shù)碼管獲取溫度并顯示,運(yùn)行指示燈閃爍
萬(wàn)用表電流重新顯示30或40多mA
低功耗設(shè)計(jì)要點(diǎn)
參考:https://www.elecfans.com/d/1068248.html,這篇文章概述的不錯(cuò)
系統(tǒng)框圖
系統(tǒng)框圖的設(shè)計(jì)最重要,這是從總體上來(lái)設(shè)計(jì)低功耗的,決定了低功耗能達(dá)到什么水平;低功耗牽涉到了整體,包括硬件和軟件,要兩者兼具,才能很好的設(shè)計(jì)出低功耗產(chǎn)品
首先單片機(jī)型號(hào)要選擇低功耗的,如這款STC15L2K32S2,低功耗電流為0.1uA,或者其他型號(hào)的單片機(jī)如STM8,MSP430
其次LDO要選擇低功耗的,如HT7333-3,250mA 3.3V 高耐壓低壓差線性三端穩(wěn)壓LDO芯片,低功耗為1uA
然后就控制外設(shè)的供電,MP2451并不能將使能腳EN置為低電平來(lái)達(dá)到低功耗的目的,因?yàn)榫退闶鼓苣_EN關(guān)閉了,只是沒(méi)有給外設(shè)供電,但其本身內(nèi)部的電路仍然是在工作的,有100多uA,所以要在前面設(shè)計(jì)一個(gè)PMOS開(kāi)關(guān),進(jìn)入低功耗時(shí)就能把電源完全關(guān)掉,右邊輸出0V
最后所有的外設(shè)也要進(jìn)行低功耗設(shè)計(jì),如選型,或者引腳配置
元器件選型
單片機(jī),LDO等元器件需要選擇低功耗的。本項(xiàng)目的STC15L2K32S2單片機(jī),待機(jī)電流0.1uA,HT7333-3型號(hào)的LDO靜態(tài)電流低至1uA,可以滿足要求。
在STC15L2K32S2數(shù)據(jù)手冊(cè)中,附錄A:STC15系列單片機(jī)電氣特性,可以看到低功耗說(shuō)明,待機(jī)電流小于0.1uA
LDO芯片HT7333-3的數(shù)據(jù)手冊(cè)中可以查看到該型號(hào)的靜態(tài)電流
靜態(tài)電流指:當(dāng)芯片輸出IOUT為0mA時(shí),芯片本身消耗的電流叫靜態(tài)電流
可以看到典型值的電流是1uA,這個(gè)值受溫度的影響
硬件電路的設(shè)計(jì)
進(jìn)入待機(jī)模式時(shí),硬件設(shè)計(jì)需要考慮關(guān)閉外設(shè)的電源,本項(xiàng)目的MP2451通過(guò)PMOS開(kāi)關(guān)控制,NTC溫度采集通過(guò)NPN晶體管控制,就是基于此考慮
程序設(shè)計(jì)
需要單片機(jī)根據(jù)外設(shè)類型配置好GPIO的模式以及輸出的電平。
不用的引腳,不能輸入懸空,可以設(shè)置為推挽,輸出低電平;
關(guān)閉外設(shè)的電源;
合理配置GPIO,防止通過(guò)外設(shè)引腳漏電,比如 WIFI 模塊的控制引腳,TM1620 的控制引腳等??刂埔_在低功耗時(shí)都配置為低電平
待機(jī)模式引腳配置注意點(diǎn)
不能有懸空的引腳,不然這些引腳會(huì)存在電流,懸空引腳要全部設(shè)置為輸出模式,并輸出低電平
防止TM1620漏電
把MP2451關(guān)閉后,Peripheral_3V3 是沒(méi)有電壓的,在TM1620模塊中,如果單片機(jī)對(duì)STB這個(gè)引腳輸出了高電平,且引腳設(shè)為了準(zhǔn)雙向口,同時(shí)單片機(jī)內(nèi)部有上拉電阻,那么這3.3V的電壓由于上拉電阻和R1電阻的存在,被分壓為1V左右后與Peripheral_3V3 形成了電壓差,導(dǎo)致有電流從Peripheral_3V3 流出,就又會(huì)給其他外設(shè)供電,或者流入GND,這種情況稱為漏電現(xiàn)象
存在漏電現(xiàn)象則電流是降不了的,達(dá)不到低功耗,所以要對(duì)單片機(jī)的這些引腳進(jìn)行配置,都將其輸出低電平,防止漏電
防止串口TX漏電
同理,串口TX如果輸出高電平的話,比如給到CH340芯片,RS-485芯片,ESP-12S芯片,都會(huì)造成芯片內(nèi)部耗電,所以串口TX引腳也要全都輸出低電平
防止串口RX漏電
因?yàn)閱纹瑱C(jī)對(duì)于RXD引腳都是配置為高阻輸入的,當(dāng)外設(shè)電源斷開(kāi)后,RXD引腳就相當(dāng)于沒(méi)接,此時(shí)引腳就處于懸空狀態(tài)了,會(huì)有100多uA的電流,所以RXD引腳進(jìn)入低功耗模式后就要配置為推挽輸出,并輸出低電平,就不會(huì)耗電;
開(kāi)發(fā)板上的RXD(CH340)、RXD1(RS-485)、RXD2(ESP-12S)都先設(shè)置為推挽輸出,并都輸出低電平
防止IIC口漏電
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-451462.html
IIC口同理,SCL和SDA都有上拉電阻,如果為高電平的話,電流就會(huì)從引腳流到Peripheral_3V3,造成漏電文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-451462.html
到了這里,關(guān)于STC15單片機(jī)-低功耗設(shè)計(jì)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!