
把BS21这颗芯片做成能用的SLE/BLE双模模块难度比想象中高不少。去年项目定下来做星闪模组第一版方案里SLE部分几乎全是照着BLE的经验猜的——毕竟星闪SLE的公开资料和现成参考设计远没有蓝牙那么丰富芯片手册里很多参数又只能走一步看一步。两轮打样、前后三个月从原理图到PCB、从射频匹配到协议共存算是把这条链路彻底摸了一遍。这篇文章不打算复述数据手册而是把我在设计基于BS21的星闪模块电路时踩过的坑、验证过的做法和最后沉淀下来的设计思路完整梳理一遍给同样在做SLE/BLE双模模块的工程师作个参考。1. 选型决策为什么把SLE/BLE双模方案押在BS21上1.1 星闪SLE与BLE到底差在哪里“星闪”这个词这两年出现频率越来越高尤其是智能家居、穿戴设备、汽车电子这些对连接实时性和功耗敏感的场景。但从本质上说SLESparkLink Low Energy和BLE一样工作在2.4GHz ISM频段都属于短距离低功耗无线通信技术只是底层设计思路不同。BLE走的是窄带、跳频、广播配对的路线连接建立过程相对复杂、时延偏大但胜在生态成熟、兼容性极好SLE则更强调低时延、高并发和抗干扰物理层设计上做了不少“减法”和“加法”——减掉冗余信令、简化连接流程加上更灵活的信道分配和更高效的调制方式。这个差异直接影响了模块电路设计。BLE的射频链路经过十几年打磨业界已经形成了非常标准的参考设计照着抄基本不会出大问题而SLE的射频前端和协议栈与BLE并不完全相同不能简单地把BLE那套射频参数直接搬过来。比如SLE在2.4GHz频段上的信道带宽和调制方式与BLE不一样对晶振频率稳定度、接收机灵敏度设计余量都有不同要求。选BS21的一个直接原因是它把SLE和BLE做进了同一颗芯片共用同一个天线、同一套射频前端至少在硬件层面省掉了一颗独立蓝牙芯片的开销。这个集成度对模组的尺寸和成本非常关键。1.2 BS21的资源盘点与模块形态选择BS21的具体型号和封装以海思官方资料为准这里只说设计层面必须重点关注的几个维度。首先是电源域这颗芯片内部包含了射频收发机、协议栈处理器和多种外设接口各部分对供电电压和纹波要求不同模块电路里起码要规划好主电源、IO电源和射频模拟电源这几路不能像设计简单MCU板子那样只在芯片附近丢几个104电容了事。其次是时钟系统BS21需要一颗主时钟晶体给射频收发机提供基准频率同时内部还有低功耗时钟源用于休眠唤醒这两部分电路设计直接决定了后续协议连接性能和休眠功耗表现。模块形态上常见的做法是做一颗邮票孔或LGA封装的贴片模块把晶振、匹配网络、天线或天线焊盘、去耦电容、烧录接口全部集成在一块小板上对外引脚按电源、UART、SPI、I2C、GPIO等分类引出。我第一版选的是PCB天线加邮票孔半孔工艺尺寸做到12mm乘15mm左右这样下游客户既能直接用模块上的天线也可以把天线关闭后通过IPEX座外接天线两种用法都覆盖到。1.3 目标场景与设计约束这款模块的目标场景非常明确在智能家居设备里做低功耗传感节点和上报网关既要用BLE去兼容手机App和存量生态又要用SLE去接入星闪网关实现更快的上报响应和更高的并发承载。这就带来一个传统BLE模块里很少遇到的设计约束——两种协议可能同时在跑硬件上必须保证射频链路在SLE和BLE两种模式下都能达到可用的发射功率和接收灵敏度同时还要防止两种协议互相干扰。这个点我会在第四章专门展开。2. 电源和时钟决定SLE性能上限的两个基础电路2.1 供电拓扑设计LDO与DC-DC的取舍这一节是我在整个设计过程中最想强调的部分。很多做BLE模块的工程师习惯直接用一颗LDO从系统电源降压给芯片供电因为BLE的发射功率本就不大LDO的损耗可以接受而且LDO纹波小、电路简单。但到了SLE场景协议对时延和同步要求更高射频发射时瞬时电流变化比BLE更剧烈供电回路如果响应不过来很容易出现发射瞬间电压跌落直接表现为传导杂散超标或接收灵敏度下降。我在第一版原理图里就是图省事主电源用一颗普通LDO结果频谱仪上发射频谱明显带毛刺排查了半天最后锁定是瞬态跌落引起的。第二版改成DC-DC加后级LDO的级联结构DC-DC先把外部5V或锂电池电压降到3.6V附近保证效率芯片主电源再接一颗低dropout、低噪声的LDO把DC-DC的开关纹波压掉稳定到芯片数据手册推荐的额定值。后级LDO输出端要保留足够的输出电容用来支撑射频发射时的瞬态电流。实测下来这个拓扑在发射功率和频谱纯净度上都有了可感知的改善。2.2 去耦电容布局与地回流去耦电容的布局位置比容值更值得花时间。芯片供电引脚旁边的104电容要尽量靠近芯片电源引脚但很多人忽略的是不同容值电容的分工大容量电容10uF、22uF负责低频能量供给可以放得稍远一些小容量电容100pF、1nF、1uF负责高频去耦必须紧贴电源引脚而且回流到芯片地引脚的环路面积要尽量小。环路面积这个点我在Layout阶段反复提醒自己一句话高频电流走的是最小电感路径不是最短直线路径。地过孔如果打远了几毫米环路电感就会明显变大去耦效果直接打折扣。模拟地和数字地的问题也值得单独说。BS21这类SoC虽然内部已经把RF和数字部分分离但模块设计时如果盲目地切开地平面、分成“射频地”和“数字地”反而容易造成回流路径断裂。我第一版就犯过这个毛病后来验证下来更实用的做法是完整地平面加分区布局。射频部分、晶体部分、数字接口部分各自布置在完整的参考地上同时避免射频走线跨越任何地平面分割缝隙。2.3 主晶体选型与匹配电容的实操计算射频芯片对主晶体的要求比普通MCU严格得多。BLE和SLE都工作在2.4GHz频段参考频率的偏差会直接换算成载波频偏晶体偏差过大时接收灵敏度会急速恶化。我当时选晶体的几个硬指标是频率32MHz、负载电容按芯片手册推荐值、频差控制在正负10ppm以内、优先选温漂特性好的型号。这个组合在量产阶段比较稳不会因为晶体批次差异出现整批频偏超标的尴尬。晶体匹配电容的计算方法可以给一个可复用的思路。理论估算公式是负载电容等于两支匹配电容的串联值再加上杂散电容具体是C_load (C_L1 × C_L2) / (C_L1 C_L2) C_stray其中C_stray是PCB走线和芯片引脚引入的杂散电容一般取1到3pF。假定芯片手册要求负载电容为9pF两支匹配电容都取15pF串联后约7.5pF加上2pF左右的杂散正好接近9pF。注意这只是初始值最终焊上晶体后要用频谱仪或频率计实测实际频偏再微调匹配电容。这个步骤千万别省我当初图快直接按手册初始值出过一批样板结果有十几片连接距离明显变短返工实测发现就是晶体频偏超了。3. 射频链路设计2.4GHz频段上SLE和BLE的共用与分工3.1 从RFIO到天线的整体链路规划BS21的射频输出输入引脚输出的是单端射频信号阻抗50欧姆走线到天线之间需要经过匹配网络。整条链路从芯片RFIO引脚开始依次是ESD防护器件可选、π型匹配网络、天线或天线连接座。这里有个很关键的点SLE和BLE共用同一个RFIO引脚和同一条射频链路匹配网络的设计需要在两种模式的频段需求之间取平衡。好在SLE和BLE都落在2.4GHz频段附近信道范围接近匹配网络对两个协议的性能影响一致按常规2.4GHz宽带匹配来做就行不需要分频段独立匹配。链路规划的损耗预算也要提前算清楚。常规2.4GHz单端走线阻抗控制得好时每厘米插损可以控制在0.1dB以内匹配网络用0402或0201封装的射频电感电容等效串联电阻造成的插入损耗大约0.2到0.5dB如果加ESD保护器件还会增加约0.1dB损耗。全部加到一起模块整机从芯片引脚到天线口的总损耗尽量控制在1dB以内。损耗偏大时发射功率和接收灵敏度的余量都会被吃掉星闪SLE主打的高可靠低时延连接恰恰最怕这种链路损耗。3.2 匹配网络设计与π型拓扑的调试匹配网络我推荐直接采用π型拓扑也就是两支并联电容夹一支串联电感这样调试时留了三个可调位置灵活性最大。初始值可以参考芯片厂商的评估板BOM没有参考就从50欧姆源端、50欧姆负载端的常规匹配起步串联电感2.2nH左右并联电容从1pF起步焊上之后测S11。调试匹配网络最理想的设备是矢量网络分析仪。实验室如果没有VNA用频谱仪加跟踪源也能测回波损耗精度略差但够用。调试核心目标是让S11在2.4GHz频段、尤其是SLE和BLE实际工作信道附近尽量低于负10dB也就是反射系数小于0.316反射功率不超过10%。我第一次调的时候盯着Smith圆图一点一点改匹配元件电容从1.5pF换到2.2pF、电感从3.3nH换到2.7nH前后烧了七八片样板最后在2440MHz附近压到了负18dB左右。匹配元件的选型必须用高频特性的射频电感电容普通厚膜电阻电容不能直接替代。普通电容在2.4GHz下等效串联电感会明显改变谐振点导致匹配失效。电感选Q值尽量高的高频瓷片电容选C0G/NPO温漂特性的。物料尺寸推荐0402空间确实紧张可以局部用0201但0201的手焊和返工难度会明显上升量产贴片倒没问题。3.3 天线选型与净空区设计天线是整个射频链路里最容易被低估的一环。模块形态不同天线方案差别很大PCB板载天线成本最低、集成度最高但对净空区和地平面形状极其敏感IPEX外接天线灵活性强、性能上限高但要增加连接器和线缆成本陶瓷天线体积小带宽和效率通常低于同尺寸的PCB天线。我第一版做的是PCB倒F天线按2.4GHz的常规尺寸估算预留了差不多15mm乘6mm的净空区。这里特别要提醒的是天线的净空区不仅指天线下方没有铜皮还包括天线四周一定范围内不要放置金属器件和地平面。我在第一版里把天线旁边放了一颗晶振和一个金属屏蔽框屏蔽框离天线净空区边缘不到3mm结果整机灵敏度比预期差了4到5dB后来把屏蔽框移远、把天线旋转90度才恢复正常。这个教训值两版PCB的钱。如果模块留给天线的空间实在紧张我会优先建议走“邮票孔射频焊盘加IPEX座”的路线把天线放在主板上而不是硬塞进模块。模块上只出50欧姆射频走线到焊盘或座子主板端用同轴线连接天线。这种方案性能最可控只是对下游客户的主板设计能力提出了一定要求。4. SLE与BLE共存同一个模块里两种协议怎么和平共处4.1 共存冲突的本质同频段下的时频竞争这可能是BS21模块设计里最特殊、也最容易被忽视的部分。SLE和BLE都工作在2.4GHz频段信道范围高度重叠。BLE使用40个2MHz宽的信道SLE的信道规划虽然和BLE不同但频段资源是同一个不可能做到完全不重叠。如果SLE和BLE同时收发射频前端在同一时刻只能服务一个协议这就是共存冲突的本质。共存冲突有两种典型表现。第一种是频域冲突SLE和BLE恰好落在相邻或重叠信道上能量互相干扰第二种是时域冲突两种协议的收发时隙在时间上撞在一起芯片内部射频前端被占用只能放弃其中一个包的接收或发射表现为丢包率上升和重传增加。BS21作为双模SoC内部有共存仲裁机制但硬件设计不到位时仲裁再聪明也救不回来。4.2 硬件层的隔离与共享设计硬件层面能做的主要有三件事。第一是保证射频链路在SLE和BLE两种模式下都有足够的线性度避免匹配网络反射过大导致接收机在强干扰场景下饱和。第二是供电和地的干净程度数字接口的噪声如果耦合到射频供电上会让SLE和BLE的接收底噪同时抬高我在实测频谱上见过这种问题噪声底整体抬高后两种协议的灵敏度都会下降。第三是外设接口的信号完整性UART、SPI这些数字信号如果走线过长且没有完整的参考地会通过空间辐射耦合到射频部分形成额外干扰源。还有一个很实用的做法如果系统里同时有Wi-Fi或者其他2.4GHz设备在主板上预留一个外部共存接口比如传统的COEX三线接口用来和Wi-Fi芯片做时分仲裁。虽然BS21本身是SLE/BLE双模但不代表它不会受到其他2.4GHz设备的干扰预留Coex接口的成本几乎为零却给后期系统集成留了很大的调整空间。4.3 协议调度参数与连接流程的配合协议层面的共存优化很大程度上依赖芯片SDK和协议栈的配置能力。BLE的连接间隔、从机延迟这些参数不只是功耗优化的手段也可以用来给SLE让出时隙。我自己在测试中发现当BLE连接间隔设置得比较短比如7.5ms时SLE的周期性上报时延会出现明显抖动把BLE连接间隔拉长到30ms左右再把SLE的广播间隔和连接事件错开配置两者的上报时延都稳定了很多。这个调节过程需要结合具体业务场景去平衡——BLE连接间隔拉长BLE本身的响应实时性会下降对手机App那种交互场景就不太友好。从热词里的“BLE连接过程”和“uni-app BLE iOS根据deviceid建立连接”也能看出一个现实问题模块的BLE兼容性直接影响手机App侧的连接体验。BLE连接过程大致是广播、手机扫描、发起连接请求、连接参数协商、服务发现这几个阶段。iOS系统对广播间隔、连接参数有比较严格的限制如果模块端把广播间隔设得太窄或者连接参数不符合iOS规范就会出现“iPhone 13能搜到但连不上”这种经典问题。我在模块的参考配置里把广播参数和连接参数的推荐值做成了一套默认设置确保下游App用uni-app这类跨平台框架按deviceid去连接时iOS和Android的行为能保持一致。5. PCB Layout与打样射频电路最容易翻车的地方5.1 射频走线的阻抗与参考地控制Layout做得好不好基本决定了射频性能的天花板。射频走线从芯片RFIO引脚出来经过匹配网络再到天线焊盘全程必须按50欧姆控制阻抗。两层板设计时通过控制线宽和到参考地平面的距离来实现50欧姆。我这边2层板、板厚1.0mm、铜箔到地平面距离约0.6mm这种常规叠层时走线宽度大概做到0.6mm如果换成4层板参考地就在相邻层线宽一般会更细具体值需要用阻抗计算工具按板材介电常数和叠层结构算一遍再定。走线形状上射频线要尽量短、尽量直不要出现90度直角和尖锐拐角拐角用45度斜角或圆弧过渡。两条射频走线不要平行跑长距离以免互相耦合。匹配网络里电感电容的摆放方向尽量一致且不要跨接到参考地平面的分割线上否则回流路径被切断匹配效果全废。5.2 数字与射频分区、过孔缝合模块里既有射频部分又有UART、SPI、I2C、GPIO这些数字接口Layout时要把两类电路在物理上分区。我的做法是射频链路RFIO引脚、匹配、天线放在板边一侧晶体放在靠近芯片的另一侧数字接口连接器和测试点集中在第三侧保证数字信号不会横穿射频区域。芯片正下方保持完整地平面作为所有高频回流的公共参考。地过孔缝合是个容易被忽略但极其关键的细节。地平面上的过孔如果太稀疏会造成不同区域的地电位不一致高频回流会绕远路等效于增加回路电感。模块面积就那么大我习惯在芯片地引脚周边、射频走线两侧、天线焊盘周围这几个位置每隔1到2mm打一个地过孔形成一道“过孔墙”。这个操作成本极低但对射频指标和EMC表现的改善非常明显。5.3 打样阶段必须留的调试接口打样PCB之前一定要把调试接口留足别觉得浪费面积。至少要有这几样第一射频输出端到天线之间预留一个0欧电阻或焊盘断点方便断开天线做传导测试第二电源主路上预留电流测试焊盘或跳线方便测量工作电流和休眠电流第三芯片的SWD或UART烧录调试接口引到测试点或邮票孔上第四晶体附近预留频率测试点方便验证起振和频偏。这些看起来都是小事但在调试阶段能省大量时间。我第一版打样就是因为没预留射频断点每次测传导指标都得拿刀片割走线测完再飞线来回几次板子就废了。第二版加了0欧断点后调试效率至少翻了一倍。6. 调试、测射频与量产问题排查6.1 从样板到射频指标的正确调试顺序拿到样板后调试顺序很重要。我建议按“电源、时钟、固件、射频传导、天线辐射、共存”这个顺序来不要一上来就测连接距离。先确认各路电源电压和纹波正常再确认晶体起振且频率在容差范围内然后烧录最小固件确认芯片运行正常接着在射频断点处做传导测试此时天线端接假负载或直接断开测发射功率、频偏、S11和接收灵敏度通过后再接回天线测整机辐射性能最后才测SLE/BLE共存场景下的丢包和时延表现。这个顺序能最大限度缩短问题定位范围不然每一步都是黑盒。6.2 实测中踩过的典型坑第一版样品测试遇到几个典型问题按排查链路还原一下。第一个是发射功率上不去。频谱仪显示发射功率比芯片手册标称值低了3dB最开始怀疑匹配网络插损太大但用VNA测下来链路插损只有0.4dB排除。后来查供电发现射频发射瞬间电源电压跌落超过200mV把去耦电容从2.2uF加大到10uF、并调整了LDO输出电容后发射功率才恢复到正常。这个问题的教训是遇到功率异常要敢于怀疑供电动态响应而不是只盯着静态电压。第二个是接收灵敏度差。样板放在同一位置SLE接收灵敏度比评估板差了5dB。排查链路是这样的先查匹配S11正常再查晶体频偏在范围内最后发现是天线净空区旁边的屏蔽框降低了天线效率把屏蔽框移动后恢复正常。这就是典型的“电路没问题、结构背锅”所以Layout阶段就一定要把结构件和天线的相对位置确认清楚。第三个是SLE和BLE同时工作时丢包率上升。排查后发现SDK的共存策略默认没开启。把共存仲裁使能打开、再配合调整BLE连接间隔后丢包率明显下降。这里想说的是芯片能力往往是够的但默认配置不一定适合你的具体场景一定要把共存相关的配置逐项过一遍再定型。6.3 一致性控制与产测方案从样板走向量产一致性是最关键的一道坎。物料端要指定晶体频差、电感电容的精度和温漂等级PCB端要控制板材批次一致性换板材供应商必须重新做阻抗验证生产端要避免RF走线附近被过度维修和返工。产测方案上至少做到全检三项射频基本项发射功率、载波频偏、接收灵敏度可以用PER或RSSI替代全灵敏度测试来节省时间这三项基本可以覆盖一致性风险的大部分。有余力的话增加天线辐射方向性的抽检确保贴片天线的焊接一致性。最后再分享一个量产阶段的实际体会产测工位的测试环境一定要固定天线耦合板的位置、测试线缆型号、频谱仪设置都要做成标准化作业指导书。我遇到过产线反馈某批次灵敏度集体偏低折腾两天最后发现只是测试线缆换了一根更长的插损差了1dB。这类问题跟芯片和电路设计没关系但处理起来最耗时间。预留好产测位、固化测试条件比在实验室里调出再好的指标都更能保证出货质量。