TI论坛
直播中

潘晶燕

8年用户 174经验值
私信 关注
[问答]

如何降低ZC发现网络的频次以降低功耗?

ZED 和ZC,在组网正常的情况下,ZED可以进入低功耗模式,电流在uA级别。CC2530芯片
当关闭ZC后,ZED会持续的进行网络发现,无法进入低功耗模式。电流达28mA;
求教ti工程师,如何降低ZC发现网络的频次以降低功耗?或者有其他什么方法来降低功耗?

回帖(6)

庄当甜

2020-8-7 07:13:18
当失去父节点以后,节点会先发出orphan然后会以rejoin的方式去加网络,因为对于节点来说加入网是首要的任务。
如果不想让节点不停的去搜索网络的话,可以extern uint8 ZDApp_StopJoiningCycle( void );,把搜索网络关掉,或者开一个定期把搜网的周期拉大
举报

潘晶燕

2020-8-7 07:18:30
引用: 小Qhhui 发表于 2020-8-7 07:13
当失去父节点以后,节点会先发出orphan然后会以rejoin的方式去加网络,因为对于节点来说加入网是首要的任务。
如果不想让节点不停的去搜索网络的话,可以extern uint8 ZDApp_StopJoiningCycle( void );,把搜索网络关掉,或者开一个定期把搜网的周期拉大 ...

如何设置搜索网络的时间间隔?或者是得自己定时实现?
举报

潘晶燕

2020-8-7 07:30:42
引用: 小Qhhui 发表于 2020-8-7 07:13
当失去父节点以后,节点会先发出orphan然后会以rejoin的方式去加网络,因为对于节点来说加入网是首要的任务。
如果不想让节点不停的去搜索网络的话,可以extern uint8 ZDApp_StopJoiningCycle( void );,把搜索网络关掉,或者开一个定期把搜网的周期拉大 ...

“发出orphan”及“以rejoin的方式去加网络”分别在什么地方操作?失去父节点的消息在哪里获得?
举报

李果

2020-8-7 07:42:57
节点在失去父节点以后,会调用下面的callback函数
void ZDO_SyncIndicationCB( uint8 type, uint16 shortAddr )
在这个函数里面,会把节点的状态改成devStartMode = MODE_RESUME,然后开始重新去找原先的网络
然后会调用ZDO_StartDevice
在这个函数里面 开始Orphan join,
这个时候你可以开启一个timer event,如果没有join成功,可以加长尝试搜网的时间。如果加网成功了可以把这个timer event清除掉。
最新的Z-Stack Home 1.2.2 里面已经把这个功能加进去了。你可以参考下,代码如下。
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);
]
举报

更多回帖

发帖
×
20
完善资料,
赚取积分