新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MSP430F5529 (四)電源&&&(五)工作模式

MSP430F5529 (四)電源&&&(五)工作模式

作者: 時(shí)間:2016-11-28 來(lái)源:網(wǎng)絡(luò) 收藏
我覺(jué)得電源管理與監(jiān)控是一個(gè)很復(fù)雜很難掌控的部分,不僅涉及到到源模式的選擇,還牽扯到復(fù)雜的中斷、以及中斷如何處理等等。雖然學(xué)好這一部分對(duì)實(shí)現(xiàn)降低功耗的目的很有幫助,但對(duì)于目前的我們來(lái)說(shuō)貌似“ “功耗”一詞還稍微遠(yuǎn)了點(diǎn)。此外,這部分控制對(duì)防止和處理供電意外((過(guò)高過(guò)低等)的發(fā)生很有幫助,不過(guò)貌似這個(gè)開(kāi)發(fā)板如果不獨(dú)立拿來(lái)做項(xiàng)項(xiàng)目而只是接在電腦USB供電的話,一般也不會(huì)有什么問(wèn)題。所以,我也也只打算簡(jiǎn)單學(xué)一下。(到后期有機(jī)會(huì)會(huì)再仔細(xì)學(xué))。

I/O口和所有模擬單元包括晶振在內(nèi)都由DVCC供電。內(nèi)存(flash和RAM)和數(shù)字單元由核心電壓VCORE供電。
DVCC:寬的電源電壓范圍1.8V-3.6V;

VCORE:DVCC經(jīng)低壓降電壓調(diào)整器(LDO),產(chǎn)生的一個(gè)二次核心電壓,專門為CPU數(shù)字邏輯供電,共有1.4V(0-12MHZ),1.6V(0-16MHZ),1.8V(0-20MHZ)和1.9V(0-25MHZ)四個(gè)級(jí)別。VCORE的最小允許電壓依賴于選擇的MCLK大小,也就是說(shuō)高主頻時(shí)需要配套較高的VCORE。
管理會(huì)產(chǎn)生復(fù)位(主要是上電期間),監(jiān)控會(huì)產(chǎn)生中斷(監(jiān)控電壓是否過(guò)高過(guò)低)。
我們最常用的是設(shè)置核心電壓VCORE,還好有專門的函數(shù)庫(kù)HAL_PMM.c/h。
在這個(gè)函數(shù)庫(kù)里除了一些設(shè)置的定義外,最重要的就是定義了三個(gè)函數(shù):
SetVCoreDown(uint8_t level):降低核心電壓
SetVCoreUp(uint8_t level): 提高核心電壓

SetVCore(uint8_t level):直接設(shè)置核心電壓值(0-3共四級(jí))
/*這個(gè)函數(shù)最重要,或者說(shuō)有了這一個(gè),前面兩個(gè)就不需要了*/

五、系統(tǒng)工作模式
第四章我們提到可以從電源層入手,達(dá)到從源頭上控制功耗的目的。這一章 我們就會(huì)講CPU工作模式,如何從次一級(jí)來(lái)控制功耗。
不同工作模式下,CPU會(huì)禁用一些模塊,從而達(dá)到控制功耗的目的。
(PS:同樣那句話,“功耗太遠(yuǎn)”,一般都不會(huì)去更改工作模式,所以簡(jiǎn) 單學(xué)習(xí))
簡(jiǎn)介幾句話:①改變工作模式會(huì)立即生效;
②發(fā)生中斷時(shí),當(dāng)前的模式設(shè)置信息會(huì)被保存,以便恢復(fù)(除非中斷服務(wù)程序中改變了工作模式);
③處于LPM4.5模式時(shí),PMM的電源監(jiān)管不會(huì)生效,所有的RAM和寄存器都會(huì)丟失,但是I/O口狀態(tài)會(huì)鎖定;
④從LPM4.5喚醒,有一套專門的流程,有興趣就去看;

下面這張圖很有意思,可以清楚的看清工作模式之間轉(zhuǎn)換的流程與方向,以及每種工作模式是怎樣設(shè)置的,又控制了哪些部分。
BOR: Brown-Out Reset 低電壓檢測(cè)復(fù)位(欠壓復(fù)位)
POR: Power-On Reset 上電復(fù)位
PUC: Power-Up Clear 上電清除
淺色部分表示一個(gè)事件,深色部分表示一種操作或設(shè)置


①設(shè)置工作模式主要是設(shè)置寄存器SR的SCG0、SCG1、OSCOFF、CPUOFF
位,AM(Active Mode)模式時(shí)四位均置零,且系統(tǒng)默認(rèn)為AM模式;
②除了AM,其余都為低功耗模式,處理器進(jìn)入低功耗模式以后,一般由中 斷來(lái)喚醒??梢允峭獠恐袛?,也可以是內(nèi)部的定時(shí)器等中斷;
③LPM0-LPM4模式下,外圍模塊都會(huì)正常工作,且RTC時(shí)鐘不會(huì)停止;
④要進(jìn)入LPM4.5這一模式(更少用),只需在LPM4的基礎(chǔ)上多一個(gè) PMMREGOFF置位。該模式下,系統(tǒng)的所有時(shí)鐘、內(nèi)存和監(jiān)督管理機(jī) 制都停了,連實(shí)時(shí)時(shí)鐘RTC都禁止操作了。
⑤LPM0和LPM1一組,除了上圖顯示的特征外,該模式下SMCLK是選通的 (SMCLKOFF =0),DCO的時(shí)鐘源如果是ACLK或者SMCLK,則DCO也是有 效的;
⑥ LPM2和LPM3一組,除了上圖顯示的特征外,該模式下SMCLK是禁止的, DCO的時(shí)鐘源如果是ACLK,則DCO也是有效的;
MSP430的頭文件對(duì)低功耗模式有詳盡的定義,如:要進(jìn)入低功耗模式0,可 在程序中直接寫LPM0; 進(jìn)入低功耗模式4,可以直接寫LMP4。退出低功 耗模式如下:
LPM0_EXIT; //退出低功耗模式0 //太方便了有木有
LPM4_EXIT; //退出低功耗模式4(LPM4.5除外)
總結(jié)實(shí)驗(yàn):一個(gè)很有意思的程序

/*低功耗模式的體現(xiàn),不用無(wú)限循環(huán),程序也不會(huì)終止*/
/*大家會(huì)發(fā)現(xiàn),LPM3后面的語(yǔ)句不會(huì)執(zhí)行,程序只會(huì)定期執(zhí)行一下中斷服務(wù)程序,這是因?yàn)長(zhǎng)PM3模式下MCLK和SMCLK、FLL都禁止了*/
#include<msp430.h>
void main(void)
{
WDTCTL=WDTPW+WDTCNTCL+WDTTMSEL+WDTIS1+WDTIS0;//WDT作定時(shí)器用
SFRIE1|=WDTIE; //開(kāi)看門狗中斷
P1DIR|=BIT1+BIT2; //P1.1接LED,設(shè)定為輸出方向
P1OUT=BIT1+BIT2;
__enable_interrupt(); //開(kāi)總中斷
//_BIS_SR(GIE); 這句話的意思也是開(kāi)總中斷
/*這里掌握一個(gè)用法_BIS_SR( ):將括號(hào)內(nèi)的變量置位*/
LPM3; //進(jìn)入LPM3低功耗模式,此模式下SMCLK被禁止
P1OUT&=~BIT2;//這句話執(zhí)行不了,所以P1.2就會(huì)保持常亮,而不會(huì)變暗
}
#pragma vector=WDT_VECTOR
__interrupt void WatchTimer(void)
{
P1OUT^=BIT1; //定時(shí)翻轉(zhuǎn),以實(shí)現(xiàn)閃爍
}


關(guān)鍵詞: MSP430F5529電源工作模

評(píng)論


技術(shù)專區(qū)

關(guān)閉