Pular para o conteúdo principal

Módulo de Gateway LoRaWAN® WM1302

pir

pir

LoRaWAN® é uma marca usada sob licença da LoRa Alliance®. A marca LoRa® é uma marca registrada da Semtech Corporation ou de suas subsidiárias.

nota

Lançamos recentemente a Série Wio-E5 baseada no módulo Wio-E5.

Clique aqui para conhecer os novos membros da família LoRa-E5, desde o Wio-E5 Module módulo Grove, mini Dev boards até o Development Kit.

Para saber mais sobre como criar um nó final LoRaWAN® com o STM32Cube MCU Package para a série STM32WL (SDK), para ingressar e enviar dados para a rede LoRaWAN®, leia mais nas páginas wiki das mini Dev boards e do Development Kit.

nota

O módulo WM1302 oferece duas versões de interface distintas. A versão SPI é atualmente a escolha predominante. Se você preferir a versão USB, as modificações de hardware exigem certos ajustes no firmware oficial original para que o módulo funcione corretamente. Para mais detalhes, consulte a parte de FAQ.

O módulo WM1302 é uma nova geração de módulo de gateway LoRaWAN® com formato mini-PCIe. Baseado no chip LoRaWAN® de banda base Semtech® SX1302, o WM1302 libera um potencial de capacidade ainda maior de transmissão sem fio de longa distância para produtos de gateway. Ele apresenta maior sensibilidade, menor consumo de energia e temperatura de operação mais baixa do que os chips LoRa® anteriores SX1301 e SX1308.

O módulo de gateway LoRaWAN® WM1302 possui versões SPI e USB nas bandas de frequência US915 e EU868, permitindo que você tenha uma ampla gama de opções de planos de frequência LoRaWAN®, incluindo EU868, US915, AS923, AS920, AU915, KR920 e IN865.

O módulo WM1302 possui certificação CE, FCC e Telec, o que ajuda a simplificar o processo de desenvolvimento e certificação dos dispositivos de gateway LoRaWAN®.

O WM1302 é projetado para aplicações M2M e IoT e pode ser amplamente aplicado em cenários que exigem gateway LPWAN. Ele é uma escolha perfeita para reduzir significativamente as dificuldades técnicas e o tempo consumido ao desenvolver dispositivos de gateway LoRa®, incluindo gateway LoRaWAN®, hotspots etc.

Recursos

  • Alimentado pelo chip LoRa® de banda base Semtech® SX1302, com consumo de energia extremamente baixo e alto desempenho.
  • Formato mini-PCIe com o padrão de dedo dourado de 52 pinos, fácil de integrar com vários dispositivos de gateway.
  • Temperatura de operação ultrabaixa, sem necessidade de dissipação de calor adicional, reduzindo o tamanho do gateway LoRaWAN®.
  • Alta sensibilidade até -139 dBm @SF12 com front-end TX/RX SX1250; potência de TX de até 26 dBm @3.3V.
  • Certificado com CE, FCC e TELEC. Simplifica o processo de certificação do produto final.

Visão Geral de Hardware

Diagrama

pir

Pinagem

pir

pir


Mapeamento de Pinagem do Raspberry Pi

40 Pin No.(BOARD#)GPIO Raspberry Pi (BCM#)Pinagem do HAT WM1302 para Pi
13.3VNC
25V5V
3GPIO 2I2C_SDA
45V5V
5GPIO 3I2C_SCL
6GNDGND
7GPIO 4NC
8GPIO 14GPS_RXD
9GNDGND
10GPIO 15GPS_TXD
11GPIO 17SX1302_RESET
Versão SPI: Ativo em ALTO
Versão USB: Ativo em BAIXO
12GPIO 18SX1262_BUSY
13GPIO 27NC
14GNDGND
15GPIO 22NC
16GPIO 23SX1262_DIO1
173.3VNC
18GPIO 24SX1262_DIO2
19GPIO 10SPI_MOSI
20GNDGND
21GPIO 9SPI_MISO
22GPIO 25GPS_RST
23GPIO 11SPI_SCK
24GPIO 8SX1302_CS
25GNDGND
26GPIO 7NC
27GPIO 0I2C_SDA(EEPROM)
28GPIO 1I2C_SCL(EEPROM)
29GPIO 5SX1262_RST
30GNDGND
31GPIO 6SX1262_CS
32GPIO 12GPS_WAKE_UP
33GPIO 13NC
34GNDGND
35GPIO 19NC
36GPIO 16NC
37GPIO 26NC
38GPIO 20NC
39GNDGND
40GPIO 21NC

Especificações

RegiãoEU868US915
Frequência863-870MHz902-928MHz
Sensibilidade-125dBm @125K/SF7
-139dBm @125K/SF12
-125dBm @125K/SF7
-139dBm @125K/SF12
Potência de TX26 dBm (com alimentação de 3,3 V)25 dBm (com alimentação de 3,3 V)
LEDsAlimentação: Verde Configuração: Vermelho TX: Verde RX: Azul
Fator de FormaMini PCIe, Dedo Dourado de 52 pinos
Consumo de Energia (versão SPI)Standby: 7.5 mA
TX potência máxima: 415 mA
RX: 40 mA
Consumo de energia (versão USB)Standby: 20 mA
TX potência máxima: 425 mA
RX: 53 mA
LBT(Listen Before Talk)Suporta
Conector da antenaU.FL
Temperatura de operação-40°C a 85°C
Dimensões30 mm (largura) × 50.95 mm (comprimento)
CertificaçãoCE

Aplicação

  • Desenvolvimento de dispositivos Gateway LPWAN

  • Qualquer desenvolvimento de aplicação de comunicação sem fio de longa distância

  • Aprendizado e pesquisa de aplicações LoRa® e LoRaWAN®

Dimensão

pir

Primeiros Passos

Diferença entre a versão SPI e a versão USB

Para o WM1302 LoRaWAN® Gateway Module versão SPI, os chips Semtech SX1302 e SX126x são conectados ao Raspberry Pi via o mesmo barramento SPI com diferentes pinos de chip select(CS).

Para o WM1302 LoRaWAN® Gateway Module versão USB, os chips Semtech SX1302 e SX126x são conectados a um MCU STM32L4, e este MCU programado de fábrica funcionará como um dispositivo USB, tornando-se uma ponte entre o Raspberry Pi e o SX1302/SX126x.

Início rápido com WM1302

Hardware necessário

  • WM1302 LoRaWAN® Gateway Module

  • Placas Raspberry Pi com conector GPIO de 40 pinos (por exemplo, Raspberry Pi 4B ou Raspberry 3B+)

  • WM1302 Pi Hat para Raspberry Pi

  • Fonte de alimentação para Raspberry Pi

  • Uma antena LoRa®

  • Um cartão SD de 8G ou maior e um leitor de cartões

  • Um cabo USB Tipo C se estiver usando o WM1302 LoRaWAN® Gateway Module versão USB

Software necessário


Etapa 1. Montar o WM1302 Raspberry Pi Hat e instalar o módulo WM1302

Desligue o Raspberry Pi primeiro, insira o módulo WM1302 no Pi Hat como na figura a seguir e prenda-o com parafusos.

pir

Etapa 2. Habilitar as interfaces I2C e SPI do Raspbian

O módulo WM1302 se comunica com o Raspberry Pi através das interfaces SPI e I2C. Porém, essas duas interfaces não estão habilitadas por padrão no Raspbian, então o desenvolvedor precisa habilitá-las antes de usar o WM1302. Aqui, apresentamos uma forma via linha de comando para habilitar as interfaces SPI e I2C.

Primeiro, faça login no Raspberry Pi via SSH ou usando um monitor (não use o console serial, pois o módulo GPS no Pi Hat assume os pinos UART de hardware do Pi), depois digite sudo raspi-config na linha de comando para abrir a Ferramenta de Configuração de Software do Raspberry Pi:

sudo raspi-config

pir

  1. Selecione Interface Options

  2. Selecione SPI, depois selecione Yes para habilitá-lo

  3. Selecione I2C, depois selecione Yes para habilitá-lo

  4. Selecione Serial Port, depois selecione No para "Would you like a login shell..." e selecione Yes para "Would you like the serial port hardware..."

  5. Depois disso, reinicie o Raspberry Pi para garantir que essas configurações funcionem.

Etapa 3. Obter e compilar o código-fonte do SX1302

Agora vamos instalar o git e fazer o download do sx1302_hal (biblioteca e programas para o SX1302 LoRa Gateway) do GitHub:

sudo apt update
sudo apt install -y git
cd ~
git clone https://github.com/Lora-net/sx1302_hal

Vá para a pasta sx1302_hal e compile tudo:

cd ~/sx1302_hal
make

Etapa 4. Executar o packet forwarder Semtech SX1302

Copie reset_lgw.sh para a pasta packet_forwarder e modifique o reset pin para o SX1302 e SX1261 no script reset_lgw.sh com o editor de texto nano:

cp tools/reset_lgw.sh packet_forwarder/
cd packet_forwarder
nano tools/reset_lgw.sh

Você verá o reset pin padrão como a seguir:

# GPIO mapping has to be adapted with HW
#

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)

Aqui usamos o comando cat /sys/kernel/debug/gpio, que é uma interface de depuração fornecida pelo sistema de arquivos debugfs do kernel. Ele é usado principalmente para monitorar o status em tempo real de todos os pinos GPIO no Raspberry Pi.

gpiochip0 é o que realmente nos interessa: o módulo WM1302 se conecta ao Raspberry Pi através do conector de 40 pinos do Pi HAT, e tudo isso é gerenciado por esse controlador.

pi@raspberrypi:~/sx1302_hal/packet_forwarder $ cat /sys/kernel/debug/gpio
gpiochip0: GPIOs 571-624, parent: platform/1f000d0000.gpio, pinctrl-rp1:
gpio-571 (ID_SDA )
gpio-572 (ID_SCL )
gpio-573 (GPIO2 )
gpio-574 (GPIO3 )
gpio-575 (GPIO4 )
gpio-576 (GPIO5 )
gpio-577 (GPIO6 )
gpio-578 (GPIO7 |spi0 CS1 ) out hi ACTIVE LOW
gpio-579 (GPIO8 |spi0 CS0 ) out hi ACTIVE LOW
gpio-580 (GPIO9 )
gpio-581 (GPIO10 )
gpio-582 (GPIO11 )
gpio-583 (GPIO12 )
gpio-584 (GPIO13 )
gpio-585 (GPIO14 )
gpio-586 (GPIO15 )
gpio-587 (GPIO16 )
gpio-588 (GPIO17 )
gpio-589 (GPIO18 )
gpio-590 (GPIO19 )
gpio-591 (GPIO20 )
gpio-592 (GPIO21 )
gpio-593 (GPIO22 )
gpio-594 (GPIO23 )
gpio-595 (GPIO24 )
gpio-596 (GPIO25 )
gpio-597 (GPIO26 )
gpio-598 (GPIO27 )
gpio-599 (PCIE_RP1_WAKE )
gpio-600 (FAN_TACH )
gpio-601 (HOST_SDA )
gpio-602 (HOST_SCL )
gpio-603 (ETH_RST_N |phy-reset ) out hi ACTIVE LOW
gpio-604 (- )
gpio-605 (CD0_IO0_MICCLK |cam0_reg ) out lo
gpio-606 (CD0_IO0_MICDAT0 )
gpio-607 (RP1_PCIE_CLKREQ_N )
gpio-608 (- )
gpio-609 (CD0_SDA )
gpio-610 (CD0_SCL )
gpio-611 (CD1_SDA )
gpio-612 (CD1_SCL )
gpio-613 (USB_VBUS_EN )
gpio-614 (USB_OC_N )
gpio-615 (RP1_STAT_LED |PWR ) out hi ACTIVE LOW
gpio-616 (FAN_PWM )
gpio-617 (CD1_IO0_MICCLK |cam1_reg ) out lo
gpio-618 (2712_WAKE )
gpio-619 (CD1_IO1_MICDAT1 )
gpio-620 (EN_MAX_USB_CUR )
gpio-621 (- )
gpio-622 (- )
gpio-623 (- )
gpio-624 (- )

Se o seu sistema não montar automaticamente o debugfs, você deve montá-lo manualmente primeiro:

sudo mount -t debugfs none /sys/kernel/debug

De acordo com as informações, podemos descobrir a relação entre os pinos GPIO gpio-588, gpio-589, gpio-576 e seu índice físico correspondente (GPIO17), (GPIO18), (GPIO5).

nota

Consulte a tabela Raspberry Pi Pinout Mapping para os mapeamentos completos dos pinos GPIO.

Modifique o SX1302_RESET_PIN, SX1302_POWER_EN_PIN e SX1261_RESET_PIN com base nas informações de GPIO que obtivemos, como a seguir:

# GPIO mapping has to be adapted with HW
#

SX1302_RESET_PIN=588 # SX1302 reset
SX1302_POWER_EN_PIN=589 # SX1302 power enable
SX1261_RESET_PIN=576 # SX1261 reset (LBT / Spectral Scan)
AD5338R_RESET_PIN=13 # AD5338R reset (full-duplex CN490 reference design)

Salve essas alterações pressionando CTRL + x, seguido de y e Enter para fechar o editor de texto.


Você também pode consultar o script completo abaixo:

reset_lgw.sh
#!/bin/sh

# This script is intended to be used on SX1302 CoreCell platform, it performs
# the following actions:
# - export/unpexort GPIO23 and GPIO18 used to reset the SX1302 chip and to enable the LDOs
# - export/unexport GPIO22 used to reset the optional SX1261 radio used for LBT/Spectral Scan
#
# Usage examples:
# ./reset_lgw.sh stop
# ./reset_lgw.sh start

# GPIO mapping has to be adapted with HW
#

SX1302_RESET_PIN=588 # SX1302 reset
SX1302_POWER_EN_PIN=589 # SX1302 power enable
SX1261_RESET_PIN=576 # SX1261 reset (LBT / Spectral Scan)
AD5338R_RESET_PIN=13 # AD5338R reset (full-duplex CN490 reference design)

WAIT_GPIO() {
sleep 0.1
}

init() {
# setup GPIOs
echo "$SX1302_RESET_PIN" > /sys/class/gpio/export; WAIT_GPIO
echo "$SX1261_RESET_PIN" > /sys/class/gpio/export; WAIT_GPIO
echo "$SX1302_POWER_EN_PIN" > /sys/class/gpio/export; WAIT_GPIO
echo "$AD5338R_RESET_PIN" > /sys/class/gpio/export; WAIT_GPIO

# set GPIOs as output
echo "out" > /sys/class/gpio/gpio$SX1302_RESET_PIN/direction; WAIT_GPIO
echo "out" > /sys/class/gpio/gpio$SX1261_RESET_PIN/direction; WAIT_GPIO
echo "out" > /sys/class/gpio/gpio$SX1302_POWER_EN_PIN/direction; WAIT_GPIO
echo "out" > /sys/class/gpio/gpio$AD5338R_RESET_PIN/direction; WAIT_GPIO
}

reset() {
echo "CoreCell reset through GPIO$SX1302_RESET_PIN..."
echo "SX1261 reset through GPIO$SX1302_RESET_PIN..."
echo "CoreCell power enable through GPIO$SX1302_POWER_EN_PIN..."
echo "CoreCell ADC reset through GPIO$AD5338R_RESET_PIN..."

# write output for SX1302 CoreCell power_enable and reset
echo "1" > /sys/class/gpio/gpio$SX1302_POWER_EN_PIN/value; WAIT_GPIO

echo "1" > /sys/class/gpio/gpio$SX1302_RESET_PIN/value; WAIT_GPIO
echo "0" > /sys/class/gpio/gpio$SX1302_RESET_PIN/value; WAIT_GPIO

echo "0" > /sys/class/gpio/gpio$SX1261_RESET_PIN/value; WAIT_GPIO
echo "1" > /sys/class/gpio/gpio$SX1261_RESET_PIN/value; WAIT_GPIO

echo "0" > /sys/class/gpio/gpio$AD5338R_RESET_PIN/value; WAIT_GPIO
echo "1" > /sys/class/gpio/gpio$AD5338R_RESET_PIN/value; WAIT_GPIO
}

term() {
# cleanup all GPIOs
if [ -d /sys/class/gpio/gpio$SX1302_RESET_PIN ]
then
echo "$SX1302_RESET_PIN" > /sys/class/gpio/unexport; WAIT_GPIO
fi
if [ -d /sys/class/gpio/gpio$SX1261_RESET_PIN ]
then
echo "$SX1261_RESET_PIN" > /sys/class/gpio/unexport; WAIT_GPIO
fi
if [ -d /sys/class/gpio/gpio$SX1302_POWER_EN_PIN ]
then
echo "$SX1302_POWER_EN_PIN" > /sys/class/gpio/unexport; WAIT_GPIO
fi
if [ -d /sys/class/gpio/gpio$AD5338R_RESET_PIN ]
then
echo "$AD5338R_RESET_PIN" > /sys/class/gpio/unexport; WAIT_GPIO
fi
}

case "$1" in
start)
term # just in case
init
reset
;;
stop)
reset
term
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac

exit 0


Escolha o server_address do LoRaWAN Network Server de sua preferência e o gateway EUI gateway_ID no global_conf.json.sx1250.xxxxx correspondente com base no módulo que você está usando, e modifique a up/down port para 1700. Em seguida, execute o seguinte código para iniciar o concentrador:

cd ~/sx1302_hal/packet_forwarder

# Please select one of the following comands based on your module
# for WM1302 LoRaWAN Gateway Module (SPI) - EU868
./lora_pkt_fwd -c global_conf.json.sx1250.EU868

# for WM1302 LoRaWAN Gateway Module (SPI) - US915
./lora_pkt_fwd -c global_conf.json.sx1250.US915

Agora, o packet forwarder já consegue ser executado corretamente. Para encaminhar dados com sucesso para o nosso LoRaWAN Network Server (por exemplo, TTN ou ChripStack), ainda precisamos fazer algumas configurações no lado do servidor.

Para isso, primeiro precisamos registrar o Raspberry Pi Gateway que acabamos de construir em nosso LoRa Network Server. Tomando o TTN como exemplo, faça login no console do TTN, clique no botão Gateways no painel do lado esquerdo e clique em Register gateway. Preencha o Gateway EUI, o Gateway Server address e o Frequency plan, deixando as outras opções com as configurações padrão.

  • Gateway EUI: Um identificador exclusivo de 64 bits para o seu gateway.

  • Gateway Server address: A URL do cluster no qual o network server está implantado (eu1.cloud.thethings.network, por exemplo).

  • Frequency plan: Configure o plano de frequência correspondente com base na sua região. Europe 863-870 MHz (SF9 for RX2-recommended) para a Europa, United States 902-928 MHz, FSB 2 para os EUA.

pir


Depois de registrar o gateway com sucesso, pressione CTRL + c para parar o lora_pkt_fwd, em seguida edite e verifique o arquivo de configuração global_conf.json.sx1250.xxxx para garantir que as entradas "gateway_ID" e "server_address" correspondam exatamente às configurações no LNS.

    ...
"gateway_conf": {
"gateway_ID": "AA555A0000000000",
/* change with default server address/ports */
"server_address": "eu1.cloud.thethings.network",
"serv_port_up": 1700,
"serv_port_down": 1700,
...

Reinicie o lora_pkt_fwd usando o comando ./lora_pkt_fwd -c global_conf.json.sx1250.xxxxx, e você deverá conseguir ver que o seu Raspberry Pi Gateway está conectado ao TTN.

FAQ

Por que meus dispositivos não conseguem ingressar no network server mesmo com todas as configurações corretas?

Observamos que certos módulos (versão USB WM1302-US915) podem falhar ao transmitir corretamente pacotes de dados downlink devido a diferenças de hardware. Para corrigir esse problema, modifique o valor da macro TX_JIT_DELAY (você pode encontrar essa macro em /sx1302_hal/packet_forwarder/src/jitqueue.c) de 40000 para 120000 e refaça o build do sx1302_hal.

Fontes

Certificados

Suporte Técnico & Discussão de Produto

Envie qualquer problema técnico para o nosso fórum.

Obrigado por escolher nossos produtos! Estamos aqui para fornecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

Loading Comments...