轉自:[email protected]:http://blog.csdn.net/feilusia/article/details/48546465
一、簡介
本篇介紹協議棧中如何設置發射功率。
二、實驗平臺
協議棧版本: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)