Knowledge Base
HOME » KNOWLEDGE BASE » FORUM

SX1262 sensitivity performance after sleep.

Hi.
I have encountered a small sensitivity problem after sleep.
Recorded Lora signal with a vector generator and replayed over the cable directly to DUT.

After many tests, one sentence seems to be true :
- When SX1262 enters once into sleep mode it looses 1-2 dB on RX sensitivity.

RESET - CONFIG - RX: -135 dBm
RESET - CONFIG - SLEEP - STANDBY - RX : -133 dBm
RESET - CONFIG - RX : -135 dBm then SLEEP - STANDBY - RX -133 dBm

Every time after RESET-CONFIG without SLEEP is always 2 dB better.
Sleep makes something unknown for me what causing 2dB lost.

Does SX1262 do something when it gets from sleep to normal mode and it can have an influence on RX performance?

Tested with TCXO and XTAL - the same result observed.
Repeating calibration after sleep doesn't help.
Reset and again configuration - helps and sensitivity is recovered.

Any ideas ?
Avatar
Hi,

Thank you for the detailed explanation. It will help us a lot!

I forwarded the question to the team in charge of the design and let you know as soon as I get the answer.
Avatar
I have two questions:
* which type of SLEEP mode are you using? Cold or Warm start?
* during the "CONFIG" step, do you perform specific configuration (through register access for instance)?
Hi.
I am using Sleep with parameters :

Sx_SetSleep( SX_SLEEP_TYPE_WARM | SX_SLEEP_RTC_TIMEOUT_OFF );

This is equal : Sx_SetSleep(0x04);

The same problem is when chip enters to Sx_SetRxDutyCycle and it enters automatically to Sleep and Rx. After long searching, I found that entering into sleep is the problem.
After the return from sleep mode with TCXO, function Sx_GetDeviceErrors(); gives me XOSC start error, what is also strange, because it was previously configured to work with TCXO. But sensitivity degradation after sleep is noticeable booth with TCXO and XOSC.

My config looks like follow :

uint16_t sxErrors;
uint8_t paConfArray[] = { 0x04, 0x07, 0x00, 0x01 };

Sx_Reset();
Sx_ClearDeviceErrors();
Sx_SetStandby(SX_STANDBY_CLOCK_RC);
Sx_SetPacketType(SX_PACKET_TYPE_LORA);
Sx_SetRegulatorMode(SX_REGULATOR_MODE_DC_DC);
Sx_SetDio2AsRfSwitchCtrl(SX_DIO2_AS_RF_SWITCH_CTRL_ON);
Sx_SetDio3AsTcxoCtrl(SX_DIO3_TCXO_VOLT_1V8, SX_TIMEOUT_MS(1));

Sx_SetPaConfig(14);
Sx_SetOcpConfig(SX_OCP_MA(100));
Sx_SetTxParams(paConfArray, SX_TX_PARAMS_RAMP_40us);

Sx_SetRfFrequency(SX_FREQUENCY_HZ(869000000));
Sx_SetModulationParamsLora(SX_MOD_PARAMS_LORA_SF_9, SX_MOD_PARAMS_LORA_BW_62, SX_MOD_PARAMS_LORA_LOW_DATA_OPT_OFF);
Sx_SetPacketParamsLora(12, SX_PACKET_PARAMS_LORA_HDR_EXPLICIT, 16, SX_PACKET_PARAMS_LORA_CRC_ON, SX_PACKET_PARAMS_LORA_INV_IQ_ON); // inv on and off tested and no influence.
Sx_SetLoRaSymbNumTimeout(110);
Sx_StopTimerOnPreamble(SX_STOP_TIMER_ON_PREAMBLE);
Sx_SetSyncWordLora(0xCAFEu); // tested different values - no influence
Sx_Calibrate(SX_CALIB_FLAG_ALL);
Sx_CalibrateImage(SX_CALIB_IMAGE_FREQ_863_870);
Sx_SetRxTxFallbackMode(SX_RXTX_FALLBACK_STBY_RC);
Sx_SetRxGain(SX_RX_GAIN_BOOSTED);
Sx_SetDioIrqParams(&dioIrqParams;);

sxErrors = Sx_GetDeviceErrors();

if(sxErrors != 0)
{
DEBUG(1,("SX1262 ERRORS : 0xX", sxErrors));
}
Avatar
Hello,

The lost of sensitivity you reported is probably due to the fact that the configuration of the register holding the "SX_RX_GAIN_BOOSTED" configuration is not retained in case of a warm reset sleep mode. It means that, when the chip wakes up from sleep mode, the register will have the reset value - i.e. "standard" Rx.

Two possible solutions:
* call Sx_SetRxGain(SX_RX_GAIN_BOOSTED) before each call to Sx_SetRx(timeout).
* call Sx_SetRxGain(SX_RX_GAIN_BOOSTED) after wake up
Hi,
it will work when I would use manual Duty cycled RX.
But in fact, I am using SetRxDutyCycle and I haven't the possibility to set using boosted LNA every time in this mode.

In the specification for this radio I found only this :

"1. Note
that only configuration for the activated modem before going to sleep is retained. Configuration of the other modems is lost and must be re-configured."

What exactly that means?
RX_BOOST is not a member of LORA modem configuration?
Which registers are members of LORA configuration?
Whole Table settings from chapter "Table 12-1: List of Registers" are lost after sleep?

Thanks for help