CC2530功耗问题
CC2530终端节点在定义了POWER_SAVING后,当节点加入网络系统才可以进入睡眠状态。如果此时断开了网络,系统还是可以进入睡眠,功耗仍然很低,只有当收索网络时才电流才会急剧升高(重新加入网络状态)。考虑到开机加网络时功耗居高不降,所以我觉得如果在节点开机的时候节点就能进入睡眠状态,只有当收索网络时电流才增高,这样相比起来会节能很多。问题在于有没有方法让节点一上电就跟重新加入网络的状态一样呢?(本人初学者,协议栈不是很懂,望大神指教)
你是希望节点一上电就加入原有网络,省去搜索网络这一步,以此降低功耗吗?
不是,TI官方的协议栈不是有一个进入睡眠的标志么,系统初始化后连网时是不能进入睡眠模式的,只有连上网时会调用osal_pwrmgr_device()让系统能够进入睡眠,现在我想让体统初始化的时候就调用osal_pwrmgr_device函数,这样做会使得系统一上电就能进入睡眠,只有在扫描网络的时候电流才上升。这样做连网的时候可能一下子连不上,但有没有其它影响我不是很清楚,望指教!我的项目主要是要使收索网络时功耗尽可能的底,通信距离十几米就够了。
你可以用
/*
* ZDApp_StopJoiningCycle
* - Stops the joining or rejoining process of a device.
*
* returns TRUE if joining stopped, FALSE if joining or rejoining
*/
extern uint8 ZDApp_StopJoiningCycle( void );
我也遇到类似的问题,终端联网后可以正常休眠,功耗很低,但关闭协调器后,终端一直处于搜索网络状态,不能进入休眠(我感觉是没有休眠),电流一直在20-30ma。
刚刚学习zigbee,不清楚是什么问题,是否可以让终端离网后间隔一段时间搜索一次网络,其它时间休眠。
新手,望指教。
@william
当失去父节点以后,节点会先发出orphan然后会以rejoin的方式去加网络,因为对于节点来说加入网是首要的任务。
如果不想让节点不停的去搜索网络的话,可以extern uint8 ZDApp_StopJoiningCycle( void );,把搜索网络关掉,或者开一个定期把搜网的周期拉大
请问您做出来了么?
@VV
非常感谢您的解答!
我目前采取的是搜索网络失败后调用ZDApp_StopJoiningCycle( void )停止搜索,然后强制休眠,休眠醒来后重新搜索,如此循环,直到有网络加入。
目前测试下来可以减少搜索网络带来的功耗,不知道这样是否对系统造成影响,或者对长时间运行带来不稳定性。
