Zstack 2.5.1a SampleApp例程进入休眠0.5uA

2 篇文章 0 订阅
1 篇文章 0 订阅

记录下自己的调试,很久没用低功耗有点遗忘了。
ZigBee模块采用亿佰特的E18带PA的CC2530模块,休眠电流为0.5uA。
在这里插入图片描述
/----------------------------------------------------------------------------------------------------------------------------\
1.打开POWER_SAVING
在这里插入图片描述
2.修改f8wConfig.cfg文件 最主要的是修改-DRFD_RCVC_ALWAYS_ON=FALSE
其余可以在运行需要休眠时通过程序配置,分别是

NLME_SetPollRate(0);
NLME_SetQueuedPollRate( 0);
NLME_SetResponseRate( 0);

在这里插入图片描述
3.修改Onboard.C中InitBoard函数的打开按键中断唤醒

 HalKeyConfig(HAL_KEY_INTERRUPT_ENABLE, OnBoard_KeyCallback);

在这里插入图片描述
4.接着在需要进入休眠的程序段放如下函数以进入休眠。

osal_pwrmgr_device( PWRMGR_BATTERY );

此时设备为电池供电设备,将会在osal_run_system()中所有任务执行完后通过osal_pwrmgr_powerconserve();进入休眠,测试电流为0.5uA,有定时唤醒任务会高一些。
5.此处针对有PA的单独配置。
对于CC2530加PA的模块需要将,PA引脚分别配置好之后才能进入休眠。我用的模块为CC2530+CC2592,于是在hal_board_cfg.h 将#define xHAL_PA_LNA去掉x;mac_radio_defs.c中将macRadioTurnOnPower()的引脚对应上PA引脚,如图所示,
在这里插入图片描述
于是有:

    /* P1_1 -> PAEN */
    RFC_OBS_CTRL0 = RFC_OBS_CTRL_PA_PD_INV;
    OBSSEL1       = OBSSEL_OBS_CTRL0;

    /* P1_0 -> EN (LNA control) */
    RFC_OBS_CTRL1 = RFC_OBS_CTRL_LNAMIX_PD_INV;
    OBSSEL0       = OBSSEL_OBS_CTRL1;

配置完成后,带PA的模块也将正常进入休眠,测试0.5uA,所有测试都在其底板上,未接任何外设,因为接了需要对引脚电平单独处理。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值