眾所周知,msp430以其超低功耗而著稱。但是很多使用者反應,在實際應用中,測量msp430的功耗時,測量結果和msp430資料手冊相差甚遠。其實這裡主要涉及到兩方面的內容:
1. 如何使用msp430合理的設計硬體和軟體,使整個應用最大限度的達到低功耗?
2. 如何測量msp430的功耗?
就如何測量msp430功耗,我來分享一下我個人的經驗。
為了更準確的測量整個使用者應用的功耗並且使得最大限度的降低整個應用的功耗,建議先對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%甚至更低)串聯入供電線路中,然後用示波器直接觀察此電阻兩端電壓的變化,測出各個階段,各個工作模式下電阻兩端的電壓值,而後處於電阻值即可得到對應的工作電流。
MSP430低功耗模式
msp430的電壓已經降到了3.3v,雖然不是最低的 arm的部分晶元核心工作電壓降到了1.8v 但是這已經是比較低的了 msp430比較出彩的地方乙個是把一顆晶元分成了n個不同的模組部分,不用的部分功能模組可以關閉掉,電流近似為零 另乙個出彩的地方是,可以有三個時鐘源,並產生更多的內部可用工作頻率...
MSP430 測量輸入電平
msp430微控制器io口用來檢測高低電平時,是不需要外部上拉下拉的,因為其內部有上拉和下拉。在用作高低電平檢測時,需要開啟上拉或下拉。如果有效狀態為高電平,則需要配置為ren為上拉使能,且配置out為0,即設定為下拉。如果有效狀態為低電平,則需啊喲配置ren為使能,且out位1,即設定為上拉。如果...
MSP430之如何降低系統功耗1
msp430之如何降低系統功耗1 眾所周知,msp430以其超低功耗而著稱。但是很多使用者反應,在實際應用中,測量msp430的功耗時,測量結果和msp430資料手冊相差甚遠。其實這裡主要涉及到兩方面的內容 1.如何使用msp430合理的設計硬體和軟體,使整個應用最大限度的達到低功耗?2.如何測量m...