请教低功耗管理
-
使用本周的SDK
使用 example/dev1.0/ble_multi_role 工程
编译使用 GNU ARM GCC 6.2为了测试低功耗,把如下函数做了屏蔽,也就是软件不做任何事
void user_entry_after_ble_init(void)
{
co_printf("BLE Multi Role\r\n");co_printf("POWER SAMVE EN:%d\r\n", __jump_table.system_option&SYSTEM_OPTION_SLEEP_ENABLE); // User task initialization, for buttons. //user_task_init(); // Application layer initialization, can included bond manager init, // advertising parameters init, scanning parameter init, GATT service adding, etc. //multi_role_init();
}
硬件板子采用电池供电,拔掉 3V3_LDO的跳线,因为我还不知道如何关闭这个LDO,软件默认是打开的
运行结果:
1)系统重启后能进入低功耗,电流为 7uA左右
2)过上20s左右,系统会退出低功耗,电流为 3mA左右,再也进入不了低功耗问题:为什么会出现2)
测试2:如果让BLE进入广播模式,系统无法进入低功耗模式,使用原始的广播配置。
问题:为什么这个时候无法进入低功耗?
-
此回复已被删除!
-
问题1:请确认下,在user_entry_after_sleep_imp中有没有调用system_sleep_disable;
问题2:如果你用multi_role工程测试低功耗的话,请确认下scan有没有打开,你可以把mr_central_init屏蔽掉,只保留slave,再测试低功耗
-
上述已经解决,是system_sleep_disable引起的,注释掉可以到7个uA
新问题:系统如何进入POWER OFF mode呢?
-
软关机配置可做如下处理
deepsleep之后可用按键唤醒复位
-
按照描述,直接增加上述代码,没有测试成功,我要等些时间再测试,当前调试其他模块