微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > ZED未加入网络的时候的功耗问题

ZED未加入网络的时候的功耗问题

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

ZED 和ZC,在组网正常的情况下,ZED可以进入低功耗模式,电流在uA级别。CC2530芯片

当关闭ZC后,ZED会持续的进行网络发现,无法进入低功耗模式。电流达28mA;

求教TI工程师,如何降低ZC发现网络的频次以降低功耗?或者有其他什么方法来降低功耗?

当失去父节点以后,节点会先发出orphan然后会以rejoin的方式去加网络,因为对于节点来说加入网是首要的任务。

如果不想让节点不停的去搜索网络的话,可以extern uint8 ZDApp_StopJoiningCycle( void );,把搜索网络关掉,或者开一个定期把搜网的周期拉大

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

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

节点在失去父节点以后,会调用下面的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);
}


macEventLoop,
nwk_event_loop,
APS_event_loop,

ZED在有网络的时候持续频繁进入这几个事件,导致功耗在100uA,如何降低这些事件的发生频率?都是库,无法追踪。。。。

测试发现低功耗会频繁进入nwk_event_loop 看来配置有问题,不好追踪是什么事件导致的

仅看到事件变量为1、32768 等

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

网站地图

Top