Add support for Arduino MKR WAN 1300 board

mkr-wan-1300
Sandeep Mistry 2018-02-16 13:08:48 -05:00
parent b4558aa8f5
commit 678a64b2d1
2 changed files with 39 additions and 12 deletions

View File

@ -51,7 +51,7 @@
#define MAX_PKT_LENGTH 255
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),
_frequency(0),
_packetIndex(0),
@ -64,6 +64,23 @@ LoRaClass::LoRaClass() :
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
pinMode(_ss, OUTPUT);
// set SS high
@ -80,7 +97,7 @@ int LoRaClass::begin(long frequency)
}
// start SPI
SPI.begin();
LORA_DEFAULT_SPI.begin();
// check version
uint8_t version = readRegister(REG_VERSION);
@ -119,7 +136,7 @@ void LoRaClass::end()
sleep();
// stop SPI
SPI.end();
LORA_DEFAULT_SPI.end();
}
int LoRaClass::beginPacket(int implicitHeader)
@ -511,10 +528,10 @@ uint8_t LoRaClass::singleTransfer(uint8_t address, uint8_t value)
digitalWrite(_ss, LOW);
SPI.beginTransaction(_spiSettings);
SPI.transfer(address);
response = SPI.transfer(value);
SPI.endTransaction();
LORA_DEFAULT_SPI.beginTransaction(_spiSettings);
LORA_DEFAULT_SPI.transfer(address);
response = LORA_DEFAULT_SPI.transfer(value);
LORA_DEFAULT_SPI.endTransaction();
digitalWrite(_ss, HIGH);

View File

@ -7,12 +7,22 @@
#include <Arduino.h>
#include <SPI.h>
#define LORA_DEFAULT_SS_PIN 10
#define LORA_DEFAULT_RESET_PIN 9
#define LORA_DEFAULT_DIO0_PIN 2
#ifdef ARDUINO_SAMD_MKRWAN1300
#define LORA_DEFAULT_SPI SPI1
#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_PA_BOOST_PIN 1
#define PA_OUTPUT_RFO_PIN 0
#define PA_OUTPUT_PA_BOOST_PIN 1
class LoRaClass : public Stream {
public: