cancel
Showing results for 
Search instead for 
Did you mean: 

How to increase LPAWUR range

angus123
Associate III

Hello :)

 

I am developing an application using a pair of NUCLEO-WL33CC1. I am testing the LPAWUR, using the LPAWUR_WakeupRadio_Rx and MRSUBG_WakeupRadio_Tx examples as a starting point. The examples work fine, but the range is very short, only about 0.3 m. How can I increase my range? I am able to achieve 50m+ when sending my normal radio telemetry, just the LPAWUR range is very short. This makes me believe the antenna and hardware TX path is fine, and it is a configuration issue with LPAWUR. Can anyone reccomend some changes to the following code? I tried enabling the AGC which had no positive effect. Here is my init function for LPAWUR:

static void MX_LPAWUR_Init(void)
{

/* USER CODE BEGIN LPAWUR_Init 0 */

/* USER CODE END LPAWUR_Init 0 */

/* USER CODE BEGIN LPAWUR_Init 1 */

/* USER CODE END LPAWUR_Init 1 */

/** Initializes the RF Config
*/
LPAWUR_RadioInitStruct.EnergyDetectorIcal = ED_ICAL_VBAT_3_25_TO_3_50;
LPAWUR_RadioInitStruct.ClockDivider = 7;
LPAWUR_RadioInitStruct.EnergyDetectorSwitch = DISABLE;
LPAWUR_RadioInitStruct.AgcResetMode = AGC_RESET_MODE_NEVER;
LPAWUR_RadioInitStruct.AgcHoldMode = AGC_HOLD_AFTER_PREAMBLE;
LPAWUR_RadioInitStruct.AgcMode = AGC_MODE_OFF;
LPAWUR_RadioInitStruct.AgcHiLvl = AGC_VBAT_0800;
LPAWUR_RadioInitStruct.DCCurrentSubtraction = ENABLE;
LPAWUR_RadioInitStruct.AgcLoLvl = AGC_LOW_0;
HAL_LPAWUR_RFConfigInit(&LPAWUR_RadioInitStruct);

/** Initializes the Frame
*/
LPAWUR_FrameInitStruct.TRecAlgoSel = TWO_STEPS;
LPAWUR_FrameInitStruct.SlowClkCyclePerBitCnt = 16;
LPAWUR_FrameInitStruct.PayloadLength = 7;
LPAWUR_FrameInitStruct.SyncThr = 16;
LPAWUR_FrameInitStruct.SyncLength = 0;
LPAWUR_FrameInitStruct.PreambleThrCnt = 0x3C;
LPAWUR_FrameInitStruct.PreambleEnable = ENABLE;
LPAWUR_FrameInitStruct.FrameSyncCntTimeout = 0x60;
LPAWUR_FrameInitStruct.FrameSyncPattenHigh = 0x00;
LPAWUR_FrameInitStruct.FrameSyncPatternLow = 0x6969;
LPAWUR_FrameInitStruct.KpGain = 6;
LPAWUR_FrameInitStruct.KiGain = 10;
HAL_LPAWUR_FrameInit(&LPAWUR_FrameInitStruct);
LL_LPAWUR_SetState(ENABLE);
/* USER CODE BEGIN LPAWUR_Init 2 */

/* USER CODE END LPAWUR_Init 2 */

}

 

And here is my MRSUBG init function in the device I am using to wake my sleeping device

// Re-init the radio with the required LPAWUR configuration
LPAWUR_radio_wake_config.lFrequencyBase = 868000000;
LPAWUR_radio_wake_config.xModulationSelect = MOD_OOK;
LPAWUR_radio_wake_config.lDatarate = 2000;
LPAWUR_radio_wake_config.lFreqDev = 20000;
LPAWUR_radio_wake_config.lBandwidth = 50000;
LPAWUR_radio_wake_config.dsssExp = 0;
LPAWUR_radio_wake_config.outputPower = 14;
LPAWUR_radio_wake_config.PADrvMode = PA_DRV_TX_HP;
HAL_MRSubG_Init(&LPAWUR_radio_wake_config);

/** Configures the packet parameters
*/

LPAWUR_packet_settings.PreambleLength = 0;
LPAWUR_packet_settings.PostambleLength = 0;
LPAWUR_packet_settings.SyncLength = 0;
LPAWUR_packet_settings.SyncWord = 0x88888888;
LPAWUR_packet_settings.FixVarLength = FIXED;
LPAWUR_packet_settings.PreambleSequence = PRE_SEQ_0101;
LPAWUR_packet_settings.PostambleSequence = POST_SEQ_0101;
LPAWUR_packet_settings.CrcMode = PKT_NO_CRC;
LPAWUR_packet_settings.Coding = CODING_MANCHESTER;
LPAWUR_packet_settings.DataWhitening = DISABLE;
LPAWUR_packet_settings.LengthWidth = BYTE_LEN_1;
LPAWUR_packet_settings.SyncPresent = DISABLE;

Edited to apply source code formatting - please see How to insert source code for future reference.

2 REPLIES 2
Billy OWEN
ST Employee

Hi @angus123 

 

This post has been escalated to the ST Online Support Team for additional assistance.  We'll contact you directly.

 

Regards,

Billy

STTwo-32
ST Employee

Hello @angus123 

As you can see on the chapter 7.8.1 of the UM 3418:

"The LPAWUR can work on three different frequency bands. By
default, this feature is not connected to the antenna path. C3 is OFF". So, you have to connect the C3 according to the desired frequency range.

Best Regards.

STTwo-32

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.