Browse Source

Also implement LR11x10 AGC reset

Similar to SX126x but simpler.
pull/1743/head
Wessel Nieboer 3 months ago
parent
commit
f54948e06d
No known key found for this signature in database GPG Key ID: 27BB1C3D63DEEFFF
  1. 4
      src/helpers/radiolib/CustomLR1110Wrapper.h
  2. 17
      src/helpers/radiolib/LR11x0Reset.h

4
src/helpers/radiolib/CustomLR1110Wrapper.h

@ -2,11 +2,13 @@
#include "CustomLR1110.h"
#include "RadioLibWrappers.h"
#include "LR11x0Reset.h"
class CustomLR1110Wrapper : public RadioLibWrapper {
public:
CustomLR1110Wrapper(CustomLR1110& radio, mesh::MainBoard& board) : RadioLibWrapper(radio, board) { }
bool isReceivingPacket() override {
void doResetAGC() override { lr11x0ResetAGC((LR11x0 *)_radio); }
bool isReceivingPacket() override {
return ((CustomLR1110 *)_radio)->isReceiving();
}
float getCurrentRSSI() override {

17
src/helpers/radiolib/LR11x0Reset.h

@ -0,0 +1,17 @@
#pragma once
#include <RadioLib.h>
// Full receiver reset for LR11x0-family chips (LR1110, LR1120, LR1121).
// Warm sleep powers down analog, calibrate(0x3F) refreshes all calibration blocks,
// then re-applies RX settings that calibration may reset.
inline void lr11x0ResetAGC(LR11x0* radio) {
radio->sleep(true, 0);
radio->standby(RADIOLIB_LR11X0_STANDBY_RC, true);
radio->calibrate(RADIOLIB_LR11X0_CALIBRATE_ALL);
#ifdef RX_BOOSTED_GAIN
radio->setRxBoostedGainMode(RX_BOOSTED_GAIN);
#endif
}
Loading…
Cancel
Save