【BLE】CC2541之设置发射功率

一、简介

本篇介绍协议栈中如何设置发射功率。


二、实验平台

协议栈版本:BLE-CC254x-1.3.2

编译软件:IAR 8.20.2


三、版权声明

博主:甜甜的大香瓜

声明:喝水不忘挖井人,转载请注明出处。

原文地址:http://blog.csdn.net/feilusia

联系方式:[email protected]

技术交流QQ群:127442605


四、发射功率的范围

CC2540支持4种发射功率:4dB、0dB(default)、-6dB、-23dB。

CC2541支持3种发射功率:0dB(default)、-6dB、-23dB。


五、使用举例

void SimpleBLEPeripheral_Init( uint8 task_id )
{
  simpleBLEPeripheral_TaskID = task_id;

  //设置发射功率
  HCI_EXT_SetTxPowerCmd (HCI_EXT_TX_POWER_4_DBM);
  ……
}


注:从机的广播数据中的0dB只是发给主机看看而已的

  // connection interval range
  0x05,   // length of this data
  GAP_ADTYPE_SLAVE_CONN_INTERVAL_RANGE,
  LO_UINT16( DEFAULT_DESIRED_MIN_CONN_INTERVAL ),   // 100ms
  HI_UINT16( DEFAULT_DESIRED_MIN_CONN_INTERVAL ),
  LO_UINT16( DEFAULT_DESIRED_MAX_CONN_INTERVAL ),   // 1s
  HI_UINT16( DEFAULT_DESIRED_MAX_CONN_INTERVAL ),

  // Tx power level
  0x02,   // length of this data
  GAP_ADTYPE_POWER_LEVEL,
  0       // 0dBm
};

六、测试

1、测试代码

用了以下代码分别进行了2540和2541的测试

  //hciStatus_t hci_status = 0x38;
    
  //设置发射功率为4dB
  //hci_status = HCI_EXT_SetTxPowerCmd (HCI_EXT_TX_POWER_4_DBM);

  //设置发射功率为0dB
  //hci_status = HCI_EXT_SetTxPowerCmd (HCI_EXT_TX_POWER_0_DBM);

  //设置发射功率为-6dB
  //hci_status = HCI_EXT_SetTxPowerCmd (LL_EXT_TX_POWER_MINUS_6_DBM);
  
  //设置发射功率为-23dB
  //hci_status = HCI_EXT_SetTxPowerCmd (LL_EXT_TX_POWER_MINUS_23_DBM);

  //参数乱写
  //hci_status = HCI_EXT_SetTxPowerCmd (1111);

2、测试结果

1)无论参数是多少,HCI_EXT_SetTxPowerCmd函数返回值都是0。(此处疑问,那返回值作何用?)

2)CC2541和CC2540的默认值确实是0dB。

3)当参数不正确时,发射功率不会被改变。

4)实验数据(通过手机看RSSI)

CC2540:

HCI_EXT_TX_POWER_4_DBM(-40dB)

HCI_EXT_TX_POWER_0_DBM(-44dB)——default

LL_EXT_TX_POWER_MINUS_6_DBM(-51dB)

LL_EXT_TX_POWER_MINUS_23_DBM(-67dB)


CC2541:

HCI_EXT_TX_POWER_0_DBM(-48dB)——default

LL_EXT_TX_POWER_MINUS_6_DBM(-54dB)

LL_EXT_TX_POWER_MINUS_23_DBM(-70dB)

你可能感兴趣的:(【BLE】CC2541之设置发射功率)