社区导航

 

搜索
查看: 104|回复: 0

[资料分享] CC2530低功耗终端不停重连网络耗电问题

[复制链接]

6562

TA的帖子

19

TA的资源

纯净的硅(初级)

Rank: 4

发表于 2020-5-12 22:22 | 显示全部楼层 |阅读模式

测试其ZIGBEE协议栈的低功耗模式,TI确实花了不少功夫在这套协议栈上以及支撑的操作的系统OSAL,非常好用。做了几个简单的配置即可进入低功耗模式,并且数据采集、通信均正常。

担当我认为OK的时候,我把协调器关闭了,过了一段时间,重新打开,发现终端连不上了,测量了终端的电池电压(CR1220,40mA/H),已经没电了;问题的根源就是终端发现协调器不在线了,不停的去重连网络导致的,要知道重连过程是很耗电的。如何解决?找了网上的资料,如下:

/////////////////////////////////////////////////////////////////////////////////

这个我有研究过,如果不配置DEV_HOLD,设备会一直加网,直到有网络。如果想要设备隔一段时间再加网,可以参照下面的做法(需要注意的是,我只验证了设备会按照设定的时间起来加网,并不能说明降低了功耗)。
#define NWK_INIT_fAIL_MAX     5
UINT16 ZDApp_event_loop( uint8 task_id, UINT16 events )

    ……
  if ( events & ZDO_NETWORK_INIT )
  {
    static uint8 initFailCounter = 0;       
    // Initialize apps and start the network
    devState = DEV_INIT;
    osal_set_event( ZDAppTaskID, ZDO_STATE_CHANGE_EVT );
        //by asura 20140901
        if(initFailCounter++ >= NWK_INIT_fAIL_MAX )
    {
          osal_start_timerEx( ZDAppTaskID, ZDO_NETWORK_INIT, 60000 );
          initFailCounter = 0;
          return(events ^ ZDO_NETWORK_INIT);
        }
       
    ZDO_StartDevice( (uint8)ZDO_Config_Node_Descriptor.LogicalType, devStartMode,
                     DEFAULT_BEACON_ORDER, DEFAULT_SUPERFRAME_ORDER );

    // Return unprocessed events
    return (events ^ ZDO_NETWORK_INIT);
  }
……

这样更改以后,设备上电会首先尝试5次加网,如果都失败,其后就会每1分钟起来加网一次。
另外,由于osal_start_timerEx()第二个参数为uint16类型的,这样就限制了延迟时间的大小,我想问下,怎么设置5分钟或更长时间的延迟?

//////////////////////////////////////////////////////

另外的网友答复:最新的协议栈中osal_start_timerEx函数的时间参数已经是32位的了,可以定义更长时间的定时器了。

此帖出自无线连接论坛


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 1/8 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

词云| Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-7-15 19:50 , Processed in 0.087455 second(s), 20 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表