CC2530发射功率可编程范围:4.5dBm~-27.5dBm,Z-Stack可设置范围:-22dBm~+3dBm,发射功率和设置值的对应关系在工程文件mac\low_level下的mac_radio_defs.c中的
const uint8 CODE
macRadioDefsTxPwrBare[]中定义,该常量数组并只包含部分建议值,只要取值在最大值0xF5和最小值0x05之间均有效。注意:发射功率与消耗功率不同,消耗功率远大于发射功率(射频输出功率),因为RF发射器(CC2520)本身要消耗能量以产生射频信号,比如输出0dBm的无线信号需要29mA电流,3.3V下约为100mW,而0dBm=1mW。
不同版本的ZStack发射功率设置方式及默认值不同:
1)ZStack-CC2530-2.3.0-1.4.0及以前版本设定方法:在工程文件COMPONENTS\mac\low_level下的mac_radio_defs.h文件中设置初始值
#define MAC_RADIO_CHANNEL_DEFAULT 11 //2440HZ
#define MAC_RADIO_TX_POWER_DEFAULT 0x32 //约为-17dBm
一般在协议栈初始化的时候会按初始值配置发射功率,如果程序里面需要修改发射功率,可按以下方式:
并在工程文件mac\low_level下的mac_radio.c的MAC_INTERNAL_API void macRadioSetTxPower(uint8
txPower) 函数中完成赋值设置,该函数调用被封装屏蔽,函数中在临界区通过语句reqTxPower =
txPower;将txPower赋值给reqTxPower,然后调用macRadioUpdateTxPower()函数更新发射功率,操作语句为:
macPhyTxPower = reqTxPower;
MAC_RADIO_SET_TX_POWER(macPhyTxPower);//设置寄存器TXPOWER为macPhyTxPower
所以调整发射功率三种方法:
1.修改初始值#define MAC_RADIO_TX_POWER_DEFAULT 0x32
2.修改macRadioSetTxPower()函数中的 reqTxPower为欲设定值,协议栈会自动调用该函数设定发射功率
3.在应用中自行调用macRadioSetTxPower()函数设置发射功率。
2)ZStack-CC2530-2.3.0-1.4.0以后的高版本增加了对CC2533芯片的支持,其发射功率范围为-21dBm~+4dBm,
设定方法为:
新版本中工程文件mac\high_level下多了mac_pib.c文件,用以设置发射功率初始值,并去掉了MAC_RADIO_TX_POWER_DEFAULT变量。mac_pib.c文件中的static)
CODE const macPib_t macPibDefaults变量有以下 语句:
#IF defined (HAL_PA_LNA)
19, /* phyTransmitPower for CC2591 */
#elif defined (HAL_PA_LNA_CC2590)
11, /* phyTransmitPower for CC2590 */
#else
0,
分别19、11、0对应功放CC2591、CC2590、不带功放的默认发射功率,单位为dBm值,可在这里完成初始值的修改。
此外新版本仍可以通过调用macRadioSetTxPower函数来修改发射功率。
好资料,谢谢分享。