微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > 射频无线通信设计 > Zstack设置发送功率(CC2530)

Zstack设置发送功率(CC2530)

时间:10-02 整理:3721RD 点击:

在mac_radio.c中找到macRadioSetTxPower函数,其具体内容复制如下:


#ifndef HAL_MAC_USE_REGISTER_POWER_VALUES

MAC_INTERNAL_API void macRadioSetTxPower(uint8 txPower)
{
halIntState_t s;
#if defined MAC_RUNTIME_CC2591 || defined MAC_RUNTIME_CC2590
const uint8 CODE *pTable = macRadioDefsTxPwrTables[macRadioDefsRefTableId >> 4];
#elif defined HAL_PA_LNA || defined HAL_PA_LNA_CC2590
const uint8 CODE *pTable = macRadioDefsTxPwrTables[0];
#else
const uint8 CODE *pTable = macRadioDefsTxPwrBare;

//该table中含有txPower的设置值,将该table的首地址赋给指针pTable,

//macRadioDefsTxPwrBare[]定义在mac_radio_defs.c中
#endif


if ((int8)txPower > (int8)pTable[MAC_RADIO_DEFS_TBL_TXPWR_FIRST_ENTRY])
{

txPower = pTable[MAC_RADIO_DEFS_TBL_TXPWR_FIRST_ENTRY];//发送功率上限值
}
else if ((int8)txPower < (int8)pTable[MAC_RADIO_DEFS_TBL_TXPWR_LAST_ENTRY])
{

txPower = pTable[MAC_RADIO_DEFS_TBL_TXPWR_LAST_ENTRY];//发送功率下限值
}


HAL_ENTER_CRITICAL_SECTION(s);

{
uint8 index = pTable[MAC_RADIO_DEFS_TBL_TXPWR_FIRST_ENTRY] - txPower
+ MAC_RADIO_DEFS_TBL_TXPWR_ENTRIES;

reqTxPower = pTable[index];
}

//通过计算转换查表index,得到发送功率值,将其赋给reqTxPower,

//函数macRadioUpdateTxPower中用于更新发送功率

HAL_EXIT_CRITICAL_SECTION(s);


macRadioUpdateTxPower();
}

#else

MAC_INTERNAL_API void macRadioSetTxPower(uint8 txPower)
{//直接获得reqTxPower
halIntState_t s;


HAL_ENTER_CRITICAL_SECTION(s);
reqTxPower = txPower;
HAL_EXIT_CRITICAL_SECTION(s);


macRadioUpdateTxPower();
}

下面了解一下macRadioUpdateTxPower函数,其函数体如下:


MAC_INTERNAL_API void macRadioUpdateTxPower(void)
{
halIntState_t s;


HAL_ENTER_CRITICAL_SECTION(s);//进入临界区
if (reqTxPower != macPhyTxPower)//macPhyTxPower即为当前实际的发送功率
{

if (!macRxOutgoingAckFlag && !MAC_TX_IS_PHYSICALLY_ACTIVE())

//当有发送任务正在进行时,不能改变发送功率。

//当前的发送任务完成后,将重新调用该函数进行发送功率设置。
{

macPhyTxPower = reqTxPower;
MAC_RADIO_SET_TX_POWER(macPhyTxPower);//设置寄存器TXPOWER为macPhyTxPower,即reqTxPower
}
}
HAL_EXIT_CRITICAL_SECTION(s);//离开临界区
}

通过上面的函数,我们根据自己的需要,适当对发送功率进行设置。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top