MBED OS 5.9 LoRA 在 SF7 中设置

Posted

技术标签:

【中文标题】MBED OS 5.9 LoRA 在 SF7 中设置【英文标题】:MBED OS 5.9 LoRA set up in SF7 【发布时间】:2019-07-19 20:20:26 【问题描述】:

您知道如何在 Mbed-OS LoRaWAN 协议 API 中将扩展因子设置为 12 以使用 OTAA 连接到 LoRaWAN 网络吗?

我正在尝试让 LoRA 节点使用扩展因子 SF12,因为默认的是 SF7。我知道在 PHY 层我们可以更改无线电配置。有几个示例可以在不同的 sub-GHz 频带之间进行更改,但是,我找不到一个关于如何在 7 到 12 之间以及带宽为 125 kHz 的情况下更改 LoRa 调制 SF 的示例。 我在EU 868 MHz config 使用SX1276 收音机。

在source code 中可以找到SF7-12 的不同配置,但没有明确的设置方法。这些配置是定义(#define)DR_0、DR_等)。

在 Phy 部分的配置文件中,您可以找到如下示例:

        "phy": 
        "help": "LoRa PHY region. 0 = EU868 (default), 1 = AS923,
         2 = AU915, 3 = CN470, 4 = CN779, 5 = EU433, 
         6 = IN865, 7 = KR920, 8 = US915, 9 = US915_HYBRID",
        "value": "0"
    ,

但没有关于传播因子的示例或描述。

我想通过源代码而不是配置文件来改变它。

编辑 1:

在乔恩的回答之后,我添加了以下几行,但仍然没有强制 SF12 加入。

retcode = lorawan.disable_adaptive_datarate ();
retcode = lorawan.set_datarate (0); //  DR_0

【问题讨论】:

【参考方案1】:

呼叫:

lorawan.set_datarate(0); // SF12 125 KHz

确保:

    禁用 ADR。 使用 ABP,JOIN_SUCCESS 事件处理程序中调用上述函数。这是因为连接过程总是从 SF7 开始,然后保持连接成功的数据速率。

【讨论】:

我添加了'retcode = lorawan.disable_adaptive_datarate(); retcode = lorawan.set_datarate (0); ' 并且它不会强制 SF12 JOINS。 根据 LoRaWAN 规范,加入总是从 SF7 开始。您可以在加入后强制数据速率或使用 ABP。

以上是关于MBED OS 5.9 LoRA 在 SF7 中设置的主要内容,如果未能解决你的问题,请参考以下文章

使用 Eclipse 调试 MBED

将 uint8_t* 更改为 char*?

RTL8195AM开发板使用

mbed + platformio.org:建议?

ROS + STM32 + mbed

mbed的ticker问题