4. LoRa硬件选型:SX1278 vs SX1262 vs LR1120,如何根据项目选型

做LoRa项目,第一关就是挑芯片。市面上最主流的就三款:SX1278、SX1262,还有这两年火起来的LR1120。很多朋友问我:“到底选哪个?” 说实话,没有万能答案,得看你的项目到底要什么。

我个人习惯,选型前先画一张决策树,把需求拆开看。下面这张图,基本概括了我的思路。

LoRa芯片选型决策树 LoRa芯片选型 成本优先 / 成熟方案 SX1278 性能优先 / 低功耗 SX1262 多频段 / 卫星通信 LR1120 SX1278 特点 • 技术成熟,资料多 • 成本最低,适合量产 • 功耗偏高,体积大 SX1262 特点 • 灵敏度高,距离远 • 功耗极低,适合电池 • 体积小,QFN封装 LR1120 特点 • 支持Sub-GHz+2.4G • 支持卫星S频段 • 成本高,设计复杂 选型核心:先定需求,再定芯片,不要盲目追新

4.1 三款芯片的核心差异

先看一张对比表,心里有个底。

参数 SX1278 SX1262 LR1120
频段 137-525 MHz 150-960 MHz 150-960 MHz + 2.4G + 卫星S频段
最大发射功率 +20 dBm +22 dBm +22 dBm
接收灵敏度 -148 dBm -148 dBm (实际略优) -148 dBm (2.4G略低)
调制方式 LoRa / FSK / OOK LoRa / (G)FSK / MSK LoRa / (G)FSK / MSK / BPSK
功耗(接收) ~12 mA ~4.6 mA ~5.5 mA
封装 QFN 28 (6x6mm) QFN 24 (4x4mm) QFN 32 (5x5mm)
典型成本 低 中 高

这张表信息量不小。我挑几个关键点说说。

4.2 SX1278:老将出马,一个顶俩

SX1278是LoRa领域的“常青树”。2013年推出,到现在还在大量出货。为什么?因为它够用,而且便宜。

优点:

  • 技术成熟:网上教程、开源代码、社区支持,SX1278是最多的。你遇到问题,基本都能搜到答案。
  • 成本低:批量采购,一片SX1278比SX1262便宜30%以上。对于成本敏感的产品,这是巨大优势。
  • 驱动简单:寄存器少,SPI通信逻辑清晰。我见过新手用Arduino,半天就能让SX1278收发数据。

缺点:

  • 功耗高:接收电流12mA,是SX1262的2.6倍。电池供电的项目,这个差距很要命。
  • 体积大:QFN28封装,6x6mm,占板面积大。做小型化产品比较吃力。
  • 频段窄:只支持到525 MHz,没法用在868/915 MHz频段。
我的建议:如果你的产品是市电供电,或者对成本极度敏感,而且工作在433/470 MHz频段,SX1278仍然是最稳妥的选择。我去年帮一个朋友做智能电表项目,用的就是SX1278,量产几万片,稳得很。

4.3 SX1262:低功耗之王,性能担当

SX1262是SX1278的升级版。2017年推出,现在已经是中高端LoRa项目的首选。

优点:

  • 功耗极低:接收电流4.6mA,待机电流不到1µA。做电池供电的设备,SX1262是首选。
  • 灵敏度高:虽然标称-148 dBm,但实际测试中,SX1262的底噪控制更好,同等条件下能多传10%-15%的距离。
  • 体积小:QFN24封装,4x4mm,适合做可穿戴设备、传感器节点。
  • 频段宽:支持150-960 MHz,全球主流ISM频段都能用。

缺点:

  • 成本略高:比SX1278贵一些,但差距在缩小。
  • 驱动稍复杂:引入了DIO2、DIO3等更多控制引脚,配置寄存器也更多。不过,用现成的驱动库,问题不大。
避坑指南:我曾经在一个水表项目中,因为没注意SX1262的DIO3引脚需要外接32k晶振,导致设备无法进入休眠模式。后来查了三天资料才发现。嗯,这里要注意,SX1262的DIO3是TCXO供电输出,如果你用外部TCXO,这个引脚要正确配置。

4.4 LR1120:多面手,但别轻易碰

LR1120是Semtech 2020年推出的旗舰芯片。它最大的亮点是:一颗芯片搞定Sub-GHz、2.4G和卫星S频段。

优点:

  • 多频段支持:Sub-GHz做远距离,2.4G做高速率,卫星S频段做全球覆盖。一颗芯片,三种玩法。
  • 卫星通信:这是LR1120的杀手锏。配合Semtech的LR-FHSS技术,可以直接连接卫星。对于偏远地区的物联网项目,这是革命性的。
  • 未来兼容性:支持LoRaWAN 1.0.4标准,也支持最新的LoRaWAN 1.1。

缺点:

  • 成本高:一片LR1120的价格,能买三片SX1278。不是所有项目都承受得起。
  • 设计复杂:多频段意味着天线设计、匹配电路、软件协议栈都更复杂。我建议没有5年以上RF经验的朋友,慎重考虑。
  • 功耗偏高:2.4G模式下,接收电流约10mA,比SX1262高不少。
警告:不要为了“炫技”而选LR1120。如果你的项目只需要Sub-GHz,老老实实选SX1262。LR1120的2.4G和卫星功能,只有在明确需求时才值得投入。我曾经见过一个团队,为了“一步到位”选了LR1120,结果开发周期延长了半年,成本翻了一倍,最后不得不换回SX1262。

4.5 实战选型:三步走

说了这么多,到底怎么选?我总结了一个三步法。

  1. 第一步:确定频段和距离
    • 433/470 MHz,距离5km以内,成本敏感 → SX1278
    • 868/915 MHz,距离5km以上,需要低功耗 → SX1262
    • 需要2.4G或卫星通信 → LR1120
  2. 第二步:评估功耗和体积
    • 电池供电,要求续航1年以上 → SX1262
    • 市电供电,或者大电池,续航要求不高 → SX1278
    • 可穿戴设备,体积受限 → SX1262
  3. 第三步:看团队经验
    • 新手团队,快速出产品 → SX1278
    • 有RF经验,追求性能 → SX1262
    • 资深团队,做前沿产品 → LR1120
我的个人习惯:做新项目时,我会先拿SX1262做原型验证。因为它的性能上限高,功耗低,后期改板子也方便。如果成本压力大,再考虑换成SX1278。至于LR1120,除非客户明确要求卫星通信,否则我不会主动推荐。

4.6 代码示例:SX1262初始化片段

最后,给一个SX1262的初始化代码片段。这是我在项目中常用的配置,适用于868 MHz频段,SF12,125 kHz带宽。

// SX1262 初始化示例 (基于STM32 HAL库)
void SX1262_Init(void) {
    // 1. 复位芯片
    SX1262_Reset();
    HAL_Delay(10);

    // 2. 设置工作模式为睡眠
    SX1262_SetSleep(SX1262_SLEEP_RTC);

    // 3. 设置频段 (868 MHz)
    SX1262_SetRfFrequency(868000000);

    // 4. 设置调制参数 (SF12, BW125kHz, CR4/8)
    SX1262_SetModulationParams(
        SX1262_LORA_SF12,
        SX1262_LORA_BW_125,
        SX1262_LORA_CR_4_8,
        SX1262_LORA_LOW_DATA_RATE_OPTIMIZE_ON
    );

    // 5. 设置发射参数 (功率22dBm, 无Ramp)
    SX1262_SetTxParams(22, SX1262_RAMP_200_US);

    // 6. 设置DIO引脚映射 (DIO1 -> IRQ)
    SX1262_SetDioIrqParams(
        SX1262_IRQ_TX_DONE | SX1262_IRQ_RX_DONE,
        SX1262_IRQ_TX_DONE | SX1262_IRQ_RX_DONE,
        SX1262_IRQ_NONE,
        SX1262_IRQ_NONE
    );

    // 7. 进入待机模式
    SX1262_SetStandby(SX1262_STANDBY_RC);
}

这段代码看起来简单,但每一步都有坑。比如第2步,设置睡眠模式时,如果忘了配置RTC,芯片可能无法被正确唤醒。第4步,SF12配合125kHz带宽时,一定要开启Low Data Rate Optimize,否则接收会丢包。

好了,关于LoRa硬件选型,就聊这么多。记住一句话:没有最好的芯片,只有最合适的芯片。你的项目需求,才是最终的决策依据。