微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 联网成功的终端,脱离网络后,从新启动后电流在8mA左右无法,功耗无法降低。

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

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

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分钟后再次开启网络申请。

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

网站地图

Top