Power Manager cli命令
重要
支持平台power manager(normal sleep、low voltage 、deepsleep)
pm :平台power manager(normal sleep、low voltage 、deepsleep)
命令
pm [sleep_mode] [wake_source] [vote1] [vote2] [vote3] [param1] [param2] [param3]
参数
sleep_mode:代表休眠模式(参数范围:0-3):
0:normal sleep;
1:low voltage;
2:deep sleep;3:none
wake_source:表示唤醒源(参数范围:0-5):
0:GPIO唤醒;
1:RTC唤醒;
2:WIFI或者BT唤醒;
3:USB唤醒(BK72xx不支持,其他项目支持);
4:touch唤醒;
5:none
Vote1: vote2: vote3: 代表投的票:
8:(BT)
9(WIFI)
12(APP)
param1:根据唤醒源有不同含义:
GPIO:gpio的id号
RTC:唤醒时间
WIFI或者BT:
touch:touch的channel号
param2:根据唤醒源有不同含义:
GPIO:代表唤醒方式:
0:低电平唤醒
1:高电平唤醒
2:上升沿唤醒
3:下降沿唤醒
RTC和touch:唤醒时不用该参数,默认是0
param3:BT休眠时间,该参数对于发送命令是兼容接口,建议设置的时间1000000000(100s),设置这么大的值为了使用BT模块内部模块设置的时间为准
使用场景
示例1:使用GPIO作为唤醒源来唤醒deepsleep设备:
1)开机启动5s之后,(开机之后,BT、WIFI、CPU做初始化);
2)输入命令:
A. pm 2 0 8 9 12 9 0 1000000000 让系统进入deepsleep,使用gpio进行唤醒,9表示gpio的id,0代表低电平唤醒;
B. 如果希望某个GPIO从高电平唤醒,则测试前把该GPIO初始状态接为低电平,唤醒时接高电平;
C. 如果希望某个GPIO从低电平唤醒,则测试前把该GPIO初始状态接为高电平,唤醒时接低电平;
D. 如果希望某个GPIO从上升沿唤醒,则测试前把该GPIO初始状态接为低电平,唤醒时接高电平;
E. 如果希望某个GPIO从下降沿唤醒,则测试前不要把该GPIO初始状态接为高电平,唤醒时接低电平;
3)在deepsleep过程中,通过测量VDDDIG的电压会变成0;唤醒之后,VDDDIG的电压会变成1.1v;
4)同时通过使用精密电源来测量整个deep sleep到唤醒过程的功耗。
结果:
1)在deepsleep过程中,通过测量VDDDIG的电压会变成0;唤醒之后,VDDDIG的电压会变成1.1v;
2)同时通过使用精密电源来测量整个deepsleep到唤醒过程的功耗;
3)deepsleep之后的功耗符合预期为15ua-20ua左右。
示例2:使用RTC设置唤醒时间来唤醒deepsleep设备:
1)开机启动5s之后(开机之后,BT、WIFI、CPU做初始化);
2)输入命令: pm 2 1 8 9 12 3000 0 1000000000(让系统进入deepsleep,使用RTC进行唤醒,3000表示设置的唤醒时间,可自行修改,单位为ms);
3)系统到达设定的的唤醒时间后,系统会被唤醒;
4)在deepsleep过程中,通过测量VDDDIG的电压会变成0;唤醒之后,VDDDIG的电压会变成1.1v;
5)同时通过使用精密电源来测量整个deepsleep到唤醒过程的功耗。
结果:
1)在deepsleep过程中,通过测量VDDDIG的电压会变成0;唤醒之后,VDDDIG的电压会变成1.1v;
2)同时通过使用精密电源来测量整个deepsleep到唤醒过程的功耗;
3)deepsleep之后的功耗符合预期为15ua-20ua左右。
示例3:使用触摸(touch)作为唤醒源来唤醒deepsleep设备:
1)开机启动5s之后(开机之后,BT、WIFI、CPU做初始化);
2)输入以下两条命令:
A. touch_single_channel_calib_mode_test 2 1(数字2代表touch的channel号,现在测试版本默认是2,channnel根据实际使用确定;数字1表示touch channel设置的强度,取值范围0~3);
B. pm 2 4 8 9 12 2 0 1000000000(让系统进入deepsleep,使用touch进行唤醒);
C. 手动触摸touch,可以把系统从deepsleep状态中唤醒;
3)在deepsleep过程中,通过测量VDDDIG的电压会变成0;唤醒之后,VDDDIG的电压会变成1.1v;
4)同时通过使用精密电源来测量整个deepsleep到唤醒过程的功耗。
结果:
1)在deepsleep过程中,通过测量VDDDIG的电压会变成0;唤醒(使用touch)之后,VDDDIG的电压会变成1.1v;
2)同时通过使用精密电源来测量整个deepsleep到唤醒过程的功耗;
3)deepsleep之后的功耗符合预期为15ua-20ua左右。
示例4:使用GPIO来唤醒低压设备:
1)开机启动5s之后,(开机之后,BT、WIFI、CPU做初始化);
2)输入以下命令:
A. pm 1 0 8 9 12 9 2 1000000000(让系统进入low voltage,使用gpio进行唤醒,9表示gpio的id,2代表上升沿唤醒);
B. 如果希望某个GPIO从高电平唤醒,则测试前把该GPIO初始状态接为低电平,唤醒时接高电平;
C. 如果希望某个GPIO从低电平唤醒,则测试前把该GPIO初始状态接为高电平,唤醒时接低电平;
D. 如果希望某个GPIO从上升沿唤醒,则测试前把该GPIO初始状态接为低电平,唤醒时接高电平;
E. 如果希望某个GPIO从下降沿唤醒,则测试前不要把该GPIO初始状态接为高电平,唤醒时接低电平;
3)在low voltage过程中,通过测量VDDDIG的电压会变成设定的电压值,(例如0.9或1.0v);唤醒之后,VDDDIG的电压会变成1.1v;
4)同时通过使用精密电源来测量整个low voltage到唤醒过程的功耗。
结果:
1)在low voltage过程中,通过测量VDDDIG的电压会变成设定的电压值,(例如0.9或1.0v);唤醒之后,VDDDIG的电压会变成1.1v;
2)同时通过使用精密电源来测量整个low voltage到唤醒过程的功耗。
为了最优的功耗,BT使用完毕后,请关闭,关闭命令:AT+BLEPOWER=0!!!
示例5:使用RTC作为唤醒源来唤醒低压设备:
1)开机启动5s之后,(开机之后,BT、WIFI、CPU做初始化);
2)输入以下命令:
A. WIFI没有业务的时候,默认进入sleep状态;
B. 蓝牙默认进入sleep(为了最优的功耗,BT使用完毕后,请关闭,关闭命令:AT+BLEPOWER=0);
C. pm 1 1 0 0 12 10000 0 1(让系统进入low voltage,使用RTC进行唤醒,10000表示设置的唤醒时间,可自行修改,单位为ms);
3)系统到了指定的唤醒时间后,系统会被从低压状态下唤醒
4)在low voltage过程中,通过测量VDDDIG的电压会变成设定的电压值,(例如0.6或0.9v);唤醒之后,VDDDIG的电压会变成1.1v;
5)同时通过使用精密电源来测量整个low voltage到唤醒过程的功耗。
结果:
1)在low voltage过程中,通过测量VDDDIG的电压会变成设定的电压值,(例如0.6或0.9v);唤醒之后,VDDDIG的电压会变成1.1v;
2)同时通过使用精密电源来测量整个low voltage到唤醒过程的功耗;
示例6:使用RTC作为唤醒源来唤醒低压设备:
1)开机启动5s之后,(开机之后,BT、WIFI、CPU做初始化);
2)输入以下命令:
A. touch_single_channel_calib_mode_test 2 1(数字2代表touch的channel号,现在测试版本默认是2,channnel根据实际使用确定;数字1表示touch channel设置的强度,取值范围0~3)
B. pm 1 4 8 9 12 2 0 1000000000(让系统进入low voltage,使用touch进行唤醒,2表示touch的channel号)
C. 手动触摸touch,可以把系统从low voltage状态中唤醒;
3)在low voltage过程中,通过测量VDDDIG的电压会变成设定的电压值,(例如0.6或0.9v);唤醒之后,VDDDIG的电压会变成1.1v;
4)同时通过使用精密电源来测量整个low voltage到唤醒过程的功耗。
结果:
1)在low voltage过程中,通过测量VDDDIG的电压会变成设定的电压值,(例如0.9或1.0v);唤醒之后,VDDDIG的电压会变成1.1v;
2)同时通过使用精密电源来测量整个low voltage到唤醒过程的功耗;
为了最优的功耗,BT使用完毕后,请关闭,关闭命令:AT+BLEPOWER=0!!!
响应
CMDRSP:OK
CMDRSP:ERROR
备注
本命令在CONFIG_MCU_PS开启下生效!
pm_vote :WIFI保活来唤醒低压设备
命令
pm_vote [sleep_mode] [pm_vote] [pm_vote_value] [pm_sleep_time]
参数
sleep_mode:代表休眠模式(参数范围:0-3): 0:normal sleep; 1:low voltage; 2:deep sleep;3:none
pm_vote:代表投的票(取值范围8(BT),9(WIFI),12(APP))
pm_vote_value:投票值(取值范围0:MODULE_STATE_ON 1:MODULE_STATE_OFF)
pm_sleep_time:BT休眠时间,该参数对于发送命令是兼容接口,建议设置的时间1000000000(100s),设置这么大的值为了使用BT模块内部模块设置的时间为准
使用场景
示例1:使用RTC作为唤醒源来唤醒低压设备:
1)开机启动5s之后,(开机之后,BT、WIFI、CPU做初始化);
2)输入以下四条命令:
A. set_interval 10 (该命令是设置DTIM10)(备注:配置其他值:DTIM1命令:set_interval 1; DTIM3命令:set_interval 3)
B. sta 123(路由器名称) 12345678(路由器密码)(连接路由器,WIFI会进入sleep wakeup流程)
C. 蓝牙默认进入sleep(为了最优的功耗,BT使用完毕后,请关闭,关闭命令:AT+BLEPOWER=0)
D. pm_vote 1 12 1 0(投app票)
3)在low voltage过程中,通过测量VDDDIG的电压会变成设定的电压值,(例如0.6或0.9v);唤醒之后,VDDDIG的电压会变成1.1v;
4)同时通过使用精密电源来测量整个low voltage到唤醒过程的功耗。
响应
CMDRSP:OK
CMDRSP:ERROR
备注
本命令在CONFIG_MCU_PS开启下生效!