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.

联网成功的终端,脱离网络后,从新启动后电流在8mA左右无法,功耗无法降低。

Other Parts Discussed in Thread: Z-STACK, CC2530

2.5.1a协议栈,在SampleApp上进行试验,开启

POWER_SAVING
NV_RESTORE
NV_INIT

加入一次网络后,关闭协调器,重启终端设备,设备功耗始终很高,各项低功耗设置都与

AN079 -- Measuring Power Consumption of CC2530 with Z-Stack文档一致。

我使用了

if(initFailCounter++ >= NWK_INIT_fAIL_MAX )//连续链接失败6次进入1分钟休眠6timer
{

osal_start_timerEx( ZDAppTaskID, ZDO_NETWORK_INIT, 60000 );

devState = DEV_INIT;
return(events ^ ZDO_NETWORK_INIT);
}这种方法,但是问题没并有根本解决。

我在论坛中查到过类似的问题,但是没有发现什么好的解决办法,再次向各位大神请教。

  • 我也測試過加入函數ZDApp_StopJoiningCycle();加入定時週期1分鐘開啟三秒,然後使用該函數關閉加入網絡。但實際並沒有降低功耗,電流依然是8mA左右。

  • 功耗高的原因是设备一直处于搜网状态。

    在实际产品中,我们建议客户在断网以后,重新搜网的时候如果一段时间没有搜到,就可以暂停搜网,休眠一段时间以后再搜。

    你可以下载Z-Satck Home 1.2.2a协议栈,里面已经有这个功能,具体你可以搜索


    if( events & ZDO_REJOIN_BACKOFF )
    {
    if( devState == DEV_NWK_BACKOFF )
    {
    ZDApp_ChangeState(DEV_NWK_DISC);
    // Restart scan for rejoin
    ZDApp_StartJoiningCycle();
    osal_start_timerEx( ZDAppTaskID, ZDO_REJOIN_BACKOFF, zgDefaultRejoinScan );
    }
    else
    {
    // Rejoin backoff, silent period
    ZDApp_ChangeState(DEV_NWK_BACKOFF);
    ZDApp_StopJoiningCycle();
    osal_start_timerEx( ZDAppTaskID, ZDO_REJOIN_BACKOFF, zgDefaultRejoinBackoff );
    }

    return ( events ^ ZDO_REJOIN_BACKOFF);
    }

  • 谢谢大V,我用的是2.3.0,正准备改成最新版本。

    我现在的方法是在

    if ( events & ZDO_NETWORK_INIT )
    这段之后加入次数判断,判断后进行执行

    initFailCounter = 0;
    devState = DEV_INIT;
    ZDApp_StopJoiningCycle();

    然后计时1分钟后再次开启网络申请。