[分享] 2.4G无线射频芯片CC2530发射功率的资料分享

Aguilera   2020-3-17 17:17 楼主

     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函数来修改发射功率。 

回复评论 (1)

好资料,谢谢分享。

点赞  2020-3-18 15:10
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复