微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 请问如何能够简单地看出CC2541是否进入了PM2模式?

请问如何能够简单地看出CC2541是否进入了PM2模式?

时间:10-02 整理:3721RD 点击:

我在simpleBLEPeripheral中使能了POWER_SAVING,有什么简单的方法能够看CC2541是否进入了PM2状态? 

因为我有个周期性任务,所以空闲时BLE应该不会进入PM3状态,而会进入PM2状态。

我用手机上的LightBlue观察,是察觉不出打开POWER_SAVING还是关闭了POWER_SAVING。

有什么方法能够看出CC2541是否进入了PM2模式吗?

求大神指教!谢谢!

最简单的可以通过量功耗来判断

halPwrMgtMode = (timeout == 0) ? HAL_SLEEP_DEEP : HAL_SLEEP_TIMER;

在这句话的后面,加一个判断语句,如果是PM2,则闪灯2下;如果是PM3,则闪灯3下;

然后用示波器观察

谢谢你的回答。

但是我试了一下,在halPwrMgtMode = (timeout == 0) ? HAL_SLEEP_DEEP : HAL_SLEEP_TIMER;

这句话设了断点,define了POWER_SAVING,但是根本跑不到这个断点啊。

你好,谢谢你的回答。

可是测量功耗比较麻烦,有什么通过调试程序能看到是否进入了PM2模式的方法吗?

在连接调试器的情况下 应该是无法进入Sleep模式的

谢谢!

我现在测试时拿掉仿真器,用电池供电。

我在  halPwrMgtMode = (timeout == 0) ? HAL_SLEEP_DEEP : HAL_SLEEP_TIMER;

这句后面加了一句点亮灯,点亮后就不会灭。

接上电池跑,灯没有亮!用手机与板子蓝牙通信正常。说明根本没有执行到这一句。

为了确认,我在点灯后面又加了一句while(1);

仍然,灯没有亮,而蓝牙通信正常。说明确实没有执行到这一句。

我确认程序是执行了main函数里的

#if defined ( POWER_SAVING )
osal_pwrmgr_device( PWRMGR_BATTERY );
#endif

这句的。

求大神指导,为何没能执行halPwrMgtMode = (timeout == 0) ? HAL_SLEEP_DEEP : HAL_SLEEP_TIMER;?

万分感谢!

请问您蓝牙的操作是什么样的?

通常只是保持连接,但是没有数据传输,没有其他的event开着,在两个connection interval之间就是PM2

谢谢回复!

我里面有一个周期性任务,每隔一秒钟测量一下温度,然后notify给主机。其他就没有了。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top