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 天线接口
天线接口的设计,我总结了三个要点:
- 阻抗控制:天线走线要做50欧姆阻抗控制。对于双层板,走线宽度一般是1.5~2倍板厚。比如1.6mm厚的FR4板,50欧姆微带线宽度大约是3mm。
- 接地过孔:天线走线两侧要打满接地过孔,形成“共面波导”结构。这能有效减少辐射损耗。我习惯每隔2mm打一个过孔。
- π型匹配网络:在天线接口处预留一个π型匹配网络(两个电容一个电感),方便调试时微调。即使你算好了匹配值,也建议预留,因为天线本身也有公差。
避坑指南:我曾经在一个项目中,把天线接口放在了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的调制原理和空中数据包结构,到时候再聊。