Add support for Arduino MKR WAN 1300 board
parent
b4558aa8f5
commit
678a64b2d1
31
src/LoRa.cpp
31
src/LoRa.cpp
|
@ -51,7 +51,7 @@
|
||||||
#define MAX_PKT_LENGTH 255
|
#define MAX_PKT_LENGTH 255
|
||||||
|
|
||||||
LoRaClass::LoRaClass() :
|
LoRaClass::LoRaClass() :
|
||||||
_spiSettings(8E6, MSBFIRST, SPI_MODE0),
|
_spiSettings(LORA_DEFAULT_SPI_FREQUENCY, MSBFIRST, SPI_MODE0),
|
||||||
_ss(LORA_DEFAULT_SS_PIN), _reset(LORA_DEFAULT_RESET_PIN), _dio0(LORA_DEFAULT_DIO0_PIN),
|
_ss(LORA_DEFAULT_SS_PIN), _reset(LORA_DEFAULT_RESET_PIN), _dio0(LORA_DEFAULT_DIO0_PIN),
|
||||||
_frequency(0),
|
_frequency(0),
|
||||||
_packetIndex(0),
|
_packetIndex(0),
|
||||||
|
@ -64,6 +64,23 @@ LoRaClass::LoRaClass() :
|
||||||
|
|
||||||
int LoRaClass::begin(long frequency)
|
int LoRaClass::begin(long frequency)
|
||||||
{
|
{
|
||||||
|
#ifdef ARDUINO_SAMD_MKRWAN1300
|
||||||
|
pinMode(LORA_IRQ_DUMB, OUTPUT);
|
||||||
|
digitalWrite(LORA_IRQ_DUMB, LOW);
|
||||||
|
|
||||||
|
// Hardware reset
|
||||||
|
pinMode(LORA_BOOT0, OUTPUT);
|
||||||
|
digitalWrite(LORA_BOOT0, LOW);
|
||||||
|
|
||||||
|
pinMode(LORA_RESET, OUTPUT);
|
||||||
|
digitalWrite(LORA_RESET, HIGH);
|
||||||
|
delay(200);
|
||||||
|
digitalWrite(LORA_RESET, LOW);
|
||||||
|
delay(200);
|
||||||
|
digitalWrite(LORA_RESET, HIGH);
|
||||||
|
delay(50);
|
||||||
|
#endif
|
||||||
|
|
||||||
// setup pins
|
// setup pins
|
||||||
pinMode(_ss, OUTPUT);
|
pinMode(_ss, OUTPUT);
|
||||||
// set SS high
|
// set SS high
|
||||||
|
@ -80,7 +97,7 @@ int LoRaClass::begin(long frequency)
|
||||||
}
|
}
|
||||||
|
|
||||||
// start SPI
|
// start SPI
|
||||||
SPI.begin();
|
LORA_DEFAULT_SPI.begin();
|
||||||
|
|
||||||
// check version
|
// check version
|
||||||
uint8_t version = readRegister(REG_VERSION);
|
uint8_t version = readRegister(REG_VERSION);
|
||||||
|
@ -119,7 +136,7 @@ void LoRaClass::end()
|
||||||
sleep();
|
sleep();
|
||||||
|
|
||||||
// stop SPI
|
// stop SPI
|
||||||
SPI.end();
|
LORA_DEFAULT_SPI.end();
|
||||||
}
|
}
|
||||||
|
|
||||||
int LoRaClass::beginPacket(int implicitHeader)
|
int LoRaClass::beginPacket(int implicitHeader)
|
||||||
|
@ -511,10 +528,10 @@ uint8_t LoRaClass::singleTransfer(uint8_t address, uint8_t value)
|
||||||
|
|
||||||
digitalWrite(_ss, LOW);
|
digitalWrite(_ss, LOW);
|
||||||
|
|
||||||
SPI.beginTransaction(_spiSettings);
|
LORA_DEFAULT_SPI.beginTransaction(_spiSettings);
|
||||||
SPI.transfer(address);
|
LORA_DEFAULT_SPI.transfer(address);
|
||||||
response = SPI.transfer(value);
|
response = LORA_DEFAULT_SPI.transfer(value);
|
||||||
SPI.endTransaction();
|
LORA_DEFAULT_SPI.endTransaction();
|
||||||
|
|
||||||
digitalWrite(_ss, HIGH);
|
digitalWrite(_ss, HIGH);
|
||||||
|
|
||||||
|
|
20
src/LoRa.h
20
src/LoRa.h
|
@ -7,12 +7,22 @@
|
||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
#include <SPI.h>
|
#include <SPI.h>
|
||||||
|
|
||||||
#define LORA_DEFAULT_SS_PIN 10
|
#ifdef ARDUINO_SAMD_MKRWAN1300
|
||||||
#define LORA_DEFAULT_RESET_PIN 9
|
#define LORA_DEFAULT_SPI SPI1
|
||||||
#define LORA_DEFAULT_DIO0_PIN 2
|
#define LORA_DEFAULT_SPI_FREQUENCY 100000
|
||||||
|
#define LORA_DEFAULT_SS_PIN LORA_IRQ_DUMB
|
||||||
|
#define LORA_DEFAULT_RESET_PIN -1
|
||||||
|
#define LORA_DEFAULT_DIO0_PIN -1
|
||||||
|
#else
|
||||||
|
#define LORA_DEFAULT_SPI SPI
|
||||||
|
#define LORA_DEFAULT_SPI_FREQUENCY 8E6
|
||||||
|
#define LORA_DEFAULT_SS_PIN 10
|
||||||
|
#define LORA_DEFAULT_RESET_PIN 9
|
||||||
|
#define LORA_DEFAULT_DIO0_PIN 2
|
||||||
|
#endif
|
||||||
|
|
||||||
#define PA_OUTPUT_RFO_PIN 0
|
#define PA_OUTPUT_RFO_PIN 0
|
||||||
#define PA_OUTPUT_PA_BOOST_PIN 1
|
#define PA_OUTPUT_PA_BOOST_PIN 1
|
||||||
|
|
||||||
class LoRaClass : public Stream {
|
class LoRaClass : public Stream {
|
||||||
public:
|
public:
|
||||||
|
|
Loading…
Reference in New Issue