CC2541处于广播模式, 进入低功耗模式后, 功耗为10uA, 通过按键唤醒后, 功耗突然变大为150uA, 请问是什么原因呢?
各位大牛好! 小妹请教一个问题.
我的项目是基于Keyfob改过来的. 现在在测试低功耗这块. 发现下面一个问题, 重现步骤如下:
1. 打开Power_Saving,
#define DEFAULT_ADVERTISING_INTERVAL 3200 //160, 编译下载烧写.
2. 模块启动, 进入广播状态, 低功耗后, 功耗在10uA.
3. 通过按键P0.1拉低, 在拉低后没有任何动作. 功耗变成了150uA! 请问这个是什么原因?
static void keyfobapp_HandleKeys( uint8 shift, uint8 keys )
{
(void)shift; // Intentionally unreferenced parameter
DBG("min: %d, max: %d\r\n", GAP_GetParamValue(TGAP_GEN_DISC_ADV_INT_MIN),
GAP_GetParamValue(TGAP_GEN_DISC_ADV_INT_MAX));
//SK_SetParameter( SK_KEY_ATTR, sizeof ( uint8 ), &SK_Keys );
}
调试发现:
1. 广播好像是通过osal_start_timerEx()来调用的. 正常时2000ms调用一次, 等按键触发后, 就变成100ms调用一次.
请问这个广播机制是怎么样调用Timer的? 是内部在调用吗? 这个调用OSAL_Timer, 不会影响进入PW3吗?
谢谢!
低功耗时32M晶振不工作,中断唤醒后晶振工作了。功耗就变大了。
遇到同样的问题,cc2541进去后处于PM3,电流测量为0.4uA左右,按一下P0.0的Button后,在HandleKeys()函数中什么也没做,直接返回后,电流就增大到80uA左右,再也不会减少到PM3的电流。
请问你说的“中断唤醒32M晶振工作”,可是如果没有其他任务,cc2541应该自动进入PM3,晶振应该停止工作啊?
能不能帮忙解答一下?谢谢了。