GPIO mapping has to be adapted with HW
本文档由 AI 翻译。如您发现内容有误或有改进建议,欢迎通过页面下方的评论区,或在以下 Issue 页面中告诉我们:https://github.com/Seeed-Studio/wiki-documents/issues
LoRaWAN® 是 LoRa Alliance® 授权使用的标志。
LoRa® 标志是 Semtech Corporation 或其子公司的商标。
WM1302 模块是一款新一代的 LoRaWAN® 网关模块,采用 mini-PCIe 形式。基于 Semtech® SX1302 基带 LoRaWAN® 芯片,WM1302 为网关产品解锁了更大的长距离无线传输潜力。与之前的 SX1301 和 SX1308 LoRa® 芯片相比,它具有更高的灵敏度、更低的功耗和更低的工作温度。
WM1302 LoRaWAN® 网关模块提供 SPI 和 USB 两种版本,支持 US915 和 EU868 频段,您可以选择包括 EU868、US915、AS923、AS920、AU915、KR920 和 IN865 在内的多种 LoRaWAN® 频率计划。
WM1302 模块已通过 CE、FCC 和 Telec 认证,有助于简化 LoRaWAN® 网关设备的开发和认证流程。
WM1302 专为 M2M 和 IoT 应用设计,可广泛应用于支持 LPWAN 网关的场景。它是开发 LoRa® 网关设备(包括 LoRaWAN® 网关、热点等)的理想选择,可以显著降低技术难度和开发时间。
特性
- 由 Semtech® SX1302 基带 LoRa® 芯片驱动,超低功耗,高性能。
- 采用标准 52 针金手指的 Mini-PCIe 形式,易于集成到各种网关设备中。
- 超低工作温度,无需额外散热,减少 LoRaWAN® 网关的体积。
- 高灵敏度,使用 SX1250 TX/RX 前端,灵敏度低至 -139 dBm @SF12;TX 功率高达 26 dBm @3.3V。
- 通过 CE、FCC 和 TELEC 认证,简化最终产品认证流程。
硬件概览
结构图
引脚图
规格参数
区域 | EU868 | US915 |
---|---|---|
频率 | 863-870MHz | 902-928MHz |
灵敏度 | -125dBm @125K/SF7 -139dBm @125K/SF12 | -125dBm @125K/SF7 -139dBm @125K/SF12 |
发射功率 | 26 dBm (3.3V 电源供电) | 25 dBm (3.3V 电源供电) |
LED 指示灯 | 电源:绿色 配置:红色 发送:绿色 接收:蓝色 | |
外形尺寸 | Mini PCIe,52 针金手指 | |
功耗 (SPI 版本) | 待机:7.5 mA 最大发射功率:415 mA 接收:40 mA | |
功耗 (USB 版本) | 待机:20 mA 最大发射功率:425 mA 接收:53 mA | |
LBT (Listen Before Talk) | 支持 | |
天线接口 | U.FL | |
工作温度 | -40°C 至 85°C | |
尺寸 | 30 mm (宽) × 50.95 mm (长) | |
认证 | CE |
应用
LPWAN 网关设备开发
任何远距离无线通信应用开发
LoRa® 和 LoRaWAN® 应用学习与研究
尺寸
入门指南
SPI版本和USB版本的区别
对于 WM1302 LoRaWAN® 网关模块 SPI 版本,Semtech SX1302 和 SX126x 芯片通过同一个 SPI 总线连接到 Raspberry Pi,使用不同的片选(CS)引脚。
对于 WM1302 LoRaWAN® 网关模块 USB 版本,Semtech SX1302 和 SX126x 芯片连接到 STM32L4 MCU,该 MCU 已由工厂编程,将作为 USB 设备工作,充当 Raspberry Pi 和 SX1302/SX126x 之间的桥梁。
快速开始使用 WM1302
所需硬件
WM1302 LoRaWAN® 网关模块
带有 40 针 GPIO 接口的 Raspberry Pi 板(例如 Raspberry Pi 4B 或 Raspberry 3B+)
WM1302 Raspberry Pi 的 Pi Hat
Raspberry Pi 的电源适配器
一个 LoRa® 天线
一个 8G 或更大的 SD 卡和一个读卡器
如果使用 WM1302 LoRaWAN® 网关模块 USB 版本,则需要一根 Type C USB 数据线
所需软件
最新的 Raspberry Pi OS 镜像:建议使用 Raspberry Pi OS Lite
Balena Etcher:用于将 Raspberry Pi OS 镜像写入 SD 卡
putty:用于在 Windows 上通过 SSH 连接到 Raspberry Pi
第一步:安装 WM1302 Raspberry Pi Hat 并安装 WM1302 模块
将 Pi Hat 安装到 Raspberry Pi 的 40 针接口非常简单。首先关闭 Raspberry Pi 的电源,将 WM1302 模块插入 Pi Hat,如下图所示并拧紧。
第二步:启用 Raspbian 的 I2C 和 SPI 接口
WM1302 模块通过 SPI 和 I2C 与 Raspberry Pi 通信。但在 Raspbian 中,这两个接口默认未启用,因此开发者需要在使用 WM1302 之前启用它们。这里介绍一种通过命令行启用 SPI 和 I2C 接口的方法。
首先,通过 SSH 登录到 Raspberry Pi 或使用显示器(不要使用串口控制台,因为 Pi Hat 上的 GPS 模块占用了 Pi 的硬件 UART 引脚),然后在命令行中输入 sudo raspi-config
打开 Raspberry Pi 软件配置工具:
sudo raspi-config
选择
Interface Options
选择
SPI
,然后选择Yes
启用它选择
I2C
,然后选择Yes
启用它选择
Serial Port
,然后选择No
对于 "Would you like a login shell..." 并选择Yes
对于 "Would you like the serial port hardware..."完成后,请重新启动 Raspberry Pi 以确保这些设置生效。
第三步:获取并编译 SX1302 源代码
现在安装 git
并从 GitHub 下载 sx1302_hal
(SX1302 LoRa 网关的库和程序):
sudo apt update
sudo apt install -y git
cd ~
git clone https://github.com/Lora-net/sx1302_hal
进入 sx1302_hal
文件夹并编译所有内容:
cd ~/sx1302_hal
make
第四步:运行 Semtech SX1302 数据包转发器
在新的 Linux 内核中,sysfs 接口已被 chardev 接口取代。
这导致 sx_1302 仓库中提供的 reset_lgw.sh 无法正确重置模块,并输出以下日志:
...
./reset_lgw.sh: 26: echo: echo: I/O error
./reset_lgw.sh: 27: echo: echo: I/O error
./reset_lgw.sh: 28: echo: echo: I/O error
./reset_lgw.sh: 29: echo: echo: I/O error
./reset_lgw.sh: 32: cannot create /sys/class/gpio/gpio17/direction: Directory nonexistent
./reset_lgw.sh: 33: cannot create /sys/class/gpio/gpio5/direction: Directory nonexistent
./reset_lgw.sh: 34: cannot create /sys/class/gpio/gpio18/direction: Directory nonexistent
./reset_lgw.sh: 35: cannot create /sys/class/gpio/gpio13/direction: Directory nonexistent
CoreCell reset through GPIO17...
SX1261 reset through GPIO17...
CoreCell power enable through GPIO18...
CoreCell ADC reset through GPIO13...
./reset_lgw.sh: 45: cannot create /sys/class/gpio/gpio18/value: Directory nonexistent
./reset_lgw.sh: 47: cannot create /sys/class/gpio/gpio17/value: Directory nonexistent
./reset_lgw.sh: 48: cannot create /sys/class/gpio/gpio17/value: Directory nonexistent
./reset_lgw.sh: 50: cannot create /sys/class/gpio/gpio5/value: Directory nonexistent
./reset_lgw.sh: 51: cannot create /sys/class/gpio/gpio5/value: Directory nonexistent
./reset_lgw.sh: 53: cannot create /sys/class/gpio/gpio13/value: Directory nonexistent
./reset_lgw.sh: 54: cannot create /sys/class/gpio/gpio13/value: Directory nonexistent
...
要确定运行的系统是否仍具有 sysfs 接口,可以运行以下命令:
ls /sys/class/gpio
对于具有 sysfs 接口的 Linux:
如果其中出现一系列 gpiox
文件夹,则说明系统内核仍具有 sysfs 接口,可以使用上述脚本重置模块。
使用文本编辑器 nano
修改 reset_lgw.sh
脚本中的 SX1302 和 SX1261 的 reset pin
:
nano tools/reset_lgw.sh
在文本编辑器的开头显示以下代码:
#
SX1302_RESET_PIN=23 # SX1302 reset
SX1302_POWER_EN_PIN=18 # SX1302 power enable
SX1261_RESET_PIN=22 # SX1261 reset (LBT / Spectral Scan)
AD5338R_RESET_PIN=13 # AD5338R reset (full-duplex CN490 reference design)
使用导航键移动光标,将 SX1302_RESET_PIN=23
更改为 SX1302_RESET_PIN=17
,并将 SX1261_RESET_PIN=22
更改为 SX1261_RESET_PIN=5
,如下所示:
# GPIO 映射需要根据硬件进行调整
#
SX1302_RESET_PIN=17 # SX1302 复位
SX1302_POWER_EN_PIN=18 # SX1302 电源启用
SX1261_RESET_PIN=5 # SX1261 复位 (LBT / 频谱扫描)
AD5338R_RESET_PIN=13 # AD5338R 复位 (全双工 CN490 参考设计)
通过按下 CTRL + x
保存这些更改,然后按 y
,最后按下 Enter
关闭文本编辑器。
对于没有 sysfs 接口的 Linux:
如果其中没有名为 gpiox
的文件夹,则需要使用 Libgpiod 包 调用 GPIO。
使用 Libgpiod 包控制 GPIO 的 reset_lgw.sh 脚本如下:
reset_lgw.sh
SX1302_RESET_PIN=17 # SX1302 复位
SX1302_POWER_EN_PIN=18 # SX1302 电源启用
SX1261_RESET_PIN=5 # SX1261 复位 (LBT / 频谱扫描)
WAIT_GPIO() {
sleep 0.1
}
reset() {
echo "通过 GPIO$SX1302_RESET_PIN 重置 CoreCell..."
echo "通过 GPIO$SX1261_RESET_PIN 重置 SX1261..."
echo "通过 GPIO$SX1302_POWER_EN_PIN 启用 CoreCell 电源..."
# 为 SX1302 CoreCell 电源启用和复位写入输出
gpioset gpiochip0 $SX1302_POWER_EN_PIN=1; WAIT_GPIO
gpioset gpiochip0 $SX1302_RESET_PIN=1; WAIT_GPIO
gpioset gpiochip0 $SX1302_RESET_PIN=0; WAIT_GPIO
gpioset gpiochip0 $SX1261_RESET_PIN=0; WAIT_GPIO
gpioset gpiochip0 $SX1261_RESET_PIN=1; WAIT_GPIO
}
case "$1" in
start)
reset
;;
stop)
reset
;;
*)
echo "用法: $0 {start|stop}"
exit 1
;;
esac
exit 0
将 reset_lgw.sh
复制到 packet_forwarder
文件夹,然后运行 lora_pkt_fwd
。请注意,您应该根据所使用的模块选择一个 global_conf.json.sx1250.xxxx
配置文件:
cp tools/reset_lgw.sh packet_forwarder/
cd packet_forwarder
# 请根据您的模块选择以下命令之一
# 对于 WM1302 LoRaWAN 网关模块 (SPI) - EU868
./lora_pkt_fwd -c global_conf.json.sx1250.EU868
# 对于 WM1302 LoRaWAN 网关模块 (USB) - EU868
./lora_pkt_fwd -c global_conf.json.sx1250.EU868.USB
# 对于 WM1302 LoRaWAN 网关模块 (SPI) - US915
./lora_pkt_fwd -c global_conf.json.sx1250.US915
# 对于 WM1302 LoRaWAN 网关模块 (USB) - US915
./lora_pkt_fwd -c global_conf.json.sx1250.US915.USB
现在,packet forwarder 可以正常运行。但如果开发者需要将 LoRa® 数据包转发到他们的 LoRa® 服务器(例如 TTN 或 chirpstack),仍需进行一些操作。
为了实现这一目标,开发者必须首先将 Raspberry Pi 网关添加到 LoRa 服务器。以 TTNv3 为例,登录 TTNv3 控制台,点击 Go to gateways
并点击 Add gateway
,在 Add gateway
页面中,您会看到需要填写的多个设置。您需要关注的是 Gateway EUI
、Gateway Server address
和 Frequency plan
,其他设置保持默认即可。
Gateway EUI
:网关的 64 位扩展唯一标识符,我们在此 wiki 中将其设置为AA555A0000000000
Gateway Server address
:网关将连接的服务器地址,将其复制到剪贴板,开发者稍后需要将其保存到配置文件中Frequency plan
:如果使用 EU868 模块,请选择Europe 863-870 MHz (SF9 for RX2)
;如果使用 US915 模块,请选择United States 902-928 MHz, FSB 2
添加网关后,返回 Raspberry Pi,按 `CTRL + c` 停止 `lora_pkt_fwd`,然后使用文本编辑器 `nano` 编辑刚才使用的 `global_conf.json.sx1250.xxxx` 配置文件:
# 请根据您的模块选择以下命令之一
# 对于 WM1302 LoRaWAN 网关模块 (SPI) - EU868
nano global_conf.json.sx1250.EU868
# 对于 WM1302 LoRaWAN 网关模块 (USB) - EU868
nano global_conf.json.sx1250.EU868.USB
# 对于 WM1302 LoRaWAN 网关模块 (SPI) - US915
nano global_conf.json.sx1250.US915
# 对于 WM1302 LoRaWAN 网关模块 (USB) - US915
nano global_conf.json.sx1250.US915.USB
基本上,您需要修改以下参数:"gateway_ID" "server_address" "serv_port_up" "serv_port_down"
,这些参数可以在配置文件的尾部找到。将 Gateway Server address
复制到 "server_address"
,将 "serv_port_up"
和 "serv_port_down"
更改为 1700
,这些参数应编辑如下:
"gateway_conf": {
"gateway_ID": "AA555A0000000000",
/* 使用默认服务器地址/端口进行更改 */
"server_address": "eu1.cloud.thethings.network",
"serv_port_up": 1700,
"serv_port_down": 1700,
通过按下 CTRL + x
保存这些更改,然后按 y
,最后按下 Enter
关闭文本编辑器。
重新启动 lora_pkt_fwd
,您会发现您的 Raspberry Pi 网关已连接到 TTNv3。
# 请根据您的模块选择以下命令之一
# 对于 WM1302 LoRaWAN 网关模块 (SPI) - EU868
./lora_pkt_fwd -c global_conf.json.sx1250.EU868
# 对于 WM1302 LoRaWAN 网关模块 (USB) - EU868
./lora_pkt_fwd -c global_conf.json.sx1250.EU868.USB
# 对于 WM1302 LoRaWAN 网关模块 (SPI) - US915
./lora_pkt_fwd -c global_conf.json.sx1250.US915
# 对于 WM1302 LoRaWAN 网关模块 (USB) - US915
./lora_pkt_fwd -c global_conf.json.sx1250.US915.USB
参考资料
证书
技术支持与产品讨论
请将任何技术问题提交到我们的 论坛。
感谢您选择我们的产品!我们提供多种支持方式,以确保您使用我们的产品时体验顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。