#lora #embedded-hal-async #iot #radio #semtech #micro-controller

无需 std lora-phy

A LoRa physical layer implementation enabling utilization of a range of MCU/LoRa board combinations within embedded frameworks supporting embedded-hal-async

12 个稳定版本

3.0.1 2024年7月11日
2.1.2 2023年9月25日
2.1.0 2023年7月8日
1.2.1 2023年7月26日

嵌入式开发 中排名第 817

Download history 122/week @ 2024-05-13 36/week @ 2024-05-20 4/week @ 2024-05-27 15/week @ 2024-06-03 13/week @ 2024-06-10 8/week @ 2024-06-17 100/week @ 2024-07-08 8/week @ 2024-07-15 2/week @ 2024-07-22 96/week @ 2024-07-29 19/week @ 2024-08-05 11/week @ 2024-08-12

每月下载量 128

MIT/Apache

135KB
3K SLoC

LoRa 物理层 (rustaceous 无线电)

CI

为什么?

  • 提供一个直接简单的 LoRa 物理层 API,该 API 支持 LoRaWAN 和点对点 (P2P) 用例;
  • 支持多种微控制器单元 (MCU) 和 LoRa 芯片组合,通过一个 API 实现;
  • 使任何支持 embedded-hal-async 的嵌入式框架能够为所需的 MCU/LoRa 芯片组合启用 LoRa 功能。

如何?

  • 将调制参数和数据包参数作为单独的关注点分离出来,以解决 LoRa 芯片支持的细微差别,并允许灵活指定各种 LoRaWAN 和 P2P 发送/接收通道,即使在同一用例中;
  • 允许用户指定 LoRa 芯片类型(例如,Sx1261/2)和特定的 LoRa 板类型(例如,Stm32wlSx1262),并在 LoRa 物理层 API 后面隐藏该 LoRa 板的控制;
  • 为每个所需的嵌入式框架/MCU 类型/LoRa 芯片类型提供一个最小 trait,必须实现,以便允许此 crate 与嵌入式框架中的 LoRa 芯片接口。

因此?

  • 虽然当前的示例使用 Embassy 嵌入式框架、nrf52840、rp pico、stm32l0 和 stm32wl MCU 以及 Sx127x/Sx126x 芯片,但此 crate 为 Rust 开发环境中的其他嵌入式框架、MCU 类型和 LoRa 芯片提供了前进的道路。

示例

请参阅 示例 了解使用方法。

聊天

这里是关于 LoRa/LoRaWAN 主题的 Rust 公共聊天

LoRa 物理层 API

对于希望实现 LoRaWAN 或 P2P 解决方案的用户,以下实现文件提供了 lora-phy 版本 2 所需的上下文。

API 使用示例

嵌入式框架/MCU 支持

对于希望为一种或多种 MCU/LoRa 芯片组合添加 LoRa 支持的嵌入式框架开发者

  • InterfaceVariant 特性,该特性使这个 lora-phy 包能够与特定的嵌入式框架/MCU/LoRa 芯片组合进行接口交互。

示例 InterfaceVariant 实现

LoRa 芯片支持

对于希望添加对新 LoRa 芯片的支持或增强现有芯片支持的开发商

  • RadioKind 特性,必须为每种 LoRa 芯片实现此特性,以便通过 lora-phy 包 API 进行访问;
  • 接口实现,它捕捉了三个关键读写操作,允许通过操作码或寄存器操作从该包控制 LoRa 芯片。

示例 RadioKind 实现和相关信息

特定 LoRa 板支持

可以通过芯片特定 Config 结构处理特定板的配置。

依赖项

~0.7–1.6MB
~33K SLoC