ZSTACK 中发射功率设置问题

ZSTACK 中发射功率设置问题

   

一:

发现 ZSTACK 2530 RF 发射功率其实并未被设置成最大,而是 0xd5 1 dbm

最大可以设置TXPOWER=0XF5,(4.5dbm) ,设置位置main 函数启动后

osal_start_system(); // No Return from here 之前

二:

背景资料:

摘自: http://nt1985.blog.163.com/blog/static/1232562702009629102438544/

发射功率:

传送范围的大小是和发射功率还有信道环境有关, 传送速率和传送范围之间没有直接联系。所以呢,适当的增大发射功率可增大传送范围。但也是有一定的限制的。具体详见datasheet。

在mac_radio_def.h里有可以设置:

#define MAC_RADIO_CHANNEL_DEFAULT 11

#define MAC_RADIO_TX_POWER_DEFAULT 0x1F

#define MAC_RADIO_TX_POWER_MAX_MINUS_DBM 25

这些只是举例说明一下,这些参数的意义,以及在z-stack里的什么地方修改。还有很多其它的参数,可以查看相关的源文件。

[mac_radio_def.h]

#define MAC_RADIO_SET_CHANNEL(x) st( FSCTRLL = FREQ_2405MHZ + 5 * ((x) - 11); )

#define MAC_RADIO_SET_TX_POWER(x) st( TXCTRLL = x; )

#define MAC_RADIO_SET_PAN_ID(x) st( PANIDL = (x) & 0xFF; PANIDH = (x) >> 8; )

mac_radio_def.h 文件位置:

mac_radio.c 位置

mac_radio.c

MAC_INTERNAL_API void macRadioSetTxPower(uint8 txPower)

{

。。。。。。。。。。

reqTxPower = pTable[index];

/* update the radio power setting */

macRadioUpdateTxPower();

}

MAC_INTERNAL_API void macRadioUpdateTxPower(void)

{

macPhyTxPower = reqTxPower;

MAC_RADIO_SET_TX_POWER(macPhyTxPower);

}

mac_radio_defs.h

#define MAC_RADIO_SET_TX_POWER(x) st( TXPOWER = x; )

并且通过给程序设置断点运行发现,ZSTACK 里发射功率也没有设定成默认值

默认值在mac_radio_def.h里定义:

#define MAC_RADIO_TX_POWER_DEFAULT 0x1F

而是 0xd5 1 dbm ),那这是在哪里设置的呢?

研究发现

发射功率由mac_radio.c 里macRadioSetTxPower函数参数txPower 决定

由于我们无法看到到底是 那里调用了函数macRadioSetTxPower,所以对 ZSTACK 里发射功率的设定情况并不清楚。不知道是哪里把TXPOWER 设置成了0xd5

所以最后的解决方案是:

在main 函数启动后,

osal_start_system(); // No Return from here 之前

设置TXPOWER=自己想要的值,参见 CC2530 数据手册 第21页


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值