LoRa相关LPWAN设计

ESP8266 LoRa网关第三步:物理层驱动

2017-11-27  本文已影响47人  小鱼儿他老汉

ESP8266 LoRa网关第一步:SPIESP8266 LoRa网关第二步:寄存器读写之后,我们需要将SX127X的物理层驱动集成到工程中。

驱动代码

先说结果,虽然将某些国内作者提供的LoRa驱动源码集成后,程序没有跑飞。但是根据SPI总线跟踪的波形进行分析,其总线驱动工作不正常。所以,我不得不重新调试。所以,还需要做些基础的工作。

更新

将SPI总线CLK从10MHz调低到2MHz,同时将逻辑分析仪的采样频率调高,发现驱动源码的SPI总线波形是正确的。所以,进过适当修正后,可以利用。

应用代码

选择ESP8266/LoRa代码基础

国内的产品或许因为便宜,所以买的人真不少。但是固件就差强人意了。之前,我着重调研基于ARM的相关代码基础。我基本上会以STM32/Keil MDK5/C代码为基础,或者以ARM mbed C++为基础。

ESP8266不是ARM内核,所以采用Arduino/eLua/MicroPython比较合理。由于ESP8266联网特性,所以用来做单通道网关更加合理,而不是作为设备终端。

找到两个开源作者:

  1. Matthijs Kooijman,著作有Building Wireless Sensor Network with Arduino。开源作品:arduino-lmic/arduino-dsmr/arduino-max
  2. Thomas Telkamp,开源作品:single_chan_pkt-fwd/arduino-lmic/packet_forwarder/sx127x_tx_rx/

两位作者围绕着IBM LMIC(LoRaMAC In C)做了一大堆移植,同时对接TTN(The Things Networks)。TTN是LoRa联盟成员,可以对接大量的报文转发器网关。

所以,在SPI驱动,SX127X寄存器访问完成的基础上,配合Matthijs/Thomas的LMIC设计,可以完成简单的单通道设计。但是还需要更多时间。

上一篇下一篇

猜你喜欢

热点阅读