2、硬件选型指南:主流BLE SoC对比、天线设计要点、晶振选型

好,咱们进入第二章。这一章我打算聊聊硬件选型。说实话,很多做固件的朋友觉得硬件是别人的事,选型嘛,随便挑个便宜的、或者用着顺手的就行。但我不这么看。你想想看,芯片选错了,后面天线调不好,晶振起振不稳,你固件写得再漂亮,产品也是白搭。我在项目里吃过不少这种亏,今天把这些经验掰开了讲给你听。

2.1 主流BLE SoC横向对比

目前市面上主流的BLE SoC,说白了就三家:Nordic、TI、Dialog。当然还有Silicon Labs、Cypress这些,但咱们课程聚焦实战,先聊这三家就够了。我个人习惯,选型时主要看三个维度:功耗、射频性能、以及开发环境是否顺手。

对比项 Nordic nRF52840 TI CC2640R2F Dialog DA14531
内核 ARM Cortex-M4F ARM Cortex-M3 ARM Cortex-M0+
Flash/RAM 1MB / 256KB 128KB / 28KB 64KB / 48KB
发射电流 4.8mA @ 0dBm 6.1mA @ 0dBm 3.5mA @ 0dBm
接收灵敏度 -95dBm -97dBm -93dBm
最大发射功率 +8dBm +5dBm +2.5dBm
协议栈 SoftDevice(闭源) TI BLE-Stack(开源) SDK 6(闭源)
典型应用 穿戴、复杂外设 工业、传感器 一次性设备、信标

先说说Nordic。nRF52840是我用得最多的芯片,没有之一。为什么?因为它的资源太丰富了。1MB Flash、256KB RAM,你甚至可以跑个RTOS,再塞个OTA升级,空间都绰绰有余。我记得有一次做智能门锁项目,客户临时要加个语音提示功能,换别的芯片肯定得砍需求,但nRF52840硬是扛下来了。不过它有个坑——SoftDevice是闭源的,调试起来有时候像黑盒,出了问题只能靠猜。

再来看TI的CC2640R2F。TI的强项是射频性能,接收灵敏度能做到-97dBm,这在工业场景里非常实用。我有个朋友做工厂传感器网络,环境里金属架子多、干扰大,用Nordic的芯片老是断连,换了CC2640R2F之后稳如老狗。但它的RAM只有28KB,说实话,写代码时得精打细算,稍微多开几个buffer就爆了。

最后是Dialog的DA14531。这颗芯片主打超低功耗和低成本。发射电流只有3.5mA,待机电流更是低到0.9μA。适合做什么?一次性医疗贴片、蓝牙信标、或者那种纽扣电池要用一年的设备。但它的M0+内核性能有限,复杂应用就别想了。我曾在某个项目中想用DA14531做数据透传,结果发现协议栈占用的资源太多,留给应用的空间捉襟见肘。

选型建议:

  • 如果你做的是功能复杂的可穿戴设备,选Nordic nRF52840。
  • 如果你做的是工业传感器,对稳定性要求极高,选TI CC2640R2F。
  • 如果你做的是低成本、超低功耗的一次性设备,选Dialog DA14531。

2.2 天线设计要点

天线这东西,说难不难,说简单也不简单。很多工程师觉得天线是玄学,调来调去没个准。其实不然,天线设计有章可循。我个人习惯,在PCB布局阶段就把天线的事想清楚,不然后面改板子成本太高。

先讲最常见的两种天线形式:

  • PCB板载天线(如倒F天线、蛇形天线):成本低,不需要额外物料。但占用PCB面积大,且容易受周围器件干扰。
  • 陶瓷贴片天线:体积小,性能稳定,调试简单。但成本稍高,且带宽相对较窄。

我建议初学者先从陶瓷天线入手。为什么?因为省心。你只要按照芯片厂商的参考设计,把天线放在PCB边缘,净空区留够,基本就能用。但如果你追求极致成本或者性能,那就得啃PCB天线了。

这里有几个关键点,我踩过坑,你一定要注意:

天线设计避坑指南:

  • 净空区必须留足:天线下方所有层都不能铺铜,至少留出5mm以上的净空。我曾经为了省空间,在天线底下走了地线,结果灵敏度直接掉了10dBm。
  • 匹配网络不能省:天线和芯片之间一定要加π型匹配网络(两个电容一个电感)。哪怕你算出来阻抗刚好匹配,也留着焊盘。为什么?因为PCB板材的介电常数有公差,实际做出来肯定有偏差,留着匹配网络方便调试。
  • 远离干扰源:天线附近不要放DC-DC电感、高速时钟线、或者大电流走线。这些都会耦合噪声到天线,影响接收灵敏度。

嗯,这里还要提一下天线阻抗。BLE天线标准阻抗是50Ω。你的PCB走线也要控制50Ω阻抗。怎么算?用JLC的阻抗计算工具,或者直接让板厂帮你算。我一般走线宽度控制在0.3mm到0.5mm之间,具体看板厚和层叠结构。

小技巧:如果你不确定天线设计是否合理,可以先打一版样板,用网络分析仪测一下S11参数。S11小于-10dB就算合格。没有网分?那就用频谱仪加一个近场探头,看天线辐射出来的信号强度是否均匀。

2.3 晶振选型

晶振这东西,看着不起眼,但选错了整个系统都跑不起来。BLE对时钟精度要求很高,尤其是高频晶振(一般是32MHz或16MHz),它直接决定了射频载波的频率准确度。

BLE协议规定,射频载波频率误差必须在±50kHz以内。对于2.4GHz频段来说,这相当于要求晶振的精度在±20ppm以内。你想想看,如果晶振偏差太大,两个设备可能连握手包都收不到。

我一般这样选晶振:

  • 高频晶振(32MHz):精度要求±10ppm到±20ppm。负载电容根据芯片手册来,一般是8pF或12pF。温度特性要选工业级的(-40°C到85°C),别省钱选商业级,不然冬天户外设备直接罢工。
  • 低频晶振(32.768kHz):这个用于RTC和低功耗休眠唤醒。精度要求不高,±20ppm到±50ppm都行。但要注意ESR(等效串联电阻),一般要求小于70kΩ。ESR太大的晶振起振困难,甚至不起振。

我曾经遇到过一个案例:产品量产了1000台,结果有30台连不上手机。排查了三天,最后发现是32MHz晶振的负载电容匹配不对。芯片要求12pF,我用了10pF的电容,导致频率偏了30ppm。嗯,从那以后我每次画原理图都要再三确认晶振的匹配电容值。

晶振选型检查清单:

  1. 确认晶振频率和芯片要求一致(32MHz还是16MHz?)。
  2. 确认负载电容值,并计算匹配电容(C1 = C2 = 2 * CL - Cstray)。
  3. 确认精度等级(±10ppm还是±20ppm?)。
  4. 确认温度范围(商业级还是工业级?)。
  5. 确认ESR是否在芯片允许范围内。

最后说一句,晶振的布局也很重要。要尽量靠近芯片的OSC_IN和OSC_OUT引脚,走线要短,两边要包地。别把晶振放在板子边缘或者靠近大功率器件的地方。我见过有人把晶振放在DC-DC电感旁边,结果系统时钟抖得跟心电图似的。

好了,这一章的内容就这些。硬件选型是个经验活,多踩几次坑就记住了。下一章咱们开始讲BLE协议栈的架构,那才是真正烧脑的部分。