微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > zigbee低功耗PM3

zigbee低功耗PM3

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

大家好,现在做东西想发挥zigbee低功耗的功能,终端节点,采用CC2530,加入了CC2591功放,协议栈版本为TI ZStack-CC2530-2.3.0-1.4.0,在hal_board_cfg.h中修改xHAL_PA_LNA为HAL_PA_LNA开启功放,在f8wConfig.cfg中修改-DRFD_RCVC_ALWAYS_ON=FALSE,在官方协议栈Sample中修改OSAL_PwrMgr.c文件中的void osal_pwrmgr_init( void )函数pwrmgr_attribute.pwrmgr_device = PWRMGR_BATTERY; 开启低功耗。在运行时,我通过串口将休眠模式打印出来,发现大概每隔不到一秒左右串口打印的信息为02,03,03,03,03,这表示有时工作在PM2模式有时工作在PM3模式下。Sample工程我设置了两个按键,均是外部中断方式,只有在按键按下时才会发送点对点信息到协调器,请问是哪个进程运行使系统工作在PM2模式的?还有就是如果工作在这样的情况下,一节3.7v的650mh的锂电池在极少按按键的情况下能够使其工作多长时间。

你的系统只会是在按键的情况唤醒对吧?有定时的唤醒吗?

VV工程师您好:

首先谢谢您的关注!

我的最终目的是做成只有按键按下时才唤醒,在按键按下时调用协议栈自带的发送函数发送数据到协调器。

如果OSAL没有任务的话就会工作在PM3模式,但是在得到睡眠模式后我将睡眠模式用串口打印出来,却不是只工作在PM3模式下,有时工作在PM2模式下,大概是1S左右打印一次,我在SampleApp.c中没有任务执行,在OSAL_SampleApp.c中有:

const pTaskEventHandlerFn tasksArr[] = {
macEventLoop,
nwk_event_loop,
Hal_ProcessEvent,
#if defined( MT_TASK )
MT_ProcessEvent,
#endif
APS_event_loop,
#if defined ( ZIGBEE_FRAGMENTATION )
APSF_ProcessEvent,
#endif
ZDApp_event_loop,
#if defined ( ZIGBEE_FREQ_AGILITY ) || defined ( ZIGBEE_PANID_CONFLICT )
ZDNwkMgr_event_loop,
#endif
SampleApp_ProcessEvent
};

是不是这里的网络层和Mac层有任务在执行?

请问你最后这个方案如何解决的呢?

我也想做与你类似功能的方案,但是发现,系统始终会跑如下三个事件。

macEventLoop,
nwk_event_loop,
APS_event_loop,

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

网站地图

Top