1551|0

3836

帖子

19

TA的资源

纯净的硅(中级)

楼主
 

CC2530低功耗终端不停重连网络耗电问题 [复制链接]

测试其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位的了,可以定义更长时间的定时器了。

此帖出自无线连接论坛
点赞 关注
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表