MSP430之如何降低系統功耗1

2021-07-11 08:10:22 字數 3313 閱讀 5141

msp430之如何降低系統功耗1

**:眾所周知,msp430以其超低功耗而著稱。但是很多使用者反應,在實際應用中,測量msp430的功耗時,測量結果和msp430資料手冊相差甚遠。其實這裡主要涉及到兩方面的內容:

1. 如何使用msp430合理的設計硬體和軟體,使整個應用最大限度的達到低功耗?

2. 如何測量msp430的功耗?

就如何測量msp430功耗,我來分享一下我個人的經驗。

為了使msp430最大限度的達到低功耗,對於msp430未使用的gpio而言,應該將其設定為輸出;或者是設定為輸入,但是將管腳的電平固定,可以通過外部電路將管腳連線至vcc或者gnd,也可使能內部上下拉電阻,將管腳電平固定。

對於msp430而言,大部分情況下,測量到的功耗與datasheet不符均是由對msp430未使用的gpio處理不當引起的。預設情況下,msp430的gpio是作為輸入的,其等效電路如下圖所示,為推挽模式:

當gpio管腳配置為輸入管腳且外部電平處於浮動狀態時(0msp430資料手冊各種模式下功耗的提供,均註明了相關的前提條件的,具體包括:測量溫度,供電電壓,系統時鐘的時鐘源,系統時鐘的大小,cpu主頻,msp430工作模式以及active的模組(例如brownout: bor, wdt)等。故要驗證msp430在特定模式下的功耗時,一定要注意這些前提條件。

如果要與別家的mcu比較功耗時,切記一定要在相同的前提條件下比較才有意義。而msp430的bor功能在7種lpm mode下均是開啟的,且幾乎是零功耗的。

為了更準確的測量整個使用者應用的功耗並且使得最大限度的降低整個應用的功耗,建議先對msp430處於lpm4/lpm3模式下時,板子的整體功耗進行測量。在lpm4,lpm3模式下,將msp430功耗與資料手冊調至一致後,在此基礎上,再進行其他情況下功耗的測量。

1.低功耗測試程式的編寫

a. lpm4 低功耗測試程式編寫

lpm4低功耗測試程式的編寫,建議參考wolverine msp430fr5969 lpm4 code example,如下圖所示,注意事項主要有:當作為輸入時,將gpio狀態固定, 不讓其受外部浮動電平的影響。示例中,gpio設定為輸入,但是使能其內部下拉電阻將gpio的狀態固定了。當然也可以直接將gpio配置為輸出。另外,注意將不必要的模組均關掉,以避免不必要的功耗增加。例如:msp430fr5739, 在lpm4下,記得將參考源ref關閉。

b. lpm3 低功耗測試程式編寫

首先需要明白,對於lpm3 mode下功耗的測試,需要選定aclk的時鐘源, 是內部vlo還是lfxt1。因為在lpm3下,msp430的系統時鐘只有aclk可用,mclk和smclk均不可用。而當aclk的時鐘源選擇不同時,lpm3 mode下,msp430的功耗是不同的。以msp430g2553為例,其資料手冊中寫明,lpm3下,aclk=lfxt1時,功耗約為0.7ua;而lpm3下,aclk=vlo時,功耗約為0.5ua。

另外,在測量時,為確保程式成功跑到lpm3模式下。最好能夠在進入lpm3之前有個指示,譬如讓某個led燈亮0.5s再滅掉。一定要記得進入lpm3時,滅掉led, 因為乙個led燈亮,本身就很耗電的,有時會高達2ma。而為什麼要有指示呢?是因為當採用lfxt1作為aclk時鐘源時,在程式中需要check lfxt1是否成功起振,萬一使用者忘記焊lfxt1,或者是低頻晶體沒有起振,那麼就會導致程式一直處於check flag,而不會進入lpm3。在這些情況下,如果沒有指示,當對功耗測量時,就會發現測量結果與資料手冊上lpm3下的功耗不符。

另外,切記判斷lfxt1是否起振,千萬不要直接用示波器測量低頻晶體的管腳,因為lfxt1本身是非常脆弱的,一旦外部有波動,就會停振。建議將lfxt1作為aclk時鐘源,然後將aclk從對應管交輸出後,用示波器進行觀察。

2. msp430低功耗的測量硬體注意事項

為保證功耗測試的準確性,請盡量少接外圍電路,除非是想測量特定外設的功耗。如果使用msp430 value line的launchpad進行測量時,記得將其emulation部分的5個跳線去掉,直接從板下端的vcc, gnd進行供電和功耗測量。因為如果不去掉的話,emulation部分的電路也會耗電的。

如果硬體電路時使用者自己設計的,測量lpm3,lpm4下面的功耗時,最好不要焊接msp430相關的其他電路。如果已經焊接了的話,那麼msp430 gpio的狀態配置一定要根據外部硬體電路的設計來配置。如果功耗大於msp430資料手冊上處於lpmx的功耗的話,可以嘗試更改gpio的配置,來時系統功耗達到最低。

無論何種情況下,msp430的功耗測量,一定要注意前提條件。對想要測試的msp430的工作狀態進行規劃,確定此時msp430工作的供電電壓,溫度,主頻,可用資源等,然後再測量。使用power supply 輸出固定電壓給測試板,例如3v。

1. 固定工作模式(固定功耗的測量)

如果使用者程式的編寫,msp430一直處於某種固定的模式下的話,即其功耗是固定的話,可以將萬用表調至測試電流檔直接串聯進入供電線路,即可直接觀察到此時電流值。

我曾經用過測量精度為6位半的儀器:agilent 34401a digit multimeter 和 rigol dm3061 digital multimeter,均可以精確的測量到msp430fr5969處於lpm3下0.7ua的電流。

2. msp430在active和lpmx mode下切換時功耗以及上電初始化功耗的測量

雖然高階萬用表,有對電流進行累計測量求平均的功能,但是其測量結果還是不夠精確,並且一般而言,使用者的程式在開始一般都有初始化過程,有時初始化過程還分很多段,當使用者想要測量初始化過程不同時間段對應的功耗時,將萬用表串聯入供電線路就無法完成這個功能了。此時,建議使用者使用示波器測量串聯入供電線路精密電阻兩端的電壓的方法,來對系統的功耗有個更直觀,精確且有說服力的測量。具體的方法是,用乙個約為10~20歐的精密電阻(誤差為1%甚至更低)串聯入供電線路中,然後用示波器直接觀察此電阻兩端電壓的變化,測出各個階段,各個工作模式下電阻兩端的電壓值,而後處於電阻值即可得到對應的工作電流。

希望對您有幫助!o(∩_∩)o~

br,lina

MSP430低功耗模式

msp430的電壓已經降到了3.3v,雖然不是最低的 arm的部分晶元核心工作電壓降到了1.8v 但是這已經是比較低的了 msp430比較出彩的地方乙個是把一顆晶元分成了n個不同的模組部分,不用的部分功能模組可以關閉掉,電流近似為零 另乙個出彩的地方是,可以有三個時鐘源,並產生更多的內部可用工作頻率...

如何測量MSP430的功耗? TI FAE 分享

眾所周知,msp430以其超低功耗而著稱。但是很多使用者反應,在實際應用中,測量msp430的功耗時,測量結果和msp430資料手冊相差甚遠。其實這裡主要涉及到兩方面的內容 1.如何使用msp430合理的設計硬體和軟體,使整個應用最大限度的達到低功耗?2.如何測量msp430的功耗?就如何測量msp...

msp430系統時鐘

msp430基礎時鐘模組包含以下3個時鐘輸入源。一 4個時鐘振盪源 1 lfxt1clk 外部晶振或時鐘1 低頻時鐘源 低頻模式 32768hz 高頻模式 400khz 16mhz 2 xt2clk 外部晶振或時鐘2 高頻時鐘源 400khz 16mhz 3 dcoclk 內部數字rc振盪器,復位值...