微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > CC2530休眠模式高频被激活问题

CC2530休眠模式高频被激活问题

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

osal_run_system是循环执行,一旦没有了task events 就会进入休眠:osal_pwrmgr_powerconserve();,但是很快又离开休眠模式,osal_pwrmgr_powerconserve();中有段这个代码:

next = osal_next_timeout();

OSAL_SET_CPU_INTO_SLEEP( next );

现在的问题是,osal_pwrmgr_powerconserve();是在OSAL主循环中的,看到的现象就是当人工没有任何操作后,遥控器(开发板)不断地进入休眠并离开休眠,频率很高(开发板的led灯闪烁)。那么问题来了:

1. 假设,感觉是某些系统的事件不断被触发去做事情,导致不断离开休眠又进入休眠。而这个事情我又找不到在哪,如果假设成立怎么解决?

2. 现在想要让它稳定的进入休眠模式(不可以高频被触发激活),即通过一个自定的定时来让它进入休眠。怎么做?

3. 关于2的问题我的理解: 可不可以把主循环中的osal_pwrmgr_powerconserve();移到zll_sampleremote.c或者zll_initiator.c中,自定义一个event,定个时触发休眠模式。这么做可以吗?

我好像找到问题了http://www.deyisupport.com/question_answer/wireless_connectivity/zigbee/f/104/t/75525.aspx

v v说的,我这个休眠高频被唤醒是不是MAC层会有一个任务?

因为我在进行ZDApp_StopJoiningCycle( void )让节点停止搜寻网络后,遥控器就能稳定进入休眠了。

还有osal_pwrmgr_powerconserve();好像不能乱动,必须放在osal系统循环中调用。

现在应该就是休眠时间的问题,太短了,想把那些没用的任务去掉,求大神解答,在线等

不建议去修改休眠相关的机制。 

休眠时间短,肯定是协议栈中还有短时间的事件在发生。

是否有具体测过,唤醒的周期是多少

另外节点在入网以后,poll rate是多少?

首先谢谢vv的回答。

1. 我在f8wConfig.cfg中,按照之前别人的例子这么配置:

-DRFD_RCVC_ALWAYS_ON=FALSE

/* The number of milliseconds to wait between data request polls to the coordinator. */
-DPOLL_RATE=0

所以你说的poll rate在这里调成0了,原来是1000。

2. 然后我在预编译里:

   是不是要加ISR_KEYINTERRUPT?

3. 还有我在hal_sleep.c里:

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

改成 halPwrMgtMode = HAL_SLEEP_DEEP ; 可不可以让它每次强制进入深度休眠?

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

网站地图

Top