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.

[参考译文] CC2340R5:CC2340 BLE5 OP_ADV RX 周转问题

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1652805/cc2340r5-cc2340-ble5-op_adv-rx-turnaround-question

器件型号: CC2340R5

我将使用 BLE5 BLE2/寄存器接口在 PBE 上提供低级 BLE 无线电驱动程序。

RAW TX 工作正常。

RAW RX 工作。

BLE5 OP_ADV 成功传输有效的旧 ADV_IND 数据包。

问题具体来说是 OP_ADV RX 转换。

当中央器件发送 CONNECT_IND 时、Wireshark 以 ADV_IND 之后的预期时序在空中显示 CONNECT_IND。 但是、OP_ADV 操作始终完成以处理:

ENDCAUSE = 0x0002 // NOSYNC

使用 ble5.c 旧广播路径的 TI BLE 示例工作正常并完成、其中包括:

ENDCAUSE = 0x0004 //连接

我的问题不是关于基本 TX 或基本 RX 的问题。 这两者都是独立工作的。

问题是:

除了原始 TX 和原始 RX 所需的设置之外、OP_ADV 需要哪些额外设置来执行 TX 到 RX 转换并检测 SCAN_REQ/CONNECT_IND?

换句话说、带响应接收的 OP_ADV 广播的设置有什么独特之处?

我知道的明显差异是:

  • OP_ADV 使用 BLE5 广播操作而不是原始 TX/RX 操作。
  • TX FIFO 可以包含 ADV_IND 数据包和 SCAN_RSP 数据包。
  • 需要启用与 RX 相关的中断。
  • 需要配置广播特定的 BLE5 RAM 字段、例如 advcfg、FILTPOLICY、RPAMODE、RPACONNECT、 FL1MASK、FL2MASK 等
  • 涉及 PRERXIFS 和 RXTIMEOUT 等时序字段。

我已经将明显的 OP_ADV BLE5 RAM 字段与正常工作的 TI 路径进行了比较、包括:

WHITEINIT
CRCINIT
EXTRABYTES
FIFOCFG
advcfg
FILTPOLICY
OWNADRTYPE
RPAMODE
RPACONNECT
FL1MASK
FL2MASK
OPCFG
PRETXIFS
PRERXIFS
RXTIMEOUT

它们看起来与提交 OP_ADV 之前的 TI 工作案例相匹配。

我还在 OP_ADV 之前比较了这些与调制解调器/同步相关的寄存器:

MDMSYNCA
DEMC1BE0
DEMC1BE1
DEMC1BE2
RSSI

它们也与 TI 工作案例相匹配。

根据广告活动、我的驾驶员报告:

NTX = 1
NRXOK = 0
NRXNOK = 0
NRXIGNORED = 0
RSSI/时间戳不变
ENDCAUSE = NOSYNC

因此、OP_ADV 传输广播数据包、但响应数据包似乎永远不会到达 SYNC/DEMOD 处理。 这看起来不像是地址滤波器抑制或 RX FIFO 处理问题。

我尝试识别的是以下两者之间缺少的差值:

  • RAW TX + RAW RX、独立工作
  • OP_ADV 具有 RX 周转、在发送数据但从不检测到同步

对于转换接收路径、OP_ADV 需要进行一些必需的 RFE/TOPSM/MCE/RCL 设置、补丁状态、等待条件、无线电模式转换或 PBE 框架初始化吗?

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

    您好 Bob:

    与 TI rnd 讨论后、我们很遗憾地无法在修改或重新创建现有 BLE5 代码方面提供任何支持;据我所知、BLE5-Stack 文件函数最初被一些公共 BLE 应用代码引用、但最终会调用我们的专有 BLE5 栈、我们无法提供详细信息。  

    我的 BLE 应用团队中的另一位团队成员建议在此处查看我们现有的 BLE SLA 、其中使用 basic_ble 示例进行了低功耗蓝牙连接。  

    如果有助于启用 ACK 的 PHY、则周转时间由 IFS 寄存器控制、如果您查看 SmartRF Studio 8、可以找到并进行更新(应位于 BLE PHY 相关的.txt 文件之一中)、但此更改是低级寄存器设置、此更改将使 PHY “实验性“。  

    此致、
    Alex F