我是靠谱客的博主 俭朴面包,最近开发中收集的这篇文章主要介绍Z-Stack调整功率,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

转自http://hi.baidu.com/xiaoqiang08wan/item/170106dda2b057fd93a974a5

在z-stack 2.4中,修改发射功率的方法和老版本已经不一样了。

修改发射功率的方法如下:

打开mac_radio_defs.h,找到文件最后面的这段代码:

/* ------------------------------------------------------------------------------------------------
* Transmit Power Setting Configuration
* ------------------------------------------------------------------------------------------------
*/

/*
* To use actual register values for setting power level, uncomment the following #define.
* In this case, the value passed to the set power function will be written directly to TXCTRLL.
* Characterized values for this register can be found in the datasheet in the "power settings" table.
*/
//#define HAL_MAC_USE_REGISTER_POWER_VALUES

//#define HAL_MAC_USE_REGISTER_POWER_VALUES的注释去掉。

变为:

#define HAL_MAC_USE_REGISTER_POWER_VALUES

然后打开ZMain.c

在ZMacInit();后面添加如下代码:

{
uint8 value = 0xF5;
MAC_MlmeSetReq(MAC_PHY_TRANSMIT_POWER, &value);
}

value与功率的对应关系可以在CC2530的datasheet中找到


问:我在测试Z-stack时发现,如果不加NV_RESTORE这个编译选项的话,那么节点必须靠得比较近才能组网成功。
如果离得较远,就无法组网。请问这是为什么呢?

答:有两项原因限制了zigbee节点的加入网络的距离,一个是默认发射功率为0dbm,另一个是节点加入是要求信号强度-84dbm以上,修改这两个条件可以使用zigbee节点可以在较远的地方加入网络。如果打开NV_Restore并且成功加入过网络,节点可以在小于-84dbm信号强度下通讯,这就是为什么打开nv_restore,可以有较远的距离的原因。

问:如何修改-84dbm这个值?

答:修改mac_spec.h中的MAC_SPEC_ED_MIN_DBM_ABOVE_RECEIVER_SENSITIVITY,将其改为1

/* Threshold above receiver sensitivity for minimum energy detect in dBm (see 6.9.7) */
#define MAC_SPEC_ED_MIN_DBM_ABOVE_RECEIVER_SENSITIVITY 10

另外还要把MAC_SPEC_MIN_RECEIVER_SENSITIVITY,改成-94

/* minimum receiver sensitivity in dBm (see 6.5.3.3) */
#define MAC_SPEC_MIN_RECEIVER_SENSITIVITY -85

最后

以上就是俭朴面包为你收集整理的Z-Stack调整功率的全部内容,希望文章能够帮你解决Z-Stack调整功率所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(76)

评论列表共有 0 条评论

立即
投稿
返回
顶部