Other Parts Discussed in Thread: CC2340R5
器件型号: CC2340R5
我跟进前面一个有关使用 PBE_BLE5_REGDEF_API_OP_RXRATION 在 CC2340R5 上接收标准 BLE 广播通道数据包的问题。
我现在有一个主要工作的低级 TXRMOVE/RXRMOTION 路径:
-我使用 PBE_BLE5_REGDEF_API_OP_TXRATION 传输旧的 ADV_IND 数据包
-数据包在 Wireshark/NRF Sniffer 中可见
-它被解码为可连接/可扫描的广播
-一个中心会在几个广播后立即发送 CONNECT_IND
- CONNECT_IND 在监听器中清晰可见,地址是我的广播器地址
- TX 完成后,我的 ISR 开始 RXRATION
-测量的时间:
- TX ISR 条目到 startRx:关于 17µs
- TX ISR 进入 OP_RXRAVIA API 写入:关于 29µs
- RX 超时约为 1 毫秒
RXSDB权利 路径肯定是在接收 BLE 广播通道数据包。 我可以接收不相关的/环境的 ADV_IND/ADV_NONCONN_IND 数据包、它们与 EventRxOk 一起到达。 RX FIFO 解码显示正确;接收到的标头的示例包括:
42 37
40 24
42 21
02 34
60 23
在这些示例中、第一个值是十六进制的 BLE 广播 PDU 标头字节、第二个值是以十进制表示的解码 PDU 长度。
但是、我从不会收到中心器件的 CONNECT_IND。 在 RX 超时时、我在 RX 窗口期间捕获了 BLE5 接收计数器的增量:
NRXOK 0
NRXNOK 0
NRXIGNORED 0
NRXFIFOFULL 0
ENDCAUSE 0007
即使对于广播事件也是如此、在我广播之后监听器立即显示 CONNECT_IND。 因此、它看起来不像正在接收和拒绝数据包;看起来 RXRAVIA 根本无法检测到它。
当前的 RXSDB权利 设置是根据 source/ti/drivers/rcl/handlers/ble5.c 中的 RCL_Handler_BLE5_genericRx 建模的:
- MDMSYNCA = 0x8E89BED6
- CRCINIT = 0x555555 << 8.
- WHITEINIT =通道| 0x40
- MAXLEN = 255
- OPCFG =重复
- RX FIFO 已重置/准备、RXFWRITABLE 为非零、然后再启动 RXRATION
-使用 SYSTIM START 发出 PBE_BLE5_REGDEF_API_OP_RXRAW
我已经找到并修复了一个问题:在 LRF_prepareRxFifo() 样式重置后、RXFWRITABLE 为零、直到我将 RXFSRP 向前移动。 在固定的情况下,RXRABVIA 能够可靠地接收普通的广播包。
我的问题:
PBE_BLE5_REGDEF_API_OP_RXRAW 是否应该能够在 TXRAW 广播数据包之后立即在 T_IFS 响应时隙中接收 CONNECT_IND?
或者、是否仅通过 PBE_BLE5_REGDEF_API_OP_ADV 支持广播后接收 CONNECT_IND、其中 PBE 在内部管理广播 TX 和 TX 后 RX 窗口?
更具体地说:
1、是否支持 TXRABZEN 和 RXRABZEN 实现可连接的广播器?
2. RXSDB权利 是否需要进行任何额外设置来专门接收 CONNECT_IND 数据包?
3. CONNECT_IND 数据包的处理方式与 BLE5 PBE 的普通广播 PDU 不同吗?
4、在 RXLIFE 接收到 T_IFS 响应数据包之前、在 TXRAW 后是否有任何隐藏的时序要求或 TOPSM/RFE 就绪要求?
5.对于此用例、是否有推荐的低级寄存器/RAM 序列、但短于使用完整 RCL 广播命令?
我特意未使用完整的 BLE 栈。 我正在实施一个小型定制控制器、并尝试直接使用 CC2340R5 PBE BLE5 原始操作。