第2章 硬件选型与开发板:主流蓝牙芯片对比与选型指南

做多设备蓝牙协同,第一步就是选芯片。这事儿我吃过不少亏。

早些年我做一款智能家居网关,拍脑袋选了某款芯片,结果开发到一半发现广播包长度不够用,多设备组网时拓扑也受限。最后只能换平台,三个月白干。所以这一章,咱们把主流蓝牙芯片掰开揉碎聊清楚。

2.1 三巨头:Nordic、TI、Espressif

目前做蓝牙多设备协同,绕不开这三家。我个人的项目经验里,它们各有各的脾气。

维度 Nordic (nRF52/53系列) TI (CC26xx/CC13xx) Espressif (ESP32系列)
蓝牙协议栈成熟度 业界标杆,SoftDevice 稳定 BLE-Stack 功能完整 Bluedroid + NimBLE,双栈可选
多连接能力 nRF5340 支持 20+ 连接 CC2652 支持 16+ 连接 ESP32 典型 8-10 连接
开发工具链 nRF Connect SDK + VS Code CCS + SysConfig ESP-IDF + Arduino
功耗 极低,适合电池设备 低,有电源管理框架 中等,WiFi 共存时偏高
成本 较高($3-8) 中等($2-5) 极低($1-3)
社区生态 官方文档好,社区活跃 E2E 论坛,资料偏工程 中文资料多,上手快

我的建议:如果你做的是可穿戴或传感器节点,Nordic 是首选。如果产品需要同时跑 BLE 和 Wi-Fi,Espressif 性价比最高。TI 则适合工业级、对稳定性要求极高的场景。

2.2 各芯片的「多设备协同」实战表现

2.2.1 Nordic nRF5340

这是目前我最常用的芯片。双核架构——一个跑蓝牙协议栈,一个跑应用逻辑。多设备协同场景下,它的优势很明显。

  • 多角色并发:可以同时做 Central 和 Peripheral。我在一个项目中用它同时连接 12 个传感器节点,还作为 Peripheral 向手机广播数据。
  • 广播扩展:支持 BLE 5.x 的扩展广播,数据包长度可达 255 字节。做信标同步时,这个特性太关键了。
  • Zephyr RTOS:nRF Connect SDK 基于 Zephyr,多线程管理方便。但学习曲线有点陡,我刚开始也被设备树折腾过。

避坑:nRF5340 的 QSPI Flash 驱动在早期 SDK 版本有 bug,会导致多设备同步时数据丢失。记得升级到 nRF Connect SDK v2.4.0 以上。

2.2.2 TI CC2652P

TI 的芯片给我的印象是「稳」。CC2652P 内置 PA,发射功率可达 +20 dBm,穿墙能力很强。

  • 多协议支持:BLE + Zigbee + Thread 共存。如果你做网关类产品,一颗芯片搞定所有无线协议。
  • SysConfig 工具:图形化配置引脚和协议栈,省了不少事。但我个人觉得它生成的代码有点冗余,后期优化需要手动改。
  • 低功耗表现:TI 的电源管理框架很成熟。我曾经用 CC2652 做温湿度标签,一颗 CR2032 电池跑了 18 个月。

注意:CC2652 的 BLE 协议栈是闭源的。遇到底层 bug,你只能等 TI 发补丁。我在一个项目中遇到过连接间隔漂移的问题,折腾了两周才等到官方修复。

2.2.3 Espressif ESP32-C3 / ESP32-S3

Espressif 这几年进步很快。ESP32-C3 是 RISC-V 架构,成本低,适合做蓝牙网关或中继节点。

  • 双栈灵活:Bluedroid 功能全但内存占用高,NimBLE 轻量但功能少。我一般用 NimBLE 做多设备协同,内存省一半。
  • WiFi 共存:ESP32 同时跑 BLE 和 WiFi 时,需要做共存优先级配置。否则 BLE 广播包会被 WiFi 挤掉。
  • 开发效率:ESP-IDF 的组件化设计很好,而且有 Arduino 支持。原型验证阶段,我经常用 Arduino 快速搭 demo。

我的经验:ESP32 做多设备 Central 时,建议把 BLE 连接数控制在 8 个以内。超过 10 个连接,CPU 负载会飙到 80% 以上,影响其他任务。

2.3 开发板选型指南

芯片选好了,开发板怎么挑?我踩过不少坑,总结几条实用原则。

2.3.1 开发板的核心要素

  1. 引出所有 GPIO:多设备协同经常需要外接传感器或执行器。板子如果没引出全部引脚,调试时你会很痛苦。
  2. 板载调试器:Nordic 的 nRF5340 DK 自带 J-Link,TI 的 LaunchPad 自带 XDS110。别省这个钱,单独买调试器又贵又麻烦。
  3. 天线接口:最好有 IPEX 座,方便外接天线做射频测试。我见过有人用板载天线做多设备测试,结果距离一远就断连。
  4. 电流测量跳线:做低功耗产品必备。没有这个,你测功耗得自己焊电阻。

2.3.2 各平台推荐开发板

芯片平台 推荐开发板 价格(约) 适合场景
Nordic nRF5340 nRF5340 DK $49 多设备组网、可穿戴
Nordic nRF52840 nRF52840 DK $35 入门学习、传感器节点
TI CC2652P LAUNCHXL-CC26X2R1 $29 工业网关、多协议产品
Espressif ESP32-C3 ESP32-C3-DevKitM-1 $5 低成本网关、原型验证
Espressif ESP32-S3 ESP32-S3-DevKitC-1 $10 AIoT、音视频协同

我的建议:如果你是初学者,从 nRF52840 DK 入手。资料多、社区活跃、坑少。等做多设备协同项目时,再升级到 nRF5340 DK。

2.4 多设备协同场景下的选型决策树

你想想看,不同项目对芯片的要求完全不一样。我画了一张决策图,帮你快速定位。

多设备蓝牙芯片选型决策树 蓝牙多设备协同项目 低功耗传感器节点 多设备网关/中继 工业级多协议设备 推荐:nRF52840 备选:CC2652 推荐:ESP32-S3 备选:nRF5340 推荐:CC2652P 备选:nRF5340 选型要点: • 节点数 < 8 且成本敏感 → ESP32-C3 • 节点数 > 12 且需要低功耗 → nRF5340 • 需要多协议共存 → CC2652P • 原型验证阶段 → 选开发板资料最全的

2.5 我的个人选型清单

最后,分享一份我常用的选型清单。每次启动新项目,我都会过一遍。

  • 连接数需求:超过 10 个设备?直接看 nRF5340 或 CC2652。ESP32 做 Central 时连接数多了会掉线。
  • 功耗要求:电池供电且要求年抛?Nordic 是唯一选择。TI 也不错,但休眠电流比 Nordic 高几个微安。
  • 开发周期:3 个月要出样机?用 ESP32,Arduino 生态能帮你快速验证。别在 Nordic 的设备树里耗时间。
  • 射频性能:需要穿墙或远距离?CC2652P 的 +20 dBm 发射功率是硬道理。Nordic 需要外挂 PA,成本就上去了。
  • 团队经验:团队熟悉哪个平台就用哪个。我曾经强行推 Nordic,结果团队花了两个月才上手,项目延期了。

重要提醒:选型不是一锤子买卖。我建议你至少买两块不同平台的开发板,做一轮 POC 测试再定。芯片选错了,后面所有工作都得推倒重来。