This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2652R:当仅为一个通道配置广播时、频谱分析仪上显示信道37、38、39

Guru**** 2330830 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1484148/cc2652r-channels-37-38-39-seen-on-the-spectrum-analyzer-when-advertisement-configured-for-only-one-channel

器件型号:CC2652R

工具与软件:

尊敬的 TI 团队:  

对于我们的客户、我们正在创建一个软件、假设一次在一个通道上广播数据(通过串行命令选择通道)。  

我们创建了3个广播句柄、3 `GapAdv_params_t` structures 和3 `Util_Adv` BLE3072IT_t 、其中每个句柄定义了其中一个通道的配置。  
我们还创建了一个`BLESCRACING_307t Util_Adv`、因为它存储每个频道的完全相同的数据。  

GapAdv_params_t advParams_37 = {.... .primChanMap = GAP_ADV_CHAN_37, ... };
GapAdv_params_t advParams_38 = {.... .primChanMap = GAP_ADV_CHAN_38, ... };
GapAdv_params_t advParams_39 = {.... .primChanMap = GAP_ADV_CHAN_39, ... };
BLEAppUtil_AdvInit_t `broadcasterInitSettings_37 = { ...  .advParam = &advParams_37, ...}; 
BLEAppUtil_AdvInit_t `broadcasterInitSettings_38 = { ...  .advParam = &advParams_38, ...}; 
BLEAppUtil_AdvInit_t `broadcasterInitSettings_39 = { ...  .advParam = &advParams_39, ...}; 
BLEAppUtil_AdvStart_t broadcasterStartSettings = { .... };


我们使用 BleAppUtil 作为 API 来访问 BLE 堆栈。  
在`initDoneHandler`回调中、我们为`BLEAPPUTIL_GAP_ADV_TYPE`注册 eventHandler 、并为每个通道调用`BLEAppUtil_initAdvSet`  
BLEAppUtil_initAdvSet(&broadcasterAdvHandle_37, &broadcasterInitSettings_37);
BLEAppUtil_initAdvSet(&broadcasterAdvHandle_38, &broadcasterInitSettings_38);
BLEAppUtil_initAdvSet(&broadcasterAdvHandle_39, &broadcasterInitSettings_39);


当串行命令到达信道编号时、我们停止在所有信道上进行广播、并开始仅在所选信道上进行广播。  
BLEAppUtil_advStop(broadcasterAdvHandle_37);
BLEAppUtil_advStop(broadcasterAdvHandle_38);
BLEAppUtil_advStop(broadcasterAdvHandle_39);

case 37: BLEAppUtil_advStart(broadcasterAdvHandle_37, &broadcasterStartSettings); break;
case 38: BLEAppUtil_advStart(broadcasterAdvHandle_38, &broadcasterStartSettings); break;
case 39: BLEAppUtil_advStart(broadcasterAdvHandle_39, &broadcasterStartSettings); break;



在另一个器件上、我们实施了 AdvScanner 固件以打印接收到的广播数据包和接收数据的通道。
为了确认和证明两个固件都能正常工作、我们还使用了带有 Sniffer 固件和 Wireshark 的 nrf dk52。  


一切看起来都很好。 我们选择信道、在扫描器和监听器上、我们只能看到来自所选信道的数据。 -看起来很完美。
直到该器件被带到实验室并将频谱分析仪连接到天线、然后所有三个通道都可见(如图像所示)。  

测试失败、因为只应在一个通道上出现一个尖峰。  
我们为什么可以看到全部三个引脚?
我们如何确保在广播过程中只有一个信道处于活动状态?  



此致  
Kamil