☰
基于KiCad的双LLCC68 LoRa透传板设计:原理图、PCB到打样调试全流程
2026/10/7 13:46:07 网站建设 项目流程

从原理图到实物,把一颗LLCC68变成一对能用的LoRa串口透传板,对很多硬件新手来说是一道不低的门槛。我这次用KiCad 7.0画了两块双通道LoRa透传板,在嘉立创下单打样,回来手工焊接、烧录、调射频,整套流程走下来确实踩了不少坑。这篇文章就把从原理图设计、PCB布局、Gerber导出、嘉立创下单到焊接调试的完整过程记录下来,适合正准备用KiCad做第一块射频板的同学参考。

文章不会只讲“步骤”,我会把每个关键决策背后的原因也讲清楚,比如为什么选LLCC68而不是SX1278,为什么双通道要共用一个SPI总线,为什么天线底下要挖空铺铜,为什么打样时要额外选阻抗控制。这些都是实操中真正影响结果的东西,网上零零散散能搜到一些,但串成一条完整的链路,还是得自己走一遍才记得牢。

1. 项目概述与整体设计思路

1.1 为什么是LLCC68:低功耗LoRa芯片的选型逻辑

LLCC68是Semtech推出的一款远距离低功耗无线收发器,支持LoRa和FSK调制方式,频率范围能覆盖150MHz到960MHz,接收灵敏度在SF12、125kHz带宽下能到-137dBm左右。它最大的特点是功耗低、外围简单、价格比同系列的高配芯片便宜,特别适合做电池供电的传感器数据回传、无线串口透传这类中低速率的物联网应用。

很多人会拿它跟SX1278、SX1262对比。SX1278是上一代经典方案,LoRa特性大家都熟悉,但它的FSK性能和唤醒机制相对落后,且对低功耗场景的支持不够细致。SX1262则是SX126x系列里的满配版本,发射功率可以拉满到+22dBm,实际做远距离测试时功率余量更足,但价格也更高。LLCC68正好卡在中间,发射功率也能到+22dBm左右(实际按法规限制配置),但价格更亲民,灵敏度稍逊于SX1262却远好于老一代方案,是“够用且划算”的典型。

我从实用角度做了个简单对比,方便你选型:

芯片调制方式最大发射功率接收灵敏度典型成本适用场景
SX1278LoRa/FSK+20dBm约-137dBm较低入门级LoRa项目、传感器上报
LLCC68LoRa/FSK约+22dBm约-137dBm中等低功耗透传、双通道中继、抄表
SX1262LoRa/FSK+22dBm约-137dBm较高网关、高功率远距离链路

1.2 “双”字的含义:单板双通道的透传架构

标题里的“双LLCC68”,很多人第一反应是“做两块板子”。其实我这次做的是一块板上焊两颗LLCC68,实现双射频通道的架构。为什么要这么设计呢?最直接的应用是中继和双向并发。

两颗LLCC68挂在同一个STM32的SPI总线上,每颗芯片有独立的NSS片选、RESET复位、DIO1中断、BUSY状态引脚,主控通过GPIO分别控制它们。这样A通道可以接收远端数据,B通道可以同时向另一方向发送数据,两条链路互不阻塞,天然适合做无线串口网关或者双频段转发节点。假如你只需要点对点透传,也可以只焊一颗芯片,这块板子同样能用,设计上没有浪费。

数据流其实很简单:串口收到字节 -> MCU缓存 -> 通过SPI把payload写给LLCC68 -> LoRa空中发送;远端LLCC68收到帧 -> DIO1中断通知MCU -> MCU读回payload -> 从串口发出去。做透传时,用户完全感觉不到LoRa的存在,就像一根“无线延长串口线”。

"双通道"的另一个好处是灵活性。比如把A通道配置成433MHz,B通道配置成868MHz,两块板子交叉组网,就能实现跨频段转发,这在多片区组网时特别实用。当然频率使用必须遵守当地无线电管理规定,这点后面会提到。

1.3 这套板子能用在哪些场景

做硬件如果只为了“点亮一颗LED”其实没什么意思,落地场景才是项目的价值所在。我当时做这块板的出发点,是想给老家院子里的环境监测设备做远程数据回传。传感器节点用STM32L0采集温湿度,通过串口接到LoRa透传板,数据发到屋里的接收端,再通过USB串口连到电脑上。

这类需求总结下来有几个典型场景:

  • 无线数传替代RS232/RS485线缆,比如设备调试、工业数据采集。
  • 电池供电的传感器节点回传,低功耗模式下待机电流能压得很低。
  • 楼宇或园区里的无线抄表,数据量小、传输间隔长。
  • 小型机器人遥控链路,双通道可以一个通道传控制指令、一个通道回传遥测数据。
  • 学习LoRa通信协议和射频PCB设计,这套板子麻雀虽小五脏俱全。

如果你也想做出能真正跑起来的板子,而不是只停留在“仿真跑通”的阶段,这个项目的完整度是够的。

2. 原理图设计:从LLCC68外围到主控电路

2.1 主控选型与最小系统电路

主控我选了STM32L071CBT6。这颗芯片是Cortex-M0+内核,主频32MHz,内置192KB Flash和20KB RAM,拥有2个SPI、多个UART,低功耗模式做得非常好。选它的核心原因是LLCC68这种芯片本身就适合低功耗透传场景,主控如果功耗太大,整体就白搭了。

不过如果你手里STM32F103C8T6比较多,直接换上去也完全可以,引脚兼容性需要自己核对一下。F103的功耗虽然高一些,但胜在资料多、好调试,做原型验证没问题。

供电方案用的是典型的三端LDO方案:5V输入经ME6211稳压到3.3V,输出端并一个10uF和100nF电容。LLCC68工作在2.4V到3.7V,3.3V供电是没问题的。板子上我还加了一个USB转串口芯片CH340E,这样从电脑USB线插上去,既能供电,又能直接映射出一个串口用于透传测试,省去外接USB-TTL的麻烦。

主控的外围电路看着多,其实每一部分都有明确用途:

  • SWD四线接口:PA13/PA14用于烧录调试,最好加上拉电阻。
  • 复位电路:10k上拉加100nF电容,简单可靠。
  • 启动引脚BOOT0:10k下拉到地,正常从Flash启动。
  • 状态LED:PA1和PA2接两颗LED,分别指示两路LoRa的收发状态。
  • 按键:一个复位键加一个用户按键,用于触发发送测试。

2.2 LLCC68最小系统与匹配电路

LLCC68的最小系统看起来不复杂,但每一根引脚都不能含糊。供电脚(VDD/VDDA)需要就近放100nF去耦电容,VBAT引脚处再加一个10uF大电容;32MHz晶振接在XTA/XTB上,如果你想获得更好的频率稳定度,可以直接用TCXO有源晶振,代价是成本高一些、多一路供电控制。

射频输出是RFI/RFO引脚。LLCC68内部已经把PA和LNA集成好了,外部只需要搭一组巴伦匹配网络把差分信号转成单端50欧姆。这个匹配网络参考Semtech官方的参考设计来画,电感和电容的值跟目标频段强相关,不要直接抄网上的“通用值”。我当时第一版就是因为图省事抄了一组433MHz的值用在868MHz上,结果距离只有几十米,惨痛教训。

DIO1是芯片的中断输出引脚,接到MCU的EXTI外部中断引脚上,用来判断发送完成和接收中断。BUSY引脚是忙状态输出,所有的SPI读写操作都必须等到BUSY为低才能进行,这是个非常容易踩的时序坑。NSS、SCK、MOSI、MISO作为标准SPI接口,直接连主控。

两颗LLCC68共用一个SPI总线时,每颗芯片的NSS、RESET、DIO1、BUSY必须独立接到MCU不同的GPIO上。原理图里我用了KiCad的层次原理图功能,画了一份LLCC68子图,然后实例化两次,这样改一处就能同步更新两路,比复制粘贴整个电路高效得多。

2.3 串口透传侧电路与电平转换

串口透传是项目的“功能核心”,所以我把串口电路做成了两路:一路接CH340E走USB,另一路通过排针引出UART_TX/UART_RX,方便直接跟其他TTL电平设备对接。需要注意的是,LLCC68的SPI是3.3V逻辑,CH340E也是3.3V逻辑,两块芯片之间可以直接连,不用做电平转换。

但如果你外接的传感器模块是5V逻辑,就一定要加电平转换电路或者分压电阻,直接接会把STM32的引脚打坏。我常用的方案是两颗BSS138 MOSFET组成的双向电平转换电路,效果稳定,成本也低,适合UART、I2C这类双向信号。

串口透传的缓冲区设计也要提前想好。MCU一次从UART收到的数据长度是不确定的,最短可能只有一个字节,最长可能上百字节。我用了一个256字节的环形缓冲区,串口中断把数据丢进缓冲区,主循环再检查缓冲区里的数据长度,一旦满足“当前没有LoRa帧在发”就把数据打包成帧发送出去。这样既不会丢数据,也不会频繁地一个小包一个小包地发送。

另一路串口则是LLCC68收到数据后,MCU从SPI把payload读出来,再通过USART发送出去。两端各配一个USB-C口,插电脑就能当无线数传模块用。

2.4 KiCad 7.0里的原理图绘制操作记录

KiCad 7.0相比之前版本,原理图编辑器的体验已经相当成熟。我并不是从零开始画的,而是先查了Semtech官方有没有LLCC68的KiCad符号。实际上一部分厂商已经在Ultra Librarian、SnapEDA这些元件库平台上传了现成符号和封装,直接导入再用,比自己画省力得多。

如果官方库里确实找不到,那就得自己画符号。打开Symbol Editor,新建一个Symbol,按数据手册把每个引脚的编号和名称填进去,重点是把引脚类型标对:输入、输出、电源、地、无源。LLCC68是QFN-24封装,一共24个引脚,引脚编号从左上角开始逆时针排列,画的时候注意和封装的引脚一一对应。

画完符号后,我建议做一次电气规则检查(ERC),KiCad会提示未连接的引脚、输出冲突、电源引脚没接等问题。我第一次检查报了一堆“Power pin not driven”的警告,排除掉没用的保留引脚之后,剩下的问题基本都能在检查阶段解决掉,比等PCB做完再发现问题成本低得多。

另外,双通道设计里两片LLCC68的射频部分完全相同,我把这部分电路做成了层次原理图子图。在KiCad里右键新建层次图纸,把LLCC68部分挪进去,放两个图纸实例,只画一份电路,两份自动同步。后续改匹配参数时只改一处,非常省事。

3. PCB布局与布线:让射频信号“听话”

3.1 叠层选择和50欧姆阻抗计算

射频PCB设计和普通数字板最大的区别,就是走线的阻抗是“设计出来的”,不是随便拉一根线就行。LLCC68的RF输出经过匹配网络后变成50欧姆单端信号,这段走线到天线座之间的阻抗必须控制在50欧姆附近,否则信号会在走线上反射,距离和灵敏度都受影响。

双层板1.6mm厚度、FR4板材是目前嘉立创打样最常用的工艺。在这个叠层下,50欧姆微带线的线宽大概在0.3mm到0.4mm之间,具体取决于板材的介电常数。FR4的Er通常在4.2到4.6之间,不同厂家批次会有差异,所以不能光记一个“0.35mm”就完事。

我实际用的方法是,打开KiCad自带的PCB计算器(Tools -> Calculator Tools -> Transmission Lines),选择Microstrip模型,填入板厚1.6mm、铜厚1oz、介电常数4.5,算出目标阻抗50欧姆时的线宽。同时打开嘉立创的在线阻抗计算工具,用嘉立创官方叠层参数复核一遍,两者交叉验证后取一个中间值,再把走线宽度在PCB编辑器里用规则约束锁定。如果你走的是四层板,选择JLC04161H-3313这类指定叠层,用内层参考地,阻抗控制会更稳定。

射频走线除了线宽,还要注意走线下方必须有完整的地平面。双层板的话,底层尽量保持完整铺铜,不要在射频走线正下方开槽走别的信号线。走线要尽量短、尽量直,不要有直角转弯,45度角或圆弧角都行,过孔越少越好。

3.2 天线净空和地平面处理

天线部分是射频板最容易翻车的区域。很多人画完PCB,习惯性地把整个板子铺满铜,结果天线正下方全是地,信号全被铜皮吸收了,距离怎么调都上不去。

正确的做法是天线区域要净空。如果天线是板载PCB天线,那当天线区域放在板边时,顶层和底层都不能铺铜,且在走线边缘打一圈过孔把地平面包裹起来,形成一个相对干净的辐射区域。如果天线是弹簧天线或者SMA外接天线,那SMA座的信号脚走一段50欧姆微带线到匹配网络,SMA座周围的接地脚要打足够多的过孔,把外壳地和PCB地充分连接。

天线摆放位置也要注意。尽量放在板边或者角落,周围不要有大的金属件遮挡。两块板卡如果要做叠层结构,天线附近也要留出至少10mm的空间,否则天线辐射方向图会变形,通信距离明显下降。

我当时打样的第一版,把天线放在了板子中间,周围全是地过孔,结果两块板子隔着两米都能丢包。后来把天线挪到板边、净空区完全隔开,距离立刻上去了。这个教训花了我两周时间,写出来希望你能避开。

3.3 关键信号布线与电源走线的经验

在KiCad 7.0里画完原理图,导入PCB后,我习惯先固定板框尺寸,然后按功能模块分区布局。两块LLCC68以及它们各自的匹配网络要放在距离天线座最近的方向,主控放中间,电源、USB接口、串口放另外一侧。这样射频链路最短,数字部分和射频部分的干扰也最小。

SPI信号的布线要注意SCK、MOSI、MISO这三根线尽量靠近走、长度不要差太多。LLCC68的SPI速率一般配置在1MHz到8MHz之间,对等长其实并不苛刻,但保持短而整齐更好。MISO是LLCC68输出到主控的信号,如果走线太长而且旁边有高频数字信号,建议加一个小电阻做源端匹配,减少振铃。

DIO1和BUSY这两根线虽然只是状态信号,但DIO1是中断信号,走线尽量远离射频部分,避免被LoRa载波干扰导致误触发。BUSY的时序如果被干扰,SPI读写就可能失败,所以也建议加10k上拉电阻。

电源路径我用的是星型接地思路。整个板子只有一个0欧姆电阻作为数字地和射频地的单点连接点,数字电路的工作电流不经过射频地的参考平面。电感和电容组成的LC滤波单独放在LLCC68的电源引脚附近,数字部分的大电流走线不跟射频电源线平行走,减少耦合。

晶振的布线也要注意。32MHz晶振下面不要走其他信号线,晶振周围用地铜皮包一圈,接地过孔尽量多,避免晶振的辐射干扰射频接收灵敏度。我当时给晶振周围打了8个过孔,虽然有点夸张,但波形确实干净很多。

3.4 KiCad 7.0布局布线实操技巧

KiCad 7.0的交互式布线功能已经很好用了,但我还是想分享几个被不少人忽略的细节。

第一,铺铜时要用“Filled Zones”,而不是随便画一个矩形再重新铺铜。KiCad里铺铜区的属性要设置好所属网络(一般是GND)、清空间距(clearance,常规0.25mm)、以及是否覆盖过孔和焊盘。铺铜完成后一定要按B键重新填充,不然你看到的只是边框。

第二,天线净空可以用“Keepout”区实现。在KiCad里放置Keepout,选择所有层或指定层,禁用走线和铺铜,这样DRC会自动检查并警告“zone fill”越界。

第三,布线时尽量打开“Highlight Net”功能,按G键高亮网络。画完射频线后,用高亮检查阻抗线是否被过孔打断、是不是有直角、底层有没有信号线横穿。

第四,DRC设置里要开启断线、短路、未连接引脚、丝印压焊盘等常见检查项。KiCad的DRC结果里,有些警告(比如丝印压阻焊)虽然不影响电气性能,但会影响嘉立创的丝印可读性和可焊性,最好一并修掉。

最后是3D查看器。KiCad 7.0的3D查看器可以加载STEP模型,把QFN封装、USB座、天线座的3D模型导进去,检查元件高度是否冲突。我第一版设计没看3D,结果USB座和板边太近,插线时塑料壳顶到板边,只能重新改板。这个习惯养成后,改板次数明显减少了。

4. 从KiCad到嘉立创:Gerber导出与下单流程

4.1 Gerber导出步骤与注意事项

KiCad 7.0导出Gerber的步骤比旧版本更简单,但仍容易出错。我用的路径是“文件 -> 制图(Plot)”,在格式里选“Gerber X2”,然后勾选需要导出的层。两层板的话,至少要包含F.Cu、B.Cu、F.Mask(顶层阻焊)、B.Mask(底层阻焊)、F.SilkS(顶层丝印)、B.SilkS(底层丝印)、Edge.Cuts(板框)这几层。

钻孔文件也别忘了。在绘图窗口里点“生成钻孔文件”,格式选Excellon,单位选毫米,小数位数至少4位。导出钻孔文件后,KiCad会生成一个.pos文件,这是坐标文件,嘉立创在贴片或核对位号时会用到。

导出之后一定要用Gerber Viewer复核一遍。KiCad自带Gerber Viewer,打开所有层,重点检查板框是否闭合、钻孔和焊盘是否对位、丝印有没有跑到板框外面。如果你不放心,也可以把Gerber压缩包传到嘉立创的在线CAM预览里看一眼,免费而且特别直观。

我习惯把导出的所有文件集中放在一个文件夹里,用压缩软件打成zip,命名格式是“ProjectName-Gerber-日期”。压缩包内不要嵌套子文件夹,嘉立创下单系统对嵌套目录支持不太好,容易识别不到文件。

4.2 嘉立创打样下单流程全记录

嘉立创打样流程非常成熟,网页端注册之后,点“PCB打样”上传Gerber压缩包。系统会自动识别板子的层数、尺寸和数量,这一步通常很准。

参数设置上,我这次用的是2层板、1.6mm板厚、默认1oz铜厚、绿色阻焊、白色丝印、表面处理选喷锡。这些选项里,阻焊颜色和表面处理是影响价格的主要因素,绿色和喷锡是免费的。如果你是做小批量验证,这套配置性价比最高。

如果你走50欧姆射频线,下单时一定要勾选“需要阻抗控制”选项。嘉立创会根据你选的叠层和线宽/线距来核对阻抗,如果线宽跟他们的工艺参数对不上,客服会主动联系你调整。这里关键点在于,你设计时用的介电常数和层厚参数,必须跟嘉立创实际用的板材一致,不然算出来的线宽在工厂实际生产时阻抗会偏。

免费打样规则也要摸清楚。每个月有两次免费打样机会,尺寸不超过10x10cm,5片以内。超过这个规则就按正常价格计费。我这次板子尺寸控制在8cm x 6cm以内,刚好卡在免费范围内,5片完全够用。

发货周期方面,普通打样一般是2到3天发货,顺丰快递到手大概总共一周。如果你急用,还有加急选项,但费用高不少。第一批打样,建议不要加急,多花点时间检查Gerber,远比早一两天到手然后发现错误划算。

4.3 拿到板子后的第一轮检查

板子到手别急着上电,先用万用表做几项基础检查。第一步是电源对地短路测试,在3.3V电源网络和GND之间量一下,正常应该在几百欧姆以上,如果接近0要么是焊接短路,要么是PCB本身有问题。第二步是检查天线座、USB座和按键的机械安装是否牢固。第三步是目检板子有没有明显的划痕、铜皮脱落、过孔堵塞。

射频板还有一个特殊检查项:用放大镜检查匹配网络区域有没有间距不足、焊盘桥连、过孔伤盘。射频器件都是0402封装,手工焊的时候很容易连锡,上电前发现还能补救,上电后发现问题往往就已经烧了芯片。

确认没问题后,先用USB线供电,量一下LDO输出是不是3.3V。如果电压正常,再用万用表量两片LLCC68的VDD引脚是不是都有3.3V。这样逐个供电域确认,能避免后面很多莫名其妙的故障。

5. 焊接、烧录与串口透传调通

5.1 QFN封装手工焊接的完整手法

LLCC68是QFN-24封装,本体只有4mm x 4mm,底部还有一个散热焊盘。手工焊接这种封装,最推荐的方式是“钢网+回流焊”,如果手里没有回流焊设备,就用热风枪加助焊剂。

具体操作我列一下:先在PCB焊盘上刷一层薄薄的助焊剂,把芯片对准放置好,注意引脚1的标记方向。热风枪温度调到350度左右,风速中低档,从芯片上方约2cm处开始吹,同时用镊子轻微压住芯片。当看到焊锡融化时,芯片会自动“坐”下去,这时候移开热风枪,等待冷却。

焊完以后,用刀头烙铁蘸一点松香,沿着芯片边缘拖一遍,把引脚间的桥连清理干净。底部散热焊盘如果没接地,芯片会在发射时发热严重,用烙铁或热风枪再补焊一下确保散热焊盘和PCB焊盘充分接触。

焊接完成后,强烈建议用显微镜或带放大功能的摄像头检查一遍所有引脚。QFN引脚藏在封装底部,肉眼看很容易漏掉虚焊。我改用显微镜检查之后,焊接成功率从60%升到了95%以上。

5.2 烧录固件与LLCC68关键参数配置

焊好板子后,用ST-Link连接SWD四线接口到电脑。STM32L071的烧录方式跟F103系列一致,用STM32CubeProgrammer选择ST-Link,连接后直接烧录编译好的固件。我建议第一次烧录前,先把板子通过USB连到电脑,保证供电稳定。

LLCC68的SPI寄存器读写是调通整个系统的基础。上电后第一步是等BUSY变成低电平,然后发送Reset命令,再等BUSY变低。接着读版本号寄存器,如果读出来是0x0B00之类,说明芯片已经正常响应了。如果读出来全0xFF或者全是0,基本是SPI接线或时序问题。

LoRa通信的关键参数,我整理了一份“必调清单”:

参数说明常用值
频率发射和接收频率必须一致433MHz/868MHz/915MHz等合规频段
扩频因子SF越大传输越慢但越远7到12,测试常用7或9
信号带宽BW越大速率越高但灵敏度低125kHz/250kHz
编码率CRLoRa纠错冗余4/5即可
前导码长度至少8个符号,保证接收端能检测到8或16
同步字同组设备保持一致默认0x1424
输出功率根据法规和功耗要求设定+14dBm到+20dBm之间

我调试时喜欢先配一组“保守参数”:SF10、BW125kHz、CR 4/5、功率+14dBm。这类参数收发可靠,虽然速率不高,但能把链路先调通。链路通了以后再逐步调高SF或降低功率,测试距离和速率的关系。

5.3 串口透传逻辑实现与实测

透传固件逻辑并不复杂,我在主循环里做了三件事:查询串口接收缓冲区,有数据就打包成LoRa帧发送;查询LLCC68的DIO1,收到帧就读取payload并从串口发出;定时上报板子状态(可选)。

LoRa帧格式我自定义为:帧头2字节、地址1字节、payload长度1字节、payload数据、CRC校验1字节。这样做的好处是接收端能通过地址过滤掉不相关的帧,还能校验数据完整性。实际测试中,串口调试助手以115200波特率发数据,两块板子之间的吞吐量大概在1.5kbps左右,发文本消息绰绰有余。

实测两块板子隔了50米,中间有绿化带和矮墙,SF10参数下丢包率基本为0。后来拿到空旷场地测试,同样的参数能跑到600米以上,距离跟环境关系很大。如果你想追求更远距离,把SF调到12、功率调到最大,上千米是完全有可能的。

串口透传有一个容易忽略的点:串口空闲时间判断。我用的方式是在串口接收中断里记录最后收到数据的时间戳,主循环发现“距离上次收到数据超过10ms”就认为一帧数据接收完成,再整体打包发送。这个10ms的空闲判断值可以根据波特率调整,115200波特率下2字节间隔大约0.2ms,10ms足够安全。

6. 常见问题与排查技巧实录

6.1 上电后整板电流异常大

我调试第二版时,上电后电源指示灯亮了,但USB口电压被拉到很低,摸到LLCC68区域微微发烫。用万用表量3.3V网络对地电阻只有十来欧姆,明显是某个电容短路或焊接桥连。我先用烙铁加了点松香,一边用万用表对照原理图,把电源引脚附近的0402电容逐个挑开测试,最后发现是匹配网络的一个电感焊错位,把射频输出直接短路到地了。

这类问题排查思路就是“先断开负载,再逐个恢复”。先把两片LLCC68的供电断开,如果电流恢复正常,说明问题在芯片及其外围;然后逐个贴回外围器件,电流异常的那一步就是问题源。热成像仪在这种场景下非常好用,能看到局部发热点,没有热成像仪的话就靠手背感受温度差异。

6.2 读不到LLCC68寄存器但SPI波形正常

SPI时序看着是对的,但读回来的数据全是0xFF,这种问题我遇到三次,原因各不相同。第一次是NSS引脚悬空,芯片没有真正被选中;第二次是BUSY没等低电平就写了寄存器,芯片直接忽略;第三次是RESET引脚没有接上拉,上电后芯片一直处于复位状态。

给现在的排查顺序做个参考:先量RESET电压是否在2V以上,不在就查上拉和复位时序;再量NSS片选信号切换是否正常;然后抓BUSY引脚波形,确认操作SPI前后BUSY确实有高到低的变化;最后用逻辑分析仪看SPI数据线,确认发送的0x42开头的读命令对不对。这几个检查点都过了,基本就能读到版本号了。

6.3 距离很近甚至收发不通

收发完全不通,优先检查两端参数是否完全一致,尤其是频率、SF、带宽、前导码、同步字这五项。LoRa的同步字如果两边不一致,接收端根本不会触发中断。

通了但距离近,就要考虑天线和匹配的问题。把接收端放到几米外,衰减器插在中间测试,如果在强信号下能通、弱信号下丢包严重,大概率是接收灵敏度不够或天线效率差。这时候我建议找一台网络分析仪测一下天线端的S11参数,如果没有设备,就把匹配网络的值按参考设计重新确认一遍。

另一个常见原因是我前面提到过的天线净空不足。如果板子上天线下面还铺了铜,不管怎么调匹配都没用。另外,天线本身的质量差异也很大,便宜的弹簧天线和正规厂商的棒状天线,在远距离测试时差距非常明显。

6.4 串口乱码或丢包

串口乱码优先检查波特率、校验位、停止位是否一致,然后看两端是否共地。USB转串口模块和板子如果不共地,信号差时就会出现随机乱码。还有一个细节是CH340E的驱动在Win11下偶尔会有兼容问题,建议装官方最新驱动。

丢包问题则要看缓冲区设计。如果串口数据发送速率大于LoRa链路速率,缓冲区满了自然就丢了。我的处理方式是:上位机发送时手动加个200ms间隔,或者在固件里用环形缓冲区加流量控制,发送端看到缓冲区接近满时就暂停接收新数据。

链路层丢包则要用重传机制。简版实现是:发送端每帧带一个递增序号,接收端发现序号不连续就发一个NAK请求重传。严肃的透传项目还建议加帧缓存和去重表,避免重复帧被重复上抛到串口。

6.5 打样过程中容易踩的坑

打样返工的原因,大部分出在Gerber超出工程工艺边界,而不是设计本身。常见问题有三类:板框不闭合导致下单系统无法识别形状;丝印字符太小或压到焊盘导致加工异常;走线间距小于工艺极限导致PCB厂家无法生产。

这里建议在下单前把DRC的规则设置到跟嘉立创工艺一致。嘉立创常规双层板支持最小线宽/线距0.15mm,最小孔径0.3mm,丝印字宽不小于0.15mm。把这些数值预先填进KiCad的设计规则里,DRC通过后基本不会在生产端被驳回。

另外,如果你打算用嘉立创的SMT贴片服务,导出BOM时建议用嘉立创的EDA统一对接,KiCad导出的BOM格式需要整理成他们的标准模板,否则贴片报价阶段会来回沟通很多次。我自己整理了一次BOM模板,之后每次改板只需要更新位号和型号列,效率提高不少。

最后再分享一个调试双射频通道时特别容易忽略的点:两片LLCC68的晶振完全独立,如果它们的频率有微小的偏差,会导致两个通道的接收带宽在不同位置,测试时表现为一路正常、另一路灵敏度差。解决方法是先固定一路的频偏校正值,把另一路的频偏调到一致。LLCC68内部有频偏估计寄存器,通过读取这个值,可以在固件里做一个最小的校准流程,校准后两路性能就基本一致了,实测效果非常明显。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询