掌握電源管理核心API,不僅能讓開發者精準把控設備功耗,更能為應用賦予可持續競爭力。未來隨著Open平臺技術的持續演進,這些API將不斷釋放更多優化潛力,助力開發者打造更智能、更省電的下一代應用。本文應工程師朋友相邀,特別分享Air780EPM電源管理相關核心API。
最新資料詳見:https://docs.openluat.com/air780epm/luatos/api/core/pm/
在實際應用中可靈活結合硬件設計,實現物聯網設備超低功耗待機?、?動態性能優化?、?電池保護及系統防崩潰?的完整電源管理方案。
一、Air780EPM低功耗模式
1.1 功耗模式定義及典型功耗
Air780EPM三種功耗模式的介紹,“常規模式”、“低功耗模式”、“PSM+模式”,以及典型實網環境條件下的功耗測試數據,如下表所示:
1.2 如何設置Air780EPM功耗模式
我知道你一定會問:為什么1和2都是低功耗模式?Why?
歷史原因,pm.WORK_MODE在LuatOS中定義了4個模式,但是,就Air780EPM這一特定型號來說,為了方便理解和簡化設計,只定義了3種功耗模式,所以就出現了1和2都是低功耗模式的結果。
注意:1和2沒有任何區別,設置1和2都是同一個低功耗模式,請大家在設計時務必注意!!!
1.3 pm.power(id, int)
設置Air780EPM進入常規模式、低功耗模式、PSM+模式的函數。
1)參數:
id:int型(功耗模式控制id,pm.WORK_MODE);
int:int型(0,常規模式;1,低功耗模式;2,低功耗模式;3,PSM+模式; )。
2)返回值:
返回值類型:boolean;
說明:處理結果true成功,false失敗。
3)例子:
二、與定時器喚醒相關的函數
2.1 pm.dtimerStart(id, timeout)
啟動底層定時器,在常規模式/低功耗模式/PSM+模式下都可以生效,只觸發一次;注意,關機狀態下無效。
1)參數:
id:int型
定時器id;Air780EPM可以設置多個定時器,不同的定時器ID代表不同的定時器進程;一般來說,定時器進程不要超過6個。相應的,定時器ID的取值范圍是0-5; 其中,0和1的最大休眠時長是2.5小時,2到5的最大休眠時長是740小時。
timeout:int型(定時時長,單位毫秒)。
2)返回值:
返回值類型:boolean;
說明:處理結果。
3)例子:
2.2 pm.dtimerStop(id)
關閉底層定時器
1)參數:
id:int型(定時器id);
2)返回值:無
3)例子:
2.3 pm.dtimerCheck(id)
檢查底層定時器是不是在運行。
1)參數:
id:int型(定時器id);
2)返回值:
返回值類型:boolean(處理結果,true還在運行,false不在運行);
返回值類型:number(如果運行,運行剩余時間,單位毫秒)。
3)例子:
2.4 dtimerWkId()
檢查定時喚醒是哪一個定時器,如果不是定時喚醒的,返回-1。
1)參數:無
2)返回值:
int型(處理結果 >=0 是本次定時喚醒的定時器ID,其他錯誤,說明不是定時喚醒的)。
3)例子:
三、開機、關機、重啟等相關函數
3.1 pm.lastReson()
Air780EPM共有如下幾種開機形式:
PSM+模式下,RAM掉電,PSM+模式前數據丟失,退出PSM+模式后代碼需要從頭開始運行,這個過程,也被視為"開機";
從PSM+模式到低功耗模式或常規模式,原因有 定時器喚醒、WAKEUP喚醒、開機鍵喚醒、UART1喚醒 四種喚醒方式,這四種喚醒方式,是Air780EPM的開機原因之一;
除從PSM+模式到低功耗模式或常規模式的開機之外,還有關機狀態下的PWRKEY開機、常規模式/低功耗模式/PSM+模式下的Reset重啟,鬧鐘開機、軟件重啟、LuaTools等工具控制重啟、內部看門狗重啟、外部重啟以及程序跑飛下的異常開機等。
pm.lastReson()函數,就是用來識別和返回Air780EPM這些開機原因的函數。
1)參數:
id:int型
定時器id;Air780EPM可以設置多個定時器,不同的定時器ID代表不同的定時器進程;一般來說,定時器進程不要超過6個。相應的,定時器ID的取值范圍是0-5; 其中,0和1的最大休眠時長是2.5小時,2到5的最大休眠時長是740小時。
timeout:int型(定時時長,單位毫秒)。
2)返回值:
3)例子:
3.2 pm.shutdown()
用于關機。
1)參數:無
2)返回值:nil(無返回值)
3)例子:
3.3 pm.reboot()
用于重啟。
1)參數:無
2)返回值:nil(無返回值)
3)例子:
四、IO電平介紹及相關設置函數
pm.ioVol(id, val)
IO高電平電壓控制函數
Air780EPM的IO高電平,出廠默認3.0V:
可以通過將Air780EPM的PIN100:IO_Volt_Set拉低到GND改變IO高電平,開機即設置為1.8V;
也可以通過此函數,將IO高電平設置為典型值1.8V/2.8V/3.0V/3.3V。注意!設置IO高電平,實際設置的是Air780EPM的PIN24:VDD_EXT的電壓,IO高電平與VDD_EXT電壓保持一致。
任何情況下,無論Air780EPM的PIN100:IO_Volt_Set是懸空還是下拉到GND,IO高電平都是以本函數的設置為優先。
1)參數:
id:int型(電平id,目前只有pm.IOVOL_ALL_GPIO);
val:int型(電平值,單位毫伏)。
2)返回值:
返回值類型:boolean(處理結果true成功,false失敗)。
3)例子:
五、相關補充說明
5.1 關于PSM+模式的補充說明
PSM+模式下,模組處于離線狀態,無法接收服務器下發信息;退出PSM+模式后,Air780EPM大概在3秒內可以駐網成功。
5.2 關于低功耗模式的補充說明
給出的低功耗模式下的數據,是在特定條件下的測試數據,比如,DRX=2.56秒。
實際環境下,信號質量、DRX間隔等都是由模組所處環境的基站決定,模組并不能自行設置。因此,功耗表現可能與測試數據有差異。
一般情況下,低功耗模式下,模組的功耗在1mA左右都可以被認為是正常表現。
5.3 關于WAKEUP中斷喚醒的補充說明
模組在PSM+模式下有四種常見的喚醒方式:
定時器喚醒;
開機鍵PWRKEY;
串口UART1接收數據;
WAKEUP中斷;
其中,WAKEUP中斷的使用方式會在API庫GPIO中進行介紹,開機鍵PWRKEY本質上也是WAKEUP。
比如:WAKEUP0,則用gpio.WAKEUP0;pwrkey,則用常量 gpio.PWR_KEY。
5.4 關于PWRKEY開機和Reset復位的補充說明
Air780EPM默認開啟了PWRKEY開機防抖;因為開啟了PWRKEY開機防抖,所以Reset復位功能就轉變成了關機,不能復位。
所以,Air780EPM的Reset是關機,不是復位!
Air780EPM最新開發資料詳見:
www.air780epm.cn
今天的內容就分享到這里了~
審核編輯 黃宇
-
電源管理
+關注
關注
116文章
6264瀏覽量
145536 -
API
+關注
關注
2文章
1545瀏覽量
63173 -
低功耗
+關注
關注
10文章
2549瀏覽量
104242 -
Open
+關注
關注
0文章
21瀏覽量
11158
發布評論請先 登錄
相關推薦
開發寶典:4路低功耗ADC接口,Air780EPM二次開發必看!

低功耗處理器的優勢分析
【瑞薩RA2L1入門學習】05、待機模式按鍵外部中斷喚醒 低功耗測試
擁有低功耗低成本的Open開發應用,開發人員必看!

要Open開發,又要低功耗低成本?建議等新方案

評論