新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 初識STM8S的電源管理

        初識STM8S的電源管理

        作者: 時間:2016-11-10 來源:網絡 收藏
        豐富的片上設備模塊和可配置熔絲選項是AVR強過老一輩MCU的優勢之一。不過STM8S出世以后,AVR的這一優勢就有點光環頓失了。


        下面是我對電源管理部分的理解,這是我看過STM8S手冊和STM8S20X器件資料后的初步認識。

        除了運行模式,可以采用以下三種低功耗模式:等待、主動停機、停機。
        1)等待(Wait)模式:CPU停止工作,片上設備可以選擇被關斷,任意內部外部中斷及復位均可喚醒,耗電2.4mA@24MHz,5v。
        2)主動停機模式(Active Halt):保留一個定時喚醒單元AWU工作,CPU和片上設備全停止工作,AWU和外部中斷及復位均可喚醒,耗電11uA - 1000uA,取決于片上穩壓器(MVR還是LPVR)和Flash模式的選擇。
        3)停機模式(Halt):CPU和片上設備完全停止工作,定時喚醒單元AWU也停止,僅由外部中斷及復位喚醒,耗電6uA~66uA,取決于Flash模式的選擇。

        這樣的設置并沒有太多與眾不同,但一些細節的設計卻提供了靈活的選擇。

        系統慢速運行
        提供4種振蕩模式:0~24MHz外部晶體SHE、外部時鐘、16MHz內部高速振蕩器SHI、128KHz內部低速速振蕩器LSI。內部高速振蕩器4檔可調,最大8分頻。CPU時鐘8檔可調,最大128分頻。

        系統時鐘切換
        可以不卡殼地安全地切換時鐘源。分自動模式和手動模式。自動模式時,先設定好要切換的時鐘,程序繼續工作,無需照顧時鐘切換過程,新時鐘振蕩并穩定以后切換完成。這有助于在運行中使用較低速度的振蕩器。

        在RAM中運行
        系統運行于RAM中比運行于FLASH中要省電很多,4mA vs 11mA。可以把常用的代碼置于RAM中運行。

        關閉不用的數字片上設備
        AVR是各個模塊在其寄存器中使能或關閉,STM8S則集中到兩個PCG寄存器中。因是CMOS電路,關閉時鐘就等于斷電。

        換到低功耗內部穩壓器
        STM8S的核心工作在1.8V,內部穩壓器有兩個,MVR和LPVR。LPVR是低功耗穩壓器,提供的電流較小但是自身功耗低。主動停機模式下選擇PLVR,整機功耗有明顯下降。但是使用主穩壓器MVR時,從主動停機模式下喚醒較快。

        主動停機模式和停機模式下Flash掉電
        在停機模式下Flash進入掉電模式,節約20~60uA電流,代價是喚醒時間長幾個uS。

        定時喚醒單元AWU
        AWU是一個很好的設計,使得系統多一個從主動停機模式定時喚醒的定時器,這是主動停機模式的得名。就像整機工作在定時器中斷喚醒的模式下。但這是從主動停機模式中醒來的,而不是從等待模式(即空閑模式)中醒來,電流節省得更多。而且,AWU的配置也相當的靈活,手冊中有一個例子,可配置為15uS到30S。相比之下,AVR的省電模式必須使用內部振蕩器時,才可以靠外部T2時鐘運行類似的定時喚醒模式,外接晶振免談。

        不過,STM8S掉電模式(停機模式)的功耗約6.5uA到5V,4.5uA到3.3V,高于Pico的AVR。不適合長期關機保電的場合,例如使用2032等鋰電池的場合。

        AVR的PicoPOWER還是可以用一用的,如果MSP430還是那么貴的話。

        本文引用地址:http://www.104case.com/article/201611/317098.htm

        CLK_PCKENR2 |= 0x04; // Enable the clock for AWU
        // AWU設置前必須先使能

        AWU_CSR1 = 0; // 自動喚醒設置(1S)
        AWU_APR = (31-2); // f_APR = LSI 128K/31
        AWU_TBR = 0x0D; // T_AWU = 2^12 / f_APR = 0.992S
        AWU_CSR1_AWUEN = 1; // 啟動AWU

        #pragma vector = AWU_vector // 加的中斷地址.原頭文件漏了
        __interrupt void
        AWU_isr(void)
        {
        BYTE i;

        i = AWU_CSR1; // !!!CLR FLAG
        if(bitif(i,5))
        WakeUpSR = 0;
        else
        WakeUpSR = 0xFF;
        }



        關鍵詞: STM8S電源管

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 灵寿县| 宁乡县| 汾西县| 睢宁县| 龙川县| 平泉县| 松滋市| 蓬溪县| 宁津县| 荣昌县| 阿瓦提县| 武夷山市| 郎溪县| 汕尾市| 稻城县| 仁寿县| 涪陵区| 太湖县| 锡林郭勒盟| 蓬溪县| 青田县| 宜川县| 九江市| 南涧| 上思县| 如东县| 纳雍县| 抚顺县| 祁东县| 唐海县| 寿光市| 曲水县| 云和县| 韶山市| 壤塘县| 花莲市| 沁源县| 肇源县| 新巴尔虎右旗| 新丰县| 长寿区|