This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2530功耗问题

Other Parts Discussed in Thread: 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 )停止搜索,然后强制休眠,休眠醒来后重新搜索,如此循环,直到有网络加入。

    目前测试下来可以减少搜索网络带来的功耗,不知道这样是否对系统造成影响,或者对长时间运行带来不稳定性。