2. 硬件环境搭建:TI CC1310/CC1352 开发板、调试器与串口模块选型

做无线协议栈开发,硬件环境是第一步。说白了,工具没选对,后面抓包调试全是坑。我这些年折腾过不少板子,踩过一些雷,今天把经验摊开来讲。

2.1 TI CC1310 与 CC1352 开发板选型

TI 的 Sub-1GHz 无线 MCU 家族里,CC1310 和 CC1352 是两款最常用的芯片。它们各自有对应的 LaunchPad 开发板,我建议你直接买官方的 LaunchPad,别省那几百块钱——第三方板子的调试接口和天线匹配经常出问题。

特性 CC1310 LaunchPad (LAUNCHXL-CC1310) CC1352P1 LaunchPad (LAUNCHXL-CC1352P1)
无线频段 Sub-1GHz 仅 433/868/915 MHz Sub-1GHz + 2.4 GHz 双频
Flash / RAM 128 KB / 20 KB 352 KB / 80 KB
协议栈支持 TI 15.4-Stack, Proprietary RF TI 15.4-Stack, Zigbee, BLE, Thread, Proprietary RF
板载调试器 XDS110(支持 SWD) XDS110(支持 SWD)
典型应用场景 纯 Sub-1GHz 传感器网络 双频网关、协议转换器
我的建议: 如果你只做 Sub-1GHz 协议栈调试,CC1310 LaunchPad 完全够用,性价比高。但如果你需要同时抓 2.4 GHz 和 Sub-1GHz 的交互报文(比如网关场景),直接上 CC1352P1,省得后面换板子。

2.2 J-Link 与 SWD 调试器连接

TI 的 LaunchPad 板载了 XDS110 调试器,用 USB 线连电脑就能用。但我在项目中遇到过几次 XDS110 固件崩溃的情况——尤其是频繁热插拔或者供电不稳时。这时候就需要外接 J-Link 或兼容的 SWD 调试器来救场。

2.2.1 为什么需要外接调试器?

  • 板载调试器挂了: XDS110 偶尔会掉固件,重新烧录麻烦。外接 J-Link 直接绕过它。
  • 需要低功耗调试: 板载调试器在低功耗模式下会干扰电流测量。外接调试器可以单独供电。
  • 多板协同调试: 一个 J-Link 可以同时接多块板子的 SWD 接口,方便做多节点抓包。

2.2.2 SWD 接口接线

TI 的 CC13xx 系列使用标准的 10-pin SWD 接口(Cortex-M 标准)。你只需要接 4 根线:

J-Link / SWD 调试器        CC1310/CC1352 目标板
  SWDIO (Pin 2)  ——————>  SWDIO (P2.1 / DIO_21)
  SWCLK (Pin 4)  ——————>  SWCLK (P2.0 / DIO_20)
  GND   (Pin 6)  ——————>  GND
  VCC   (Pin 1)  ——————>  3.3V (可选,用于电平匹配)
注意: 我曾经因为没接 GND 导致调试器无法识别目标芯片。SWD 的 GND 必须接,否则时钟信号参考电平不对。另外,VCC 可以不接——调试器只用来检测目标电压,不供电。

2.2.3 调试器选型对比

调试器型号 速度 价格 适用场景
J-Link EDU Mini ~1 MHz SWD 约 200 元 个人学习、简单调试
J-Link BASE ~4 MHz SWD 约 800 元 日常开发、单板调试
J-Link ULTRA+ ~15 MHz SWD 约 3000 元 多板协同、高速下载
ST-Link V2 (改装) ~2 MHz SWD 约 30 元 应急使用(需转接板)

我个人习惯: 平时用 J-Link BASE 就够了。如果只是做协议栈抓包调试,SWD 速度 1 MHz 完全够用,没必要上 ULTRA+。但千万别买山寨 J-Link——固件升级一次就变砖,我吃过这个亏。

2.3 串口转 USB 模块选型

无线协议栈调试离不开串口日志。TI 的协议栈默认通过 UART 输出调试信息,比如报文内容、状态机跳转、错误码等。你需要一个可靠的串口转 USB 模块来接收这些数据。

2.3.1 核心选型指标

  • 芯片方案: 首选 FT232RL 或 CP2102。CH340 也能用,但波特率高了容易丢包。
  • 电平匹配: CC13xx 的 UART 是 3.3V 电平。模块必须支持 3.3V,不能直接用 5V 的 RS232 模块。
  • 波特率支持: 协议栈默认 115200 bps,但抓包时我经常开到 921600 bps 来减少延迟。模块要能稳定跑 1 Mbps 以上。
  • 硬件流控: 可选。如果只输出日志,RTS/CTS 可以不接。但做固件升级时可能需要。

2.3.2 推荐模块与接线

模块型号 芯片 最大波特率 价格 推荐理由
FT232RL 迷你板 FT232RL 3 Mbps 约 25 元 稳定、驱动成熟、兼容性好
CP2102 小板 CP2102 1 Mbps 约 10 元 便宜、够用、体积小
CH340G 模块 CH340G 2 Mbps 约 5 元 应急备用,不建议长期使用

接线很简单:

串口模块 TX  ——————>  CC13xx UART RX (DIO_2)
串口模块 RX  ——————>  CC13xx UART TX (DIO_3)
串口模块 GND ——————>  CC13xx GND
避坑指南: 我曾经用 CH340 模块抓包,结果 115200 波特率下偶尔出现乱码。排查了半天,发现是模块的晶振精度不够。换成 FT232RL 后问题消失。如果你要长时间抓包分析,别省这十几块钱。

2.4 硬件连接整体架构

下面这张图展示了调试环境的完整连接关系。你可以把它贴在实验台旁边,接线时对照着来。

硬件调试环境连接架构图 硬件调试环境连接架构 PC 主机 J-Link SWD 调试器 串口转 USB 模块 CC1310 / CC1352 LaunchPad 目标板(运行协议栈固件) USB USB SWD (4线) UART (3线) 说明: J-Link 用于程序下载和断点调试;串口模块用于接收协议栈日志和抓包数据。 两者可以同时工作,互不干扰。建议使用 USB Hub 扩展接口。

2.5 硬件环境快速检查清单

每次搭建调试环境前,按这个清单过一遍,能省下不少排查时间:

  1. 供电: LaunchPad 通过 USB 供电,电压 5V,电流至少 500 mA。不要用手机充电器——纹波太大。
  2. 驱动: XDS110 驱动、J-Link 驱动、串口芯片驱动都装好。Windows 下用 Zadig 工具检查驱动是否正确。
  3. 接线: SWD 的 GND 必须接。串口的 TX/RX 不要接反——我犯过这个低级错误,浪费了半小时。
  4. 电平: 确认串口模块是 3.3V 电平。5V 电平会烧坏 CC13xx 的 GPIO。
  5. 测试: 用 SmartRF Studio 或 Uniflash 尝试连接目标芯片。能读到 Device ID 就说明硬件通路通了。

最后说一句: 硬件环境搭建看起来琐碎,但它是整个调试流程的基础。我见过太多人花几周调协议栈,最后发现是串口线接触不良导致日志不全。嗯,先把硬件搞扎实,后面抓包分析才能事半功倍。