?合宙4G-Cat.1模組支持三種功耗模式:
- 常規模式
- 低功耗模式
- PSM+模式
用戶可以根據不同的應用場景,按需選擇不同的合宙4G-Cat.1模組功耗模式,以及三種功耗模式之間的相互轉換。
合宙4G-Cat.1模組優異的低功耗表現,既有來自硬件設計的加持,也有軟件協議算法的幫助。除實驗室數據外, 合宙更關注實網環境下的功耗表現, 呈現給用戶的效果更多以實網在線表現為準。
?
?
很多客戶的實際應用場景,是不需要和服務器保持長連接的,一天甚至一周上傳一兩次數據,就能滿足實際的項目需求了。
如果用合宙推薦的第二種低功耗模式,有些大材小用,針對這種情況——可以使用PSM+模式。
今天,帶大家過過PSM+模式下——LuatOS開發代碼。
一、主要硬件準備
這里大致說下需要準備的硬件條件:
- 合宙Air780E全IO開發板一塊:
測試前需要將開發板上端USB下方的C2處ESD吹掉,要不會有大約20微安的漏電流。 - 支持數據傳輸的USB線一根;
- 一個可調電源:
可調電源最好是能精確的捕捉到μA電流的電源,本次筆者使用的是合宙自研的Air9000P手持可調電源。
?
二、PSM+超低功耗示例源碼下載
本文示例中用到的代碼,可以在這里gitee.com/openLuat/LuatOS-Air780E/tree/master/demo/pm
需要用的代碼在“780E_Lowpower”文件夾目錄下:
?
如果您手上是其他模組,如Air780EP或者Air780EPS,則可以查看Air780EP/Air780EPS對應倉庫下的 pm文件夾 。
三、PSM+超低功耗示例源碼
接下來,我們開始進行PSM+超低功耗示例源碼的大致講解。
3.1 main.lua
LuatOS中,代碼的起始位置是從main.lua第一行開始的,本文使用的是 PSM+模式 ,所以打開第12行的注釋,屏蔽第11行的代碼。
?
3.2 psm_plus.lua
1)設置服務器
進入psm_plus.lua可以看到:
?
在這里,改成用戶自己使用的服務器的IP/域名以及端口號;如果僅作測試,也可以使用合宙提供的測試服務器。
進入后選擇打開TCP/UDP,根據用戶服務器類型自行選擇。
?
打開后,如下圖紅框所示位置即是IP和端口號:
?
local period = 36060*1000 --3小時喚醒一次
這一句是喚醒時間的設置,時間設置喚醒的時間單位為ms。所以如果你有更長時間的喚醒需求,如一天喚醒一次,可以改動最前面的3為24。
特別提醒:
這個TCP服務器僅能當作測試來用,刷新一下網頁或者你電腦網絡有波動斷網一下,就會斷開,重新打開TCP端口就會變。
2)獲取喚醒原因
?
上面兩句是獲取了一下當前喚醒的原因,是正常開機,還是設置的定時器啟動,或是串口/AGPIO喚醒。
3)testTask函數
直接拉到psm_plus.lua最后一行;其實上面所有的函數都是基于最后一行的task跑的:
?
本句的意思是啟動一個task,在task里運行第14行的testTask函數,并傳入了d1Name這個變量,傳入了netCB這個回調函數,以及給testTask傳入了server_ip和server_port這兩個參數。
接下來,我們看看testTask這個函數的前一小段:
?
先判斷了一下當前喚醒是什么原因喚醒的,并將對應原因賦值給了一個叫做txData的變量,并且判斷了下是上電開機還是休眠喚醒。
如果是休眠喚醒,則主動退出飛行模式(因為模組在休眠的時候會進入飛行模式,減小因為可能的網絡波動引起的功耗增大等異常)。
下面這一段就是與TCP服務器鏈接的全過程,如果鏈接失敗會重連3次:
?
?
接下來這段配置了uart1的波特率為9600,方便外部串口設備從串口喚醒模組(注:9600狀態下喚醒模組比較方便,如果是115200或其他波特率,可能需要發送多次數據才能走串口喚醒模組)。
如果不影響產品功能,需要將所有AGPIO在休眠狀態下的高電平輸出關閉,可以進一步節省耗電,比如本示例中對GPIO32的操作就是這一原因。
關于AGPIO和GPIO對應編號,如下圖所示:
?
?
最后這段代碼,啟動了深度休眠也就是PSM+模式的定時器:
?
后面的 period參數, 就是腳本最上面我們設置的定時休眠喚醒時間;后面進入飛行模式,是避免因為基站網絡波動導致的異常功耗;然后,才真正進入了PSM+模式。如果進入不成功,15秒后會重啟模組。
- 如果是串口喚醒,那么服務器會收到”uart1 wakeup“的數據;
- 如果是GPIO喚醒,那么服務器會收到"pad wakeup";
- 如果是定時器喚醒,那么服務器會收到"timer wakeup";
- 如果當前是上電開機去鏈接服務器,那么服務器會收到"normal wakeup"。
在沒有數據發送的時候,模組實測待機功耗為下圖的3μA:
?
今天的內容就分享到這里啦,你學會了嗎?
審核編輯 黃宇
-
4G
+關注
關注
15文章
5530瀏覽量
119522 -
超低功耗
+關注
關注
5文章
182瀏覽量
18469 -
模組
+關注
關注
6文章
1515瀏覽量
30604 -
PSM
+關注
關注
1文章
43瀏覽量
13480
發布評論請先 登錄
相關推薦
評論