[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
|
||||
onReceive KEYWORD2
|
||||
readData KEYWORD2
|
||||
directMode KEYWORD2
|
||||
packetMode KEYWORD2
|
||||
|
||||
# RF69-specific
|
||||
setBitRate KEYWORD2
|
||||
|
|
|
@ -321,5 +321,8 @@ int16_t SX1272::configFSK() {
|
|||
return(state);
|
||||
}
|
||||
|
||||
// set fast PLL hop
|
||||
state = _mod->SPIsetRegValue(SX1272_REG_PLL_HOP, SX127X_FAST_HOP_ON, 7, 7);
|
||||
|
||||
return(state);
|
||||
}
|
||||
|
|
|
@ -388,5 +388,8 @@ int16_t SX1278::configFSK() {
|
|||
return(state);
|
||||
}
|
||||
|
||||
// set fast PLL hop
|
||||
state = _mod->SPIsetRegValue(SX1278_REG_PLL_HOP, SX127X_FAST_HOP_ON, 7, 7);
|
||||
|
||||
return(state);
|
||||
}
|
||||
|
|
|
@ -413,6 +413,49 @@ int16_t 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() {
|
||||
// set mode to standby
|
||||
int16_t state = setMode(SX127X_STANDBY);
|
||||
|
@ -738,7 +781,7 @@ int16_t SX127x::setFrequencyDeviation(float freqDev) {
|
|||
}
|
||||
|
||||
// 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);
|
||||
}
|
||||
|
||||
|
|
|
@ -499,10 +499,11 @@
|
|||
#define SX127X_DIO1_PACK_FIFO_LEVEL 0b00000000 // 5 4
|
||||
#define SX127X_DIO1_PACK_FIFO_EMPTY 0b00010000 // 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
|
||||
#define SX127X_FAST_HOP_OFF 0b10000000 // 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_OFF 0b00000000 // 7 7 carrier frequency validated when FRF registers are written
|
||||
#define SX127X_FAST_HOP_ON 0b10000000 // 7 7 carrier frequency validated when FS modes are requested
|
||||
|
||||
// SX1272_REG_TCXO + SX1278_REG_TCXO
|
||||
#define SX127X_TCXO_INPUT_EXTERNAL 0b00000000 // 4 4 use external crystal oscillator
|
||||
|
@ -535,6 +536,8 @@ class SX127x {
|
|||
int16_t scanChannel();
|
||||
int16_t sleep();
|
||||
int16_t standby();
|
||||
int16_t directMode(uint32_t FRF = 0);
|
||||
int16_t packetMode();
|
||||
|
||||
// interrupt methods
|
||||
void setDio0Action(void (*func)(void));
|
||||
|
|
Loading…
Add table
Reference in a new issue