SX1262 calibration in RC mode

This commit is contained in:
Mark Qvist 2024-02-11 20:02:17 +01:00
parent 06de901623
commit bbc267ac80
2 changed files with 16 additions and 13 deletions

Binary file not shown.

View File

@ -365,17 +365,27 @@ int sx126x::begin(long frequency)
} }
} }
loraMode(); if (_rxen != -1) {
// cannot access registers in sleep mode on sx1262, set to idle instead pinMode(_rxen, OUTPUT);
idle(); }
// Put in STDBY_RC mode before calibration
uint8_t mode_byte = 0x00;
executeOpcode(OP_STANDBY_6X, &mode_byte, 1);
// calibrate RC64k, RC13M, PLL, ADC and image
uint8_t calibrate = 0x7F;
executeOpcode(OP_CALIBRATE_6X, &calibrate, 1);
#if HAS_TCXO #if HAS_TCXO
enableTCXO(); enableTCXO();
#endif #endif
if (_rxen != -1) { loraMode();
pinMode(_rxen, OUTPUT); idle();
}
// Set sync word
setSyncWord(SYNC_WORD_6X);
#if DIO2_AS_RF_SWITCH #if DIO2_AS_RF_SWITCH
// enable dio2 rf switch // enable dio2 rf switch
@ -385,13 +395,6 @@ int sx126x::begin(long frequency)
rxAntEnable(); rxAntEnable();
// Set sync word
setSyncWord(SYNC_WORD_6X);
// calibrate RC64k, RC13M, PLL, ADC and image
uint8_t calibrate = 0x7F;
executeOpcode(OP_CALIBRATE_6X, &calibrate, 1);
setFrequency(frequency); setFrequency(frequency);
// set output power to 2 dBm // set output power to 2 dBm