<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/LearnEC616_SLM130" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
先看PSM (Power Save Mode)节能模式
1,NB的节能模式是有两个时间参数控制 TAU时间 和 active时间
PSM模式是模组断开了网络连接,只能人为或者程序上唤醒模组.
在模组进入PSM模式以后, TAU时间是控制NB模组多长时间以后唤醒联网,
NB模组在空闲(不进行网络通信,一般指所有任务都在挂起)状态下,超过active时间模组进入PSM模式.
2,打开slpman_example 例程(按照下面的程序修改)
//设置最大睡眠深度 HIB
slpManSetPmuSleepMode(true, SLP_HIB_STATE, false);
appSetCFUN(0);//关闭网络通信
while(1){
vTaskDelay(60000 / portTICK_PERIOD_MS);//延时
}
3,编译slpman_example, 并下载到开发板
4,使用万用表可以看到功耗
5,关于TAU时间和Active时间设置
这个两个时间可以在程序上设置,也可以在NB卡上设置(需要运营商设置)
在程序上设置
让运营商在NB卡后台设置
注意: EC616在注册上网络以后会获取NB卡后台设置的TAU时间和Active时间.
所以只要是后台设置了,那么程序里面会遵循后台的.
通过上面的设置,把程序下载到开发板,等待大概30S左右,模组进入低功耗.
6,关于PSM模式等级
ACTIVT 和 IDEL 就是模组正常工作
SLEEP1 模式下模组就进入了休眠了(256KB SRAM, 16KB Ret SRAM, 断电保持IO还在工作(Ret IO) )
SLEEP2 模式下模组就进入了休眠了(16KB Ret SRAM, 断电保持IO还在工作(Ret IO) )
HIB 模式下模组就进入了休眠了(断电保持IO还在工作(Ret IO) )
7,在执行睡眠模式的时候可以设置睡眠前和唤醒后回调函数
设置回调函数以后功耗会增加, 大概是5.9uA