2、LoRa射频芯片选型:SX1276/SX1278核心参数解析、芯片选型对比表(SX126x vs SX127x)、外围电路设计要点(匹配网络、天线接口)、常用模块推荐(E32-900T20D、Ra-01)

做LoRa通信,第一步就是选芯片。芯片选对了,项目就成功了一半。我见过不少新手,上来就画板子,结果通信距离死活上不去,最后发现是芯片选型出了问题。今天咱们就把SX1276、SX1278这两个老大哥,还有SX126x系列的新秀,掰开揉碎了讲清楚。

2.1 SX1276/SX1278核心参数解析

SX1276和SX1278,说白了就是一对孪生兄弟。它们的内核完全一样,区别主要在工作频段上。我个人习惯把SX1276叫做“全能王”,因为它覆盖了137MHz到1020MHz的频段;而SX1278则专注于433/470/868/915MHz这几个ISM频段。

先看几个关键参数:

  • 接收灵敏度:-148dBm(SF=12,BW=125kHz)。这个数字很吓人对吧?我刚开始做LoRa时也不信,直到在实验室实测,-140dBm下还能稳定解调。嗯,这里要注意,这是理论值,实际项目中能到-135dBm就算不错了。
  • 发射功率:最大+20dBm(100mW)。如果你需要更远的距离,可以外接PA,但要注意谐波问题。我曾经在一个项目中为了省成本,直接怼到+20dBm,结果EMC测试死活过不了。
  • 扩频因子(SF):6~12。SF越大,灵敏度越高,但传输速率越慢。SF=12时,速率只有292bps,传个温湿度数据还行,传图片就别想了。
  • 带宽(BW):7.8kHz~500kHz。带宽越宽,速率越快,但灵敏度会下降。我一般用125kHz,兼顾速率和灵敏度。
  • 编码率(CR):4/5~4/8。编码率越高,抗干扰能力越强,但有效数据率会降低。在嘈杂环境中,我会用4/8。

避坑指南:我曾经在一个项目中,把SF设成了6(这是LoRa的特殊模式,速率最快),结果通信距离从3公里直接掉到500米。后来查手册才发现,SF=6时接收灵敏度会下降很多。所以,除非你特别在意速率,否则别用SF=6。

2.2 芯片选型对比表:SX126x vs SX127x

SX126x系列是Semtech后来推出的新秀,包括SX1261、SX1262、SX1268等。很多人问我:“老工程师,到底选SX127x还是SX126x?”我的回答是:看需求。

下面这张表是我自己整理的,你直接拿去用:

参数 SX1276/SX1278 SX1262/SX1268
工作频段 137~1020MHz(SX1276)
433/470/868/915MHz(SX1278)
150~960MHz(SX1262)
433/470/868/915MHz(SX1268)
最大发射功率 +20dBm +22dBm(SX1262)
接收灵敏度 -148dBm(SF=12, BW=125kHz) -148dBm(SF=12, BW=125kHz)
接口 SPI SPI
功耗(接收) 约12mA 约4.6mA(DCDC模式)
功耗(待机) 约1.6mA 约0.6mA
内置DCDC 有(可降压至1.8V)
调制方式 LoRa、FSK、OOK LoRa、FSK、(G)MSK
典型应用 长距离、低功耗传感器 超低功耗、电池供电设备

看到区别了吗?SX126x最大的优势是功耗。它内置了DCDC转换器,接收电流只有4.6mA,比SX127x的12mA省了一半多。如果你做的是电池供电的设备,比如一年换一次电池的传感器,我建议你选SX126x。

但SX127x也有它的优势:便宜、成熟、资料多。你想想看,SX1278已经卖了快十年了,网上随便一搜就是大把的参考设计和代码。SX126x虽然新,但有些坑还没被填平。我记得去年帮一个客户调试SX1262,发现它的FSK模式有个小bug,折腾了两天才搞定。

我的建议:

  • 做产品、追求低功耗 → 选SX126x
  • 做原型验证、追求低成本 → 选SX127x
  • 做433MHz频段 → SX1278或SX1268都行
  • 做2.4GHz?别想了,LoRa不干这个

2.3 外围电路设计要点

芯片选好了,接下来就是画电路。外围电路设计得好不好,直接决定了你的通信距离和稳定性。我见过太多人,芯片选的是SX1278,结果画出来的板子通信距离还不如一个ESP8266的WiFi模块。为什么?因为匹配网络没做好。

2.3.1 匹配网络

匹配网络的作用,说白了就是把芯片的输出阻抗(通常是几十欧姆)匹配到天线阻抗(50欧姆)。如果匹配不好,发射功率会被反射回来,轻则通信距离变短,重则烧毁芯片。

SX127x的典型匹配网络如下:

// SX1278 典型匹配网络(915MHz)
// 从PA_BOOST引脚到天线
PA_BOOST → 10nF电容 → 22nH电感 → 10pF电容 → 天线
                          ↓
                        接地

嗯,这里要注意,这个值不是固定的。不同的PCB板材、不同的走线长度,匹配值都要微调。我一般会先用网络分析仪扫一下S11参数,然后微调电容电感值,直到S11小于-10dB。

警告:千万不要直接复制粘贴参考设计中的匹配值!PCB的寄生参数会影响匹配效果。我曾经在一个项目中,直接用了官方的参考设计,结果S11只有-5dB,通信距离直接砍半。后来换了板材,重新调了匹配,才恢复正常。

2.3.2 天线接口

天线接口的设计,我总结了三个要点:

  1. 阻抗控制:天线走线要做50欧姆阻抗控制。对于双层板,走线宽度一般是1.5~2倍板厚。比如1.6mm厚的FR4板,50欧姆微带线宽度大约是3mm。
  2. 接地过孔:天线走线两侧要打满接地过孔,形成“共面波导”结构。这能有效减少辐射损耗。我习惯每隔2mm打一个过孔。
  3. π型匹配网络:在天线接口处预留一个π型匹配网络(两个电容一个电感),方便调试时微调。即使你算好了匹配值,也建议预留,因为天线本身也有公差。

避坑指南:我曾经在一个项目中,把天线接口放在了PCB边缘,结果天线辐射方向图严重畸变。后来查资料才发现,天线周围不能有金属物体,包括PCB的铜皮。所以,天线接口最好放在PCB的角落,周围留出至少5mm的净空区。

2.4 常用模块推荐

如果你不想从零开始画电路,直接用现成的模块也是个好选择。市面上LoRa模块很多,我推荐两个我用过的:

2.4.1 E32-900T20D(亿佰特)

  • 芯片:SX1278
  • 频段:868/915MHz
  • 发射功率:+20dBm
  • 接口:UART(TTL电平)
  • 特点:内置MCU,支持AT指令配置。你不需要写SPI驱动,直接用串口发AT指令就能配置频率、功率、扩频因子等参数。
  • 适用场景:快速原型验证、非实时性数据传输

这个模块我用了很多次,最大的优点是省心。你不需要关心LoRa的底层协议,直接当串口用就行。但缺点也很明显:灵活性差,不能自定义协议。如果你需要做自组网,建议还是用裸芯片。

2.4.2 Ra-01(安信可)

  • 芯片:SX1278
  • 频段:433/470/868/915MHz
  • 发射功率:+20dBm
  • 接口:SPI
  • 特点:纯射频模块,没有MCU。你需要自己写SPI驱动和LoRa协议栈。
  • 适用场景:需要自定义协议、自组网、高实时性应用

Ra-01我更喜欢,因为它给了你最大的自由度。你可以自己实现CAD(信道活动检测)、跳频、自适应速率等高级功能。当然,代价就是开发周期长。我记得第一次调Ra-01的SPI驱动,花了整整两天才把寄存器读写调通。

我的建议:

  • 如果你赶时间、做原型 → 选E32-900T20D
  • 如果你做产品、需要自组网 → 选Ra-01或直接用裸芯片
  • 如果你做433MHz频段 → 注意天线长度,433MHz的1/4波长天线大约17cm

好了,这一章的内容就到这里。芯片选型、外围电路设计、模块推荐,这三块是LoRa硬件设计的核心。下一章我们会讲LoRa的调制原理和空中数据包结构,到时候再聊。


专注资料整理