本篇博文最后修改时间:2017年01月06日,11:06。
一、简介
本文介绍协议栈中如何设置发射功率。
二、实验平台
协议栈版本:BLE-CC254x-1.4.0
编译软件:IAR 8.20.2
硬件平台:Smart RF(主芯片CC2541)
三、版权声明
博主:甜甜的大香瓜
声明:喝水不忘挖井人,转载请注明出处。
原文地址:http://blog.csdn.NET/feilusia
联系方式:897503845@qq.com
香瓜BLE之CC2541群:127442605
香瓜BLE之CC2640群:557278427
五、基础知识
1、发射功率的范围
答:
1)CC2540支持4种发射功率:4dB、0dB(default)、-6dB、-23dB。
2)CC2541支持3种发射功率:0dB(default)、-6dB、-23dB。
2、广播数据的末尾数据“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
};
不是,广播数据中的0dB只是发给主机看看而已的,并不起配置作用。但尽量填入与实际发射功率相匹配的数值。
六、实验步骤
1、测试代码(添加至工程的初始化代码中)
//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)
因此,实验成功。