[SX127x] Sync with LoRaLib v5.2.0
This commit is contained in:
parent
5bab97d16b
commit
17f6e585c3
5 changed files with 57 additions and 3 deletions
|
@ -53,6 +53,8 @@ setOutputPower KEYWORD2
|
||||||
listen KEYWORD2
|
listen KEYWORD2
|
||||||
onReceive KEYWORD2
|
onReceive KEYWORD2
|
||||||
readData KEYWORD2
|
readData KEYWORD2
|
||||||
|
directMode KEYWORD2
|
||||||
|
packetMode KEYWORD2
|
||||||
|
|
||||||
# RF69-specific
|
# RF69-specific
|
||||||
setBitRate KEYWORD2
|
setBitRate KEYWORD2
|
||||||
|
|
|
@ -321,5 +321,8 @@ int16_t SX1272::configFSK() {
|
||||||
return(state);
|
return(state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// set fast PLL hop
|
||||||
|
state = _mod->SPIsetRegValue(SX1272_REG_PLL_HOP, SX127X_FAST_HOP_ON, 7, 7);
|
||||||
|
|
||||||
return(state);
|
return(state);
|
||||||
}
|
}
|
||||||
|
|
|
@ -388,5 +388,8 @@ int16_t SX1278::configFSK() {
|
||||||
return(state);
|
return(state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// set fast PLL hop
|
||||||
|
state = _mod->SPIsetRegValue(SX1278_REG_PLL_HOP, SX127X_FAST_HOP_ON, 7, 7);
|
||||||
|
|
||||||
return(state);
|
return(state);
|
||||||
}
|
}
|
||||||
|
|
|
@ -413,6 +413,49 @@ int16_t SX127x::standby() {
|
||||||
return(setMode(SX127X_STANDBY));
|
return(setMode(SX127X_STANDBY));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int16_t SX127x::directMode(uint32_t FRF) {
|
||||||
|
// check modem
|
||||||
|
if(getActiveModem() != SX127X_FSK_OOK) {
|
||||||
|
return(ERR_WRONG_MODEM);
|
||||||
|
}
|
||||||
|
|
||||||
|
// user requested to start transmitting immediately (required for RTTY)
|
||||||
|
if(FRF != 0) {
|
||||||
|
_mod->SPIsetRegValue(SX127X_REG_FRF_MSB, (FRF & 0xFF0000) >> 16);
|
||||||
|
_mod->SPIsetRegValue(SX127X_REG_FRF_MID, (FRF & 0x00FF00) >> 8);
|
||||||
|
_mod->SPIsetRegValue(SX127X_REG_FRF_LSB, FRF & 0x0000FF);
|
||||||
|
|
||||||
|
return(setMode(SX127X_TX));
|
||||||
|
}
|
||||||
|
|
||||||
|
// set mode to standby
|
||||||
|
int16_t state = setMode(SX127X_STANDBY);
|
||||||
|
if(state != ERR_NONE) {
|
||||||
|
return(state);
|
||||||
|
}
|
||||||
|
|
||||||
|
// set DIO mapping
|
||||||
|
state = _mod->SPIsetRegValue(SX127X_REG_DIO_MAPPING_1, SX127X_DIO1_CONT_DCLK | SX127X_DIO2_CONT_DATA, 5, 2);
|
||||||
|
|
||||||
|
// set continuous mode
|
||||||
|
state |= _mod->SPIsetRegValue(SX127X_REG_PACKET_CONFIG_2, SX127X_DATA_MODE_CONTINUOUS, 6, 6);
|
||||||
|
if(state != ERR_NONE) {
|
||||||
|
return(state);
|
||||||
|
}
|
||||||
|
|
||||||
|
// start transmitting
|
||||||
|
return(setMode(SX127X_TX));
|
||||||
|
}
|
||||||
|
|
||||||
|
int16_t SX127x::packetMode() {
|
||||||
|
// check modem
|
||||||
|
if(getActiveModem() != SX127X_FSK_OOK) {
|
||||||
|
return(ERR_WRONG_MODEM);
|
||||||
|
}
|
||||||
|
|
||||||
|
return(_mod->SPIsetRegValue(SX127X_REG_PACKET_CONFIG_2, SX127X_DATA_MODE_PACKET, 6, 6));
|
||||||
|
}
|
||||||
|
|
||||||
int16_t SX127x::startReceive() {
|
int16_t SX127x::startReceive() {
|
||||||
// set mode to standby
|
// set mode to standby
|
||||||
int16_t state = setMode(SX127X_STANDBY);
|
int16_t state = setMode(SX127X_STANDBY);
|
||||||
|
@ -738,7 +781,7 @@ int16_t SX127x::setFrequencyDeviation(float freqDev) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// check frequency deviation range
|
// check frequency deviation range
|
||||||
if(!((freqDev + _br/2.0 <= 250.0) && (freqDev >= 0.6) && (freqDev <= 200.0))) {
|
if(!((freqDev + _br/2.0 <= 250.0) && (freqDev <= 200.0))) {
|
||||||
return(ERR_INVALID_FREQUENCY_DEVIATION);
|
return(ERR_INVALID_FREQUENCY_DEVIATION);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -499,10 +499,11 @@
|
||||||
#define SX127X_DIO1_PACK_FIFO_LEVEL 0b00000000 // 5 4
|
#define SX127X_DIO1_PACK_FIFO_LEVEL 0b00000000 // 5 4
|
||||||
#define SX127X_DIO1_PACK_FIFO_EMPTY 0b00010000 // 5 4
|
#define SX127X_DIO1_PACK_FIFO_EMPTY 0b00010000 // 5 4
|
||||||
#define SX127X_DIO1_PACK_FIFO_FULL 0b00100000 // 5 4
|
#define SX127X_DIO1_PACK_FIFO_FULL 0b00100000 // 5 4
|
||||||
|
#define SX127X_DIO2_CONT_DATA 0b00000000 // 3 2
|
||||||
|
|
||||||
// SX1272_REG_PLL_HOP + SX1278_REG_PLL_HOP
|
// SX1272_REG_PLL_HOP + SX1278_REG_PLL_HOP
|
||||||
#define SX127X_FAST_HOP_OFF 0b10000000 // 7 7 carrier frequency validated when FRF registers are written
|
#define SX127X_FAST_HOP_OFF 0b00000000 // 7 7 carrier frequency validated when FRF registers are written
|
||||||
#define SX127X_FAST_HOP_ON 0b00000000 // 7 7 carrier frequency validated when FS modes are requested
|
#define SX127X_FAST_HOP_ON 0b10000000 // 7 7 carrier frequency validated when FS modes are requested
|
||||||
|
|
||||||
// SX1272_REG_TCXO + SX1278_REG_TCXO
|
// SX1272_REG_TCXO + SX1278_REG_TCXO
|
||||||
#define SX127X_TCXO_INPUT_EXTERNAL 0b00000000 // 4 4 use external crystal oscillator
|
#define SX127X_TCXO_INPUT_EXTERNAL 0b00000000 // 4 4 use external crystal oscillator
|
||||||
|
@ -535,6 +536,8 @@ class SX127x {
|
||||||
int16_t scanChannel();
|
int16_t scanChannel();
|
||||||
int16_t sleep();
|
int16_t sleep();
|
||||||
int16_t standby();
|
int16_t standby();
|
||||||
|
int16_t directMode(uint32_t FRF = 0);
|
||||||
|
int16_t packetMode();
|
||||||
|
|
||||||
// interrupt methods
|
// interrupt methods
|
||||||
void setDio0Action(void (*func)(void));
|
void setDio0Action(void (*func)(void));
|
||||||
|
|
Loading…
Add table
Reference in a new issue