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...