功耗是物聯網應用當中非常關鍵的因素,在開發的早期都會對功耗進行評估和測試。那么,如何使用ST提供的工具對動態功耗進行測量呢?針對BLE應用應當如何進行低功耗的設計呢?本篇跟大家一起聊聊該話題。
測量工具
在本文中使用CubeMonitor-Power + Power Shield的組合工具對STM32Nucleo開發板的動態功耗進行測量。
CubeMonitor-Power是ST提供的上位機軟件,主要幫助用戶動態的測量功耗。用戶可以設定采樣頻率,采樣時間,輸入電壓等。其界面如下:
X-NUCLEO-LPM01A是ST提供的一塊功耗測量的評估板,它可以配合CubeMonitor-Power上位機軟件,對目標板的動態功耗進行測量,方便開發者對功耗進行評估。
其特性如下:可編程電壓源范圍:1.8v~3.3v
靜態測量:
電流范圍:1nA~200mA
動態測量:
電流范圍:100nA~50mA
100KHz帶寬,3.2Msps采樣率
功耗測量范圍:180nW~165mW
X-NUCLEO-LPM01A與STM32WB Nucleo板的連接如下所示,完成連接后就可以通過上位機控制和測量Nucleo的功耗了。
不同低功耗模式的區別主要如下:
低功耗模式喚醒源喚醒后系統時鐘時鐘影響
Sleep中斷/事件與進入前一樣CPU時鐘關閉,對其他時鐘或模擬時鐘源無影響
LPRUN清除LPR位與進入前一樣無
LPSLEEP中斷/事件與進入前一樣CPU時鐘關閉,對其他時鐘或模擬時鐘源無影響
Stop0/Stop1/Stop2任意EXTI,特定外設事件
STOPWUCK=1,HSI16STOPWUCK=0,MSI
所有時鐘關閉,除了LSI和LSE
StandbyWKUP引腳,RTC事件,LSECSS,NRST引腳復位,IWDG重置HSI16
ShutdownWKUP引腳,RTC事件, NRST引腳復位MSI 4MHz所有時鐘關閉,除了LSE
STM32WB支持的低功耗模式非常多,首先需要根據應用情況選擇一個適合的低功耗模式,能保持BLE連接的低功耗模式主要有Sleep和STOP,
SMPS
LDO是一種線性電源,它的優勢在于結構簡單,電流紋波比較低,但電源效率偏低。
SMPS是一種開關電源,它的優勢在于電源效率高,損耗小,但由于頻率較高會對周圍設備造成一定的干擾,需要注意。
通過修改Nucleo板子上的SB31可以控制LDO還是SMPS供電:SB31打開:SMPS打開SB31關閉:SMPS關閉軟件側,打開SMPS,修改app_conf.h代碼如下:
#define CFG_USE_SMPS 1
關閉SMPS,使用LDO,修改app_conf.h代碼:#define CFG_USE_SMPS 0
從以上圖片可以看出,使用SMPS無論是平均電流還是低功耗狀態下的電流都要更小,所以應當盡可能使用SMPS。
廣播參數
使用BLE_HeartRate Demo不需要做任何修改就可以測試不同的廣播參數,該demo默認會先進行一段時間快速廣播,然后再進入慢速廣播。
廣播間隔不同,平均功耗不同。
左側圖片的廣播間隔為80ms~100ms,平均電流為282.914 uA。右側圖片的廣播間隔為1s~2.5s,平均電流為16.443 uA。
可以看出廣播間隔的長短對功耗影響很大,所以在設計BLE應用的時候,應當考慮適當降低廣播間隔。
為了保證盡快被對方設備發現,可以如ST 心率Demo中的做法類似,首先先進入一段時間的快速廣播,然后使用慢速廣播,這樣既可以保證開機時被發現的速度,又可以降低平均功耗。
連接參數
測試修改連接參數,可以使用ST提供的P2P Demo。注意:只有主機才能修改連接參數。
通過Button SW2按鍵,切換并測試不同的連接參數,代碼修改如下圖:打開Button SW2的中斷:
關閉trace后,可以使能低功耗:
連接dongle后,按下Button后,切換不同的連接參數:
由于BLE在沒有數據傳輸時,也會發送空包,所以降低連接間隔,可以降低平均功耗。
如圖所示,左邊是使用125ms連接間隔測試的結果,右邊是使用1250ms連接間隔的測試結果,左邊比右邊的平均電流要高近 140uA。所以在應用中可以根據具體的應用使用合適的連接間隔來降低平均功耗。
總結
本文介紹了使用STM32WB設計BLE應用時,影響功耗的各方面的內容。低功耗設計的好壞,直接關系到產品的使用時長,往往是優秀產品的必備要素,需要認真掌握。
責任編輯:haq
-
STM32
+關注
關注
2291文章
11019瀏覽量
363051 -
BLE
+關注
關注
12文章
696瀏覽量
60485
原文標題:工程師筆記 | STM32WB BLE應用低功耗設計
文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
低功耗藍牙BLE透傳模塊HM-BT4531的技術規格與應用指南
STM32WB5MMG模塊能否支持Thread轉WIFI?
STM32WB5MMG模塊能否支持Thread轉WIFI?
STM32WB09KEV6TR生成的代碼需要改哪些地方才能實現開啟BLE?
用兩塊nucleo-wb05kz分別運行BLE_SerialCom_Peripheral 和BLE_SerialCom_central的藍牙通訊示例,出現死機的情況怎么解決?
低價不貴!安信可WiFi+BLE模組Ai-WB2系列

STM32WB55RG開發(5)----監測STM32WB連接狀態

STM32WB55RG開發(3)----生成 BLE 程序連接手機APP

STM32WB55RG開發(1)----開發板測試

stm32低功耗設計技巧
STM32WB0系列無線微控制器滿足低功耗藍牙應用需求

ST NPI 專區 | 新上架產品【STM32WB09KEV7TR】

超小!安信可5款迷你封裝WiFi+BLE模塊

評論