[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"
|
||||
|
||||
SX1261::SX1261(Module* mod)
|
||||
: SX1262(mod) {
|
||||
SX1261::SX1261(Module* mod): SX1262(mod) {
|
||||
|
||||
}
|
||||
|
||||
|
@ -16,7 +15,8 @@ int16_t SX1261::setOutputPower(int8_t power) {
|
|||
int16_t state = readRegister(SX126X_REG_OCP_CONFIGURATION, &ocp, 1);
|
||||
RADIOLIB_ASSERT(state);
|
||||
|
||||
state = setOptimalLowPowerPaConfig(&power);
|
||||
// set PA config
|
||||
state = SX126x::setPaConfig(0x04, SX126X_PA_CONFIG_SX1261, 0x00);
|
||||
RADIOLIB_ASSERT(state);
|
||||
|
||||
// set output power
|
||||
|
@ -25,20 +25,5 @@ int16_t SX1261::setOutputPower(int8_t power) {
|
|||
RADIOLIB_ASSERT(state);
|
||||
|
||||
// restore OCP configuration
|
||||
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;
|
||||
return(writeRegister(SX126X_REG_OCP_CONFIGURATION, &ocp, 1));
|
||||
}
|
||||
|
|
|
@ -35,7 +35,7 @@ class SX1261 : public SX1262 {
|
|||
#ifndef RADIOLIB_GODMODE
|
||||
private:
|
||||
#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);
|
||||
RADIOLIB_ASSERT(state);
|
||||
|
||||
// set PA config
|
||||
state = SX126x::setPaConfig(0x04, SX126X_PA_CONFIG_SX1262);
|
||||
RADIOLIB_ASSERT(state);
|
||||
|
||||
// set output power
|
||||
// TODO power ramp time configuration
|
||||
state = SX126x::setTxParams(power);
|
||||
|
|
|
@ -5,6 +5,9 @@
|
|||
#include "../../Module.h"
|
||||
#include "SX126x.h"
|
||||
|
||||
//SX126X_CMD_SET_PA_CONFIG
|
||||
#define SX126X_PA_CONFIG_SX1262 0x00
|
||||
|
||||
/*!
|
||||
\class SX1262
|
||||
|
||||
|
|
|
@ -77,6 +77,10 @@ int16_t SX1268::setOutputPower(int8_t power) {
|
|||
int16_t state = readRegister(SX126X_REG_OCP_CONFIGURATION, &ocp, 1);
|
||||
RADIOLIB_ASSERT(state);
|
||||
|
||||
// set PA config
|
||||
state = SX126x::setPaConfig(0x04, SX126X_PA_CONFIG_SX1268);
|
||||
RADIOLIB_ASSERT(state);
|
||||
|
||||
// set output power
|
||||
// TODO power ramp time configuration
|
||||
state = SX126x::setTxParams(power);
|
||||
|
|
Loading…
Add table
Reference in a new issue