[SX126x] Added missing calls to setPaConfig
This commit is contained in:
parent
f316920bab
commit
b93aa3f38e
5 changed files with 16 additions and 20 deletions
|
@ -1,7 +1,6 @@
|
||||||
#include "SX1261.h"
|
#include "SX1261.h"
|
||||||
|
|
||||||
SX1261::SX1261(Module* mod)
|
SX1261::SX1261(Module* mod): SX1262(mod) {
|
||||||
: SX1262(mod) {
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,7 +15,8 @@ int16_t SX1261::setOutputPower(int8_t power) {
|
||||||
int16_t state = readRegister(SX126X_REG_OCP_CONFIGURATION, &ocp, 1);
|
int16_t state = readRegister(SX126X_REG_OCP_CONFIGURATION, &ocp, 1);
|
||||||
RADIOLIB_ASSERT(state);
|
RADIOLIB_ASSERT(state);
|
||||||
|
|
||||||
state = setOptimalLowPowerPaConfig(&power);
|
// set PA config
|
||||||
|
state = SX126x::setPaConfig(0x04, SX126X_PA_CONFIG_SX1261, 0x00);
|
||||||
RADIOLIB_ASSERT(state);
|
RADIOLIB_ASSERT(state);
|
||||||
|
|
||||||
// set output power
|
// set output power
|
||||||
|
@ -25,20 +25,5 @@ int16_t SX1261::setOutputPower(int8_t power) {
|
||||||
RADIOLIB_ASSERT(state);
|
RADIOLIB_ASSERT(state);
|
||||||
|
|
||||||
// restore OCP configuration
|
// restore OCP configuration
|
||||||
return writeRegister(SX126X_REG_OCP_CONFIGURATION, &ocp, 1);
|
return(writeRegister(SX126X_REG_OCP_CONFIGURATION, &ocp, 1));
|
||||||
}
|
|
||||||
|
|
||||||
int16_t SX1261::setOptimalLowPowerPaConfig(int8_t* inOutPower)
|
|
||||||
{
|
|
||||||
int16_t state;
|
|
||||||
if (*inOutPower > 10) {
|
|
||||||
state = SX126x::setPaConfig(0x04, SX126X_PA_CONFIG_SX1261, 0x00);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
state = SX126x::setPaConfig(0x01, SX126X_PA_CONFIG_SX1261, 0x00);
|
|
||||||
// changing the PaConfig means output power is now scaled so we get 3 dB less than requested.
|
|
||||||
// see datasheet table 13-21 and comments in setOptimalHiPowerPaConfig.
|
|
||||||
*inOutPower -= 3;
|
|
||||||
}
|
|
||||||
return state;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,7 +35,7 @@ class SX1261 : public SX1262 {
|
||||||
#ifndef RADIOLIB_GODMODE
|
#ifndef RADIOLIB_GODMODE
|
||||||
private:
|
private:
|
||||||
#endif
|
#endif
|
||||||
int16_t setOptimalLowPowerPaConfig(int8_t* inOutPower);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -84,6 +84,10 @@ int16_t SX1262::setOutputPower(int8_t power) {
|
||||||
int16_t state = readRegister(SX126X_REG_OCP_CONFIGURATION, &ocp, 1);
|
int16_t state = readRegister(SX126X_REG_OCP_CONFIGURATION, &ocp, 1);
|
||||||
RADIOLIB_ASSERT(state);
|
RADIOLIB_ASSERT(state);
|
||||||
|
|
||||||
|
// set PA config
|
||||||
|
state = SX126x::setPaConfig(0x04, SX126X_PA_CONFIG_SX1262);
|
||||||
|
RADIOLIB_ASSERT(state);
|
||||||
|
|
||||||
// set output power
|
// set output power
|
||||||
// TODO power ramp time configuration
|
// TODO power ramp time configuration
|
||||||
state = SX126x::setTxParams(power);
|
state = SX126x::setTxParams(power);
|
||||||
|
|
|
@ -5,6 +5,9 @@
|
||||||
#include "../../Module.h"
|
#include "../../Module.h"
|
||||||
#include "SX126x.h"
|
#include "SX126x.h"
|
||||||
|
|
||||||
|
//SX126X_CMD_SET_PA_CONFIG
|
||||||
|
#define SX126X_PA_CONFIG_SX1262 0x00
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\class SX1262
|
\class SX1262
|
||||||
|
|
||||||
|
|
|
@ -77,6 +77,10 @@ int16_t SX1268::setOutputPower(int8_t power) {
|
||||||
int16_t state = readRegister(SX126X_REG_OCP_CONFIGURATION, &ocp, 1);
|
int16_t state = readRegister(SX126X_REG_OCP_CONFIGURATION, &ocp, 1);
|
||||||
RADIOLIB_ASSERT(state);
|
RADIOLIB_ASSERT(state);
|
||||||
|
|
||||||
|
// set PA config
|
||||||
|
state = SX126x::setPaConfig(0x04, SX126X_PA_CONFIG_SX1268);
|
||||||
|
RADIOLIB_ASSERT(state);
|
||||||
|
|
||||||
// set output power
|
// set output power
|
||||||
// TODO power ramp time configuration
|
// TODO power ramp time configuration
|
||||||
state = SX126x::setTxParams(power);
|
state = SX126x::setTxParams(power);
|
||||||
|
|
Loading…
Add table
Reference in a new issue