第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 开发板的核心要素
- 引出所有 GPIO:多设备协同经常需要外接传感器或执行器。板子如果没引出全部引脚,调试时你会很痛苦。
- 板载调试器:Nordic 的 nRF5340 DK 自带 J-Link,TI 的 LaunchPad 自带 XDS110。别省这个钱,单独买调试器又贵又麻烦。
- 天线接口:最好有 IPEX 座,方便外接天线做射频测试。我见过有人用板载天线做多设备测试,结果距离一远就断连。
- 电流测量跳线:做低功耗产品必备。没有这个,你测功耗得自己焊电阻。
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 多设备协同场景下的选型决策树
你想想看,不同项目对芯片的要求完全不一样。我画了一张决策图,帮你快速定位。
2.5 我的个人选型清单
最后,分享一份我常用的选型清单。每次启动新项目,我都会过一遍。
- 连接数需求:超过 10 个设备?直接看 nRF5340 或 CC2652。ESP32 做 Central 时连接数多了会掉线。
- 功耗要求:电池供电且要求年抛?Nordic 是唯一选择。TI 也不错,但休眠电流比 Nordic 高几个微安。
- 开发周期:3 个月要出样机?用 ESP32,Arduino 生态能帮你快速验证。别在 Nordic 的设备树里耗时间。
- 射频性能:需要穿墙或远距离?CC2652P 的 +20 dBm 发射功率是硬道理。Nordic 需要外挂 PA,成本就上去了。
- 团队经验:团队熟悉哪个平台就用哪个。我曾经强行推 Nordic,结果团队花了两个月才上手,项目延期了。
重要提醒:选型不是一锤子买卖。我建议你至少买两块不同平台的开发板,做一轮 POC 测试再定。芯片选错了,后面所有工作都得推倒重来。