SX127x - Sync with LoRaLib v3.0.2
This commit is contained in:
parent
d29be7a252
commit
0db8813682
9 changed files with 22 additions and 54 deletions
|
@ -6,7 +6,7 @@ SX1272::SX1272(Module* mod) : SX127x(mod) {
|
||||||
|
|
||||||
uint8_t SX1272::begin(float freq, float bw, uint8_t sf, uint8_t cr, uint8_t syncWord, int8_t power) {
|
uint8_t SX1272::begin(float freq, float bw, uint8_t sf, uint8_t cr, uint8_t syncWord, int8_t power) {
|
||||||
// execute common part
|
// execute common part
|
||||||
uint8_t state = SX127x::begin(syncWord);
|
uint8_t state = SX127x::begin(SX1272_CHIP_VERSION, syncWord);
|
||||||
if(state != ERR_NONE) {
|
if(state != ERR_NONE) {
|
||||||
return(state);
|
return(state);
|
||||||
}
|
}
|
||||||
|
@ -52,12 +52,8 @@ uint8_t SX1272::setFrequency(float freq) {
|
||||||
return(ERR_INVALID_FREQUENCY);
|
return(ERR_INVALID_FREQUENCY);
|
||||||
}
|
}
|
||||||
|
|
||||||
// set frequency and if successful, save the new setting
|
// set frequency
|
||||||
uint8_t state = SX1272::setFrequencyRaw(freq);
|
return(SX1272::setFrequencyRaw(freq));
|
||||||
if(state == ERR_NONE) {
|
|
||||||
SX127x::_freq = freq;
|
|
||||||
}
|
|
||||||
return(state);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t SX1272::setBandwidth(float bw) {
|
uint8_t SX1272::setBandwidth(float bw) {
|
||||||
|
@ -179,11 +175,6 @@ uint8_t SX1272::setOutputPower(int8_t power) {
|
||||||
state |= _mod->SPIsetRegValue(SX1272_REG_PA_DAC, SX127X_PA_BOOST_ON, 2, 0);
|
state |= _mod->SPIsetRegValue(SX1272_REG_PA_DAC, SX127X_PA_BOOST_ON, 2, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// configuration successful, save new setting
|
|
||||||
if(state == ERR_NONE) {
|
|
||||||
_power = power;
|
|
||||||
}
|
|
||||||
|
|
||||||
return(state);
|
return(state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,9 @@
|
||||||
#define SX1272_AGC_AUTO_OFF 0b00000000 // 2 2 LNA gain set by REG_LNA
|
#define SX1272_AGC_AUTO_OFF 0b00000000 // 2 2 LNA gain set by REG_LNA
|
||||||
#define SX1272_AGC_AUTO_ON 0b00000100 // 2 2 LNA gain set by internal AGC loop
|
#define SX1272_AGC_AUTO_ON 0b00000100 // 2 2 LNA gain set by internal AGC loop
|
||||||
|
|
||||||
|
//SX127X_REG_VERSION
|
||||||
|
#define SX1272_CHIP_VERSION 0x22
|
||||||
|
|
||||||
class SX1272: public SX127x {
|
class SX1272: public SX127x {
|
||||||
public:
|
public:
|
||||||
// constructor
|
// constructor
|
||||||
|
|
|
@ -10,10 +10,6 @@ uint8_t SX1276::setFrequency(float freq) {
|
||||||
return(ERR_INVALID_FREQUENCY);
|
return(ERR_INVALID_FREQUENCY);
|
||||||
}
|
}
|
||||||
|
|
||||||
// set frequency and if successful, save the new setting
|
// set frequency
|
||||||
uint8_t state = SX1278::setFrequencyRaw(freq);
|
return(SX1278::setFrequencyRaw(freq));
|
||||||
if(state == ERR_NONE) {
|
|
||||||
SX127x::_freq = freq;
|
|
||||||
}
|
|
||||||
return(state);
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,11 +11,7 @@ uint8_t SX1277::setFrequency(float freq) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// set frequency and if successful, save the new setting
|
// set frequency and if successful, save the new setting
|
||||||
uint8_t state = SX1278::setFrequencyRaw(freq);
|
return(SX1278::setFrequencyRaw(freq));
|
||||||
if(state == ERR_NONE) {
|
|
||||||
SX127x::_freq = freq;
|
|
||||||
}
|
|
||||||
return(state);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t SX1277::setSpreadingFactor(uint8_t sf) {
|
uint8_t SX1277::setSpreadingFactor(uint8_t sf) {
|
||||||
|
|
|
@ -6,7 +6,7 @@ SX1278::SX1278(Module* mod) : SX127x(mod) {
|
||||||
|
|
||||||
uint8_t SX1278::begin(float freq, float bw, uint8_t sf, uint8_t cr, uint8_t syncWord, int8_t power) {
|
uint8_t SX1278::begin(float freq, float bw, uint8_t sf, uint8_t cr, uint8_t syncWord, int8_t power) {
|
||||||
// execute common part
|
// execute common part
|
||||||
uint8_t state = SX127x::begin(syncWord);
|
uint8_t state = SX127x::begin(SX1278_CHIP_VERSION, syncWord);
|
||||||
if(state != ERR_NONE) {
|
if(state != ERR_NONE) {
|
||||||
return(state);
|
return(state);
|
||||||
}
|
}
|
||||||
|
@ -52,12 +52,8 @@ uint8_t SX1278::setFrequency(float freq) {
|
||||||
return(ERR_INVALID_FREQUENCY);
|
return(ERR_INVALID_FREQUENCY);
|
||||||
}
|
}
|
||||||
|
|
||||||
// set frequency and if successful, save the new setting
|
// set frequency
|
||||||
uint8_t state = SX1278::setFrequencyRaw(freq);
|
return(SX1278::setFrequencyRaw(freq));
|
||||||
if(state == ERR_NONE) {
|
|
||||||
SX127x::_freq = freq;
|
|
||||||
}
|
|
||||||
return(state);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t SX1278::setBandwidth(float bw) {
|
uint8_t SX1278::setBandwidth(float bw) {
|
||||||
|
@ -190,11 +186,6 @@ uint8_t SX1278::setOutputPower(int8_t power) {
|
||||||
state |= _mod->SPIsetRegValue(SX1278_REG_PA_DAC, SX127X_PA_BOOST_ON, 2, 0);
|
state |= _mod->SPIsetRegValue(SX1278_REG_PA_DAC, SX127X_PA_BOOST_ON, 2, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// configuration successful, save new setting
|
|
||||||
if(state == ERR_NONE) {
|
|
||||||
_power = power;
|
|
||||||
}
|
|
||||||
|
|
||||||
return(state);
|
return(state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -61,6 +61,9 @@
|
||||||
#define SX1278_AGC_AUTO_OFF 0b00000000 // 2 2 LNA gain set by REG_LNA
|
#define SX1278_AGC_AUTO_OFF 0b00000000 // 2 2 LNA gain set by REG_LNA
|
||||||
#define SX1278_AGC_AUTO_ON 0b00000100 // 2 2 LNA gain set by internal AGC loop
|
#define SX1278_AGC_AUTO_ON 0b00000100 // 2 2 LNA gain set by internal AGC loop
|
||||||
|
|
||||||
|
//SX127X_REG_VERSION
|
||||||
|
#define SX1278_CHIP_VERSION 0x12
|
||||||
|
|
||||||
class SX1278: public SX127x {
|
class SX1278: public SX127x {
|
||||||
public:
|
public:
|
||||||
// constructor
|
// constructor
|
||||||
|
|
|
@ -10,10 +10,6 @@ uint8_t SX1279::setFrequency(float freq) {
|
||||||
return(ERR_INVALID_FREQUENCY);
|
return(ERR_INVALID_FREQUENCY);
|
||||||
}
|
}
|
||||||
|
|
||||||
// set frequency and if successful, save the new setting
|
// set frequency
|
||||||
uint8_t state = SX1278::setFrequencyRaw(freq);
|
return(SX1278::setFrequencyRaw(freq));
|
||||||
if(state == ERR_NONE) {
|
|
||||||
SX127x::_freq = freq;
|
|
||||||
}
|
|
||||||
return(state);
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@ SX127x::SX127x(Module* mod) {
|
||||||
_mod = mod;
|
_mod = mod;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t SX127x::begin(uint8_t syncWord) {
|
uint8_t SX127x::begin(uint8_t chipVersion, uint8_t syncWord) {
|
||||||
// set module properties
|
// set module properties
|
||||||
_mod->init(USE_SPI, INT_BOTH);
|
_mod->init(USE_SPI, INT_BOTH);
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ uint8_t SX127x::begin(uint8_t syncWord) {
|
||||||
bool flagFound = false;
|
bool flagFound = false;
|
||||||
while((i < 10) && !flagFound) {
|
while((i < 10) && !flagFound) {
|
||||||
uint8_t version = _mod->SPIreadRegister(SX127X_REG_VERSION);
|
uint8_t version = _mod->SPIreadRegister(SX127X_REG_VERSION);
|
||||||
if(version == 0x12) {
|
if(version == chipVersion) {
|
||||||
flagFound = true;
|
flagFound = true;
|
||||||
} else {
|
} else {
|
||||||
#ifdef KITELIB_DEBUG
|
#ifdef KITELIB_DEBUG
|
||||||
|
@ -229,12 +229,7 @@ uint8_t SX127x::setSyncWord(uint8_t syncWord) {
|
||||||
setMode(SX127X_STANDBY);
|
setMode(SX127X_STANDBY);
|
||||||
|
|
||||||
// write register
|
// write register
|
||||||
uint8_t state = _mod->SPIsetRegValue(SX127X_REG_SYNC_WORD, syncWord);
|
return(_mod->SPIsetRegValue(SX127X_REG_SYNC_WORD, syncWord));
|
||||||
if(state == ERR_NONE) {
|
|
||||||
_syncWord = syncWord;
|
|
||||||
}
|
|
||||||
|
|
||||||
return(state);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t SX127x::setFrequencyRaw(float newFreq) {
|
uint8_t SX127x::setFrequencyRaw(float newFreq) {
|
||||||
|
|
|
@ -173,7 +173,7 @@ class SX127x {
|
||||||
float lastPacketSNR;
|
float lastPacketSNR;
|
||||||
|
|
||||||
// basic methods
|
// basic methods
|
||||||
uint8_t begin(uint8_t syncWord);
|
uint8_t begin(uint8_t chipVersion, uint8_t syncWord);
|
||||||
uint8_t transmit(uint8_t* data, size_t len);
|
uint8_t transmit(uint8_t* data, size_t len);
|
||||||
uint8_t transmit(const char* str);
|
uint8_t transmit(const char* str);
|
||||||
uint8_t transmit(String& str);
|
uint8_t transmit(String& str);
|
||||||
|
@ -189,12 +189,9 @@ class SX127x {
|
||||||
protected:
|
protected:
|
||||||
Module* _mod;
|
Module* _mod;
|
||||||
|
|
||||||
float _freq;
|
|
||||||
float _bw;
|
float _bw;
|
||||||
uint8_t _sf;
|
uint8_t _sf;
|
||||||
uint8_t _cr;
|
uint8_t _cr;
|
||||||
uint8_t _syncWord;
|
|
||||||
int8_t _power;
|
|
||||||
|
|
||||||
uint8_t tx(char* data, uint8_t length);
|
uint8_t tx(char* data, uint8_t length);
|
||||||
uint8_t rxSingle(char* data, uint8_t* length);
|
uint8_t rxSingle(char* data, uint8_t* length);
|
||||||
|
|
Loading…
Add table
Reference in a new issue