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();
// cannot access registers in sleep mode on sx1262, set to idle instead
idle();
if (_rxen != -1) {
pinMode(_rxen, OUTPUT);
}
// 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
enableTCXO();
#endif
if (_rxen != -1) {
pinMode(_rxen, OUTPUT);
}
loraMode();
idle();
// Set sync word
setSyncWord(SYNC_WORD_6X);
#if DIO2_AS_RF_SWITCH
// enable dio2 rf switch
@ -385,13 +395,6 @@ int sx126x::begin(long frequency)
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);
// set output power to 2 dBm