本文最后修改时间:2017年11月15日 11:40
一、本节简介
本节以simple_peripheral工程为例,介绍如何修改发射功率。
二、实验平台
1)CC2640R2F平台
①协议栈版本:CC2640R2 SDK v1.40.00.45
②编译软件:CCS7.3.0.00019
③硬件平台:香瓜CC2640R2F开发板
④仿真器:香瓜XDS100V3下载器
2)手机平台
①手机型号:红米1S
②安卓版本:安卓4.3
③安卓app:BLE Reader
三、版权声明
1)作者:甜甜的大香瓜
2)声明:喝水不忘挖井人,转载请注明出处。
3)纠错/业务合作:[email protected]
4)香瓜BLE之CC2640R2F群:557278427
5)本文出处:原创连载资料《简单粗暴学蓝牙5》
6)完整开源资料下载地址(电脑端打开):
https://shop217632629.taobao.com/?spm=2013.1.1000126.d21.hd2o8i
7)香瓜CC2640R2F开发板购买链接:
https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4023-16963296339.8.21bfc58419sWKt&id=558653143169
8)香瓜XDS100V3下载器购买链接:
https://item.taobao.com/item.htm?spm=a230r.1.14.1.1d150040zvJBco&id=558356989143&ns=1&abbucket=6#detail
四、实验前提
1、在进行本文步骤前,请先阅读以下章节:
1)《简单粗暴学蓝牙5》的“第一章至第四章”章节。
2、在进行本文步骤前,请先实现以下章节:
1)《简单粗暴学蓝牙5》的“第三章 软件的安装及使用”章节。
五、基础知识
1、发射功率的范围是多少?
答:
如上图,CC2640R2F可调的发射功率为:
5dB(最大)、4dB、3dB、2dB、1dB、0dB(默认)、-3dB、-6dB、-9dB、-12dB、-15dB、-18dB、-21dB(最小)
2、修改发射功率有什么用?
答:
发射功率越大,信号越强、距离越远、功耗越大。
发射功率越小,信号越弱、距离越近、功耗越小。
所以,并不是发射功率越大越好,在你的产品中应调整合适的发射功率,防止造成不必要的功耗浪费。
3、不同的发射功率,对应的是多远的距离?
答:发射功率只是影响通信距离的因素之一,并不能直接得到距离范围。
通信距离还与环境、天线选型、天线电路匹配等因素有关。
所以实际通信距离应以实测为准。
4、在香瓜CC2640R2F开发板上,如何查看发射功率对通信信号造成的影响?
答:可以通过BLE的app(如本文使用的BLE Reader)看设备的RSSI。
RSSI(Received Signal Strength Indication接收的信号强度指示),例如:-30dB比-31dB的蓝牙信号好。
RSSI可被用来测距、定位,但由于RSSI波动太大,因此测距、定位出来的往往不准。
六、硬件原理
暂无
七、实验步骤
1、 添加测试代码(simple_peripheral.c的SimpleBLEPeripheral_init函数末尾中)
//GUA
//设置发射功率
//HCI_EXT_SetTxPowerCmd(HCI_EXT_TX_POWER_MINUS_21_DBM);
//HCI_EXT_SetTxPowerCmd(HCI_EXT_TX_POWER_MINUS_18_DBM);
//HCI_EXT_SetTxPowerCmd(HCI_EXT_TX_POWER_MINUS_15_DBM);
//HCI_EXT_SetTxPowerCmd(HCI_EXT_TX_POWER_MINUS_12_DBM);
//HCI_EXT_SetTxPowerCmd(HCI_EXT_TX_POWER_MINUS_9_DBM);
//HCI_EXT_SetTxPowerCmd(HCI_EXT_TX_POWER_MINUS_6_DBM);
//HCI_EXT_SetTxPowerCmd(HCI_EXT_TX_POWER_MINUS_3_DBM);
//HCI_EXT_SetTxPowerCmd(HCI_EXT_TX_POWER_0_DBM);
//HCI_EXT_SetTxPowerCmd(HCI_EXT_TX_POWER_1_DBM);
//HCI_EXT_SetTxPowerCmd(HCI_EXT_TX_POWER_2_DBM);
//HCI_EXT_SetTxPowerCmd(HCI_EXT_TX_POWER_3_DBM);
//HCI_EXT_SetTxPowerCmd(HCI_EXT_TX_POWER_4_DBM);
//HCI_EXT_SetTxPowerCmd(HCI_EXT_TX_POWER_5_DBM);
//GUA
CC2640R2F一共有13个档发射功率。
八、注意事项
1、手机可能缓存了之前固件的数据(在更新过固件后,都需要清除手机端的缓存!!!),因此要清除缓存,清除缓存的方法如下:
方法一:关闭app、关闭蓝牙总开关、打开蓝牙总开关、打开app。
方法二:手机重启。
九、实验结果
由于RSSI是一直在变化过程中,香瓜选择“每个发射功率观察20S、取其最大最小值、手机放在设备旁边”,得到如下数据:
//GUA
//设置发射功率(默认-47dB~-51dB)
//HCI_EXT_SetTxPowerCmd(HCI_EXT_TX_POWER_MINUS_21_DBM); //-71dB~-76dB
//HCI_EXT_SetTxPowerCmd(HCI_EXT_TX_POWER_MINUS_18_DBM); //-65dB~-72dB
//HCI_EXT_SetTxPowerCmd(HCI_EXT_TX_POWER_MINUS_15_DBM); //-62dB~-67dB
//HCI_EXT_SetTxPowerCmd(HCI_EXT_TX_POWER_MINUS_12_DBM); //-60dB~-63dB
//HCI_EXT_SetTxPowerCmd(HCI_EXT_TX_POWER_MINUS_9_DBM); //-57dB~-61dB
//HCI_EXT_SetTxPowerCmd(HCI_EXT_TX_POWER_MINUS_6_DBM); //-54dB~-59dB
//HCI_EXT_SetTxPowerCmd(HCI_EXT_TX_POWER_MINUS_3_DBM); //-50dB~-53dB
//HCI_EXT_SetTxPowerCmd(HCI_EXT_TX_POWER_0_DBM); //-46dB~-50dB
//HCI_EXT_SetTxPowerCmd(HCI_EXT_TX_POWER_1_DBM); //-45dB~-50dB
//HCI_EXT_SetTxPowerCmd(HCI_EXT_TX_POWER_2_DBM); //-43dB~-47dB
//HCI_EXT_SetTxPowerCmd(HCI_EXT_TX_POWER_3_DBM); //-42dB~-47dB
//HCI_EXT_SetTxPowerCmd(HCI_EXT_TX_POWER_4_DBM); //-41dB~-45dB
//HCI_EXT_SetTxPowerCmd(HCI_EXT_TX_POWER_5_DBM); //-41dB~-44dB
//GUA
其中,协议栈默认发射功率对应的RSSI“-47dB~-51dB”,与发射功率0dB时对应的RSSI“-46dB~-50dB”相近。
CC2640R2F虽然可调的发射功率很多,但由于可调的发射功率太密集,导致许多档次其实是鸡肋式的存在。
大家自行选择合适的发射功率即可。