Configure TI CC2541 compatible proprietary PHY CN - markding/iot-developer-boot-camp GitHub Wiki
English | Chinese
有时会收到这样的需求, 配置与其他供应商的设备兼容的 PHY(Physical Layer / 物理层), 以便两者进行通信. 这里分享配置EFR32xG22 PHY 与 TI CC2541 Proprietary(专有协议) 2.4G PHY 通信的经验. 要在两个RF设备之间进行通信, 频率, 调制, 数据速率, 频偏, 前导码, 同步字, 数据包结构等参数必须相同. 要为 EFR32xG22 配置PHY, 需要知道 radio configurator 上需要的详细参数.
- 1 WSTK 与 EFR32xG22 radio boards(BRD4182A)
- 1 SmartRF05 EB 与 CC2541EMK
- 1 Anritsu MS2692A
BRD4182A radio 板支持三种无线协议, Bluetooth LE/Mesh, Zigbee 与 Proprietary, 这里将用到 Proprietary.



Simplicity Studio 是一个免费的基于 Eclipse 的集成开发环境(IDE), Silicon Labs 在此基础提供了一系列的非常有用的工具. 开发人员可以使用 Simplicity Studio 来开发, 调试并分析其应用程序. 最近发布了 Simplicity Studio 5, 这个 IDE 基于最新版本的 Eclipse 和 C/C++ 开发工具. 以先前版本的功能为基础, 包含先进的 SecureVault 技术, 新的 Web 形式界面以及可靠的性能改进.
SmartRF™ Studio 是一个 Windows 应用, 可用于评估和配置德州仪器 (TI) 的低功耗射频器件. 该应用可帮助射频系统的设计人员在设计过程的早期阶段轻松评估无线电. 它特别适用于生成配置寄存器值和命令, 以及实际测试和调试射频系统. 这里使用 SmartRF Studio 7.
这个案例中有些参数是已提供的, 有些是通过 xml 文件读取的, 这个 xml 是 CC2541 带有详细寄存器设置的配置文件. 最终以下参数是已知的.
- 调试方式: 2GFSK
- 数据速率: 2Mbps
- 频偏: 500KHz
- 前导码: 10101010 (13 字节)
- 同步字: 0x29417671
- 数据包结构: 64 字节, 可变包长
- 数据大小端: MSB_FIRST
- CRC 多项式: CCITT_16(0x1021)
- CRC 种子: 0xFFFF
- 白化多项式: PN9_BYTE
- 白化种子: 0xFF
根据已知参数配置了一个 PHY, 没工作起来, 甚至连前导码都没检测到, 这就有必要去抓取并分析从 CC2541 发出来的空中数据包了.
下面动态图演示了如何通过 SmartRF Studio 7 打开配置文件并发送射频数据.


需要根据实际用例配置相应的中心频率, 参考电平等, 以使得 MS2692 抓到可读的数据帧.



如图, Marker1 与 Marker2 之间的间隔时间是 52us. 13字节的前导码, 2Mbps 意味着第个比特占 0.5us, 13 x 8 x 0.5us = 52us, 所以可以判断这个是前导码. 信号分析仪 MS2692A 检测到 1 字节的前导码与 48us 载波信号. 检查了 TI BLE PHY等其他 GFSK 2Mbps PHY, 也存在这样的问题, 由此可知, CC2541 仅发送了 1 字节的前导码及 48us 载波信号, 而非完整的 13 字节前导码. 之前提到按已知参数配置 EFR32xG22 PHY 连前导码都没检测到, 就是这个原因导致的.

前导码定位到之后, 这个帧的数据就可读了, 因为知道每个比特位之间的间隔, 只要按 0.5us 间隔采样读取数据就可以了.

确认 CC2541 数据帧后, 得到了 radio configurator 需要的具体参数设定, 现在可以创建与配置 EFR32xG22 工程, 这里用 SSv5 的 "Flex (RAIL) - RAILtest".

双击射频配置文件 -- "radio_settings.radioconf", 选一个预设 PHY(2450M 2GFSK 2Mbps 1M), 点击 "Customized", 目标 PHY 中心频率是 2466MHz, 先把频率改到 2466MHz.


只有 8 位的前导码, 根据AN1253, 基于前导码的 timing detect 应该要禁用.


其他未提及参数保留其默认设置, 这样 PHY 就配好了. 保存并编译, 这样软件就准备好了.
如需要 radio configurator 相关更多信息, 请参考 AN1253.
TI CC2541 RX, EFR32xG22 TX, 20 个数据包.


如需要CLI command相关更多信息, 请参考 UG409.
通过在信号分析仪 MS2692A 确认 CC2541 的 TX PHY 参数, 在 CRC 与白化设置上做了几次试验, 得到了相应的配置参数, 可以配出使得 EFR32xG22 能与 CC2541 通信的兼容的 PHY.