微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > ZigBee 电源管理

ZigBee 电源管理

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

我在调试过程中发现 我的设备状态是 DEV_END_DEVICE  并且 ZDO_Config_Node_Descriptor.CapabilityFlags = 0 并且也能男进入void halSleep( uint16 osal_timeout )函数 但是就是不能进入睡眠  通过跟踪发现  MAC_PwrOffReq(MAC_PWR_SLEEP_DEEP) 返回值等于 MAC_DENIED; 请问这个问题如何解决原因是什么,多谢。

既然你能够进入halSleep这个函数,那么就说明,进入低功耗的基本配置没有问题。

首先看看进入halSleep函数的参数,它决定了进入睡眠的深度,看halPwrMgtMode值是不是HAL_SLEEP_DEEP。

我在调试它的低功耗时,也遇到这样的问题,可能MAC层还有待发送的射频数据,你再多跑几次,肯定是能够执行成功的。

如果一致执行失败,我提供的建议是,手动关闭MAC层接收机。MAC_PwrOffReq底层会调用macSleep函数来判断是否能够进入低功耗状态。

手动关闭MAC层接收机的方法:

#define MAC_RECEIVE_ON 1
#define MAC_RECEIVE_OFF 0
uint8 value = MAC_RECEIVE_OFF;
MAC_MlmeSetReq(MAC_RX_ON_WHEN_IDLE,&value);

希望能够帮助到你。

谢谢,我也遇到这样的问题,在进入休眠判断设备状态后,强制关闭MAC层,解决了。

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

网站地图

Top