微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > Zstack 终端节点 上电入网未成功,进入低功耗的设置问题。

Zstack 终端节点 上电入网未成功,进入低功耗的设置问题。

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

各位,请教一个问题

终端设备在未加入任何网络的情况下启动,启动的时候会寻找网络,电流27ma左右。   如果设备在30s内没有加入网络,这时候我怎么能让设备进入休眠状态。

我设备进入低功耗的处理如下。但是处理完之后电流消耗为8.27ma

ZDApp_StopJoiningCycle();

HalLedSet(HAL_LED_3,HAL_LED_MODE_OFF);

SLEEPCMD &= ~PMODE; /* clear mode bits */
SLEEPCMD |= 0x03; /* set mode bits */
while (!(STLOAD & LDRDY));

请问下怎么解决这个问题啊!

你板子上还有其他的外围器件在消耗电流吗?

您好VV, 板子没有其他外围器件在消耗电流。 

我加了下面一句函数,想关闭MAC层,返回的读数一直是0XE2。

macPowerSaveState = MAC_PwrOffReq(MAC_PWR_SLEEP_DEEP);

问下你使用的是哪个版本的协议栈,我试下。

我使用的是2.5.1.a的协议栈。  

我调试的时候发现, 未入网重启的时候POWER SAVE是没打开的。 做了一下处理之后可以正常的进入休眠了。

static uint16 networkReadState(uint16 events)
{
if(events &MANGETIC_READ_NETWORK_EVENT)
{

if(m_gAppNwkState != DEV_END_DEVICE)
{

osal_pwrmgr_device( PWRMGR_BATTERY );

ZDApp_StopJoiningCycle();

HalLedSet(HAL_LED_3,HAL_LED_MODE_OFF);

osal_pwrmgr_task_state(s_cTaskID,PWRMGR_CONSERVE );

if(c_nJoiningCnt++ < MAGNETIC_JOINING_MAX_CNTS)
{
osal_start_timerEx( s_cTaskID, MAGNETIC_JOINING_EVENT,100);
}
else
{
c_nJoiningCnt = 0;
osal_stop_timerEx(s_cTaskID,MANGETIC_READ_NETWORK_EVENT);
osal_stop_timerEx(s_cTaskID,MAGNETIC_JOINING_EVENT);
}
}
else
{
osal_start_timerEx( s_cTaskID, MANGETIC_READ_NETWORK_EVENT,MAGNETIC_READ_NETWORK_DELAY);
}

return (events ^ MANGETIC_READ_NETWORK_EVENT);
}

return events;
}

非常感谢您的回复!

 

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

网站地图

Top