一、简介
本篇介绍协议栈中如何设置发射功率。
二、实验平台
协议栈版本: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);
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)