130-SLM130(NB-IOT)C-SDK(OpenCPU)学习开发-低功耗(PSM,DRX,eDRX)

先看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);//延时

}

130-SLM130(NB-IOT)C-SDK(OpenCPU)学习开发-低功耗(PSM,DRX,eDRX)

3,编译slpman_example, 并下载到开发板

130-SLM130(NB-IOT)C-SDK(OpenCPU)学习开发-低功耗(PSM,DRX,eDRX)

130-SLM130(NB-IOT)C-SDK(OpenCPU)学习开发-低功耗(PSM,DRX,eDRX)

4,使用万用表可以看到功耗

130-SLM130(NB-IOT)C-SDK(OpenCPU)学习开发-低功耗(PSM,DRX,eDRX)

5,关于TAU时间和Active时间设置

这个两个时间可以在程序上设置,也可以在NB卡上设置(需要运营商设置)

在程序上设置

让运营商在NB卡后台设置

130-SLM130(NB-IOT)C-SDK(OpenCPU)学习开发-低功耗(PSM,DRX,eDRX)

注意: EC616在注册上网络以后会获取NB卡后台设置的TAU时间和Active时间.

所以只要是后台设置了,那么程序里面会遵循后台的.

通过上面的设置,把程序下载到开发板,等待大概30S左右,模组进入低功耗.

6,关于PSM模式等级

130-SLM130(NB-IOT)C-SDK(OpenCPU)学习开发-低功耗(PSM,DRX,eDRX)

130-SLM130(NB-IOT)C-SDK(OpenCPU)学习开发-低功耗(PSM,DRX,eDRX)

130-SLM130(NB-IOT)C-SDK(OpenCPU)学习开发-低功耗(PSM,DRX,eDRX)

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

130-SLM130(NB-IOT)C-SDK(OpenCPU)学习开发-低功耗(PSM,DRX,eDRX)

Original: https://www.cnblogs.com/yangfengwu/p/16506056.html
Author: 杨奉武
Title: 130-SLM130(NB-IOT)C-SDK(OpenCPU)学习开发-低功耗(PSM,DRX,eDRX)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/554210/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球