22
33#include " CustomSX1262.h"
44#include " RadioLibWrappers.h"
5+ #include " SX126xReset.h"
56
67class CustomSX1262Wrapper : public RadioLibWrapper {
78public:
@@ -23,33 +24,5 @@ class CustomSX1262Wrapper : public RadioLibWrapper {
2324 ((CustomSX1262 *)_radio)->sleep (false );
2425 }
2526
26- void doResetAGC () override {
27- auto * radio = (CustomSX1262 *)_radio;
28- // Warm sleep powers down analog frontend (resets AGC gain state)
29- radio->sleep (true );
30- // Wake to STDBY_RC for calibration
31- radio->standby (RADIOLIB_SX126X_STANDBY_RC, true );
32- // Recalibrate all blocks (ADC, PLL, image, oscillators)
33- uint8_t calData = RADIOLIB_SX126X_CALIBRATE_ALL;
34- radio->mod ->SPIwriteStream (RADIOLIB_SX126X_CMD_CALIBRATE, &calData, 1 , true , false );
35- radio->mod ->hal ->delay (5 );
36- uint32_t start = millis ();
37- while (radio->mod ->hal ->digitalRead (radio->mod ->getGpio ())) {
38- if (millis () - start > 50 ) break ;
39- radio->mod ->hal ->yield ();
40- }
41- // Re-apply RX settings that calibration may reset
42- #ifdef SX126X_DIO2_AS_RF_SWITCH
43- radio->setDio2AsRfSwitch (SX126X_DIO2_AS_RF_SWITCH);
44- #endif
45- #ifdef SX126X_RX_BOOSTED_GAIN
46- radio->setRxBoostedGainMode (SX126X_RX_BOOSTED_GAIN);
47- #endif
48- #ifdef SX126X_REGISTER_PATCH
49- uint8_t r_data = 0 ;
50- radio->readRegister (0x8B5 , &r_data, 1 );
51- r_data |= 0x01 ;
52- radio->writeRegister (0x8B5 , &r_data, 1 );
53- #endif
54- }
27+ void doResetAGC () override { sx126xResetAGC ((SX126x *)_radio); }
5528};
0 commit comments