2024-10-03 08:13 AM
Hello!
I am using the STM32WL55 microcontroller and the NUCLEO WL55JC1 development board. My goal is to resume execution after a low power mode through a LoRa radio reception. In run mode, the microcontroller can exchange radio signals. My problem is that once the microcontroller enters low power mode, the radio cannot wake it up, and the microcontroller remains in low power mode. I have tried various low power modes: sleep, stop 0, 1, 2 without success.
Before entering low power mode, I enable the radio in reception with Radio.Rx(0), but the Rxdone interrupt function is not executed. Does anyone know a way to solve this problem? Thanks
Here example code:
...
Radio.Rx(0); /*Radio Continue receiving*/
//none of them wake up after radio signal
// Go into STOP0
//HAL_PWR_EnterSTOPMode(PWR_MAINREGULATOR_ON, PWR_STOPENTRY_WFI);
// Go into STOP1
//HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);
// Go intoSTOP2
//HAL_PWREx_EnterSTOP2Mode(PWR_STOPENTRY_WFI);
//Go into Sleep Mode
HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON,PWR_SLEEPENTRY_WFI);
//RxDone not executed when micro in Low Power Mode
static void RxDone(uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr)
{
...
2024-10-04 07:46 AM
Actually, I am using the sequencer with the Localnetwork_Sensor example provided by the ST libraries. The sequencer calls UTIL_SEQ_Idle, and UTIL_PowerDriver.EnterStopMode(); UTIL_PowerDriver.ExitStopMode(); but the current consumption is still very high. It seems that it does not enter STOP2. What could be the cause?
I read that when using the sequencer, you should not invoke entering Low Power mode but only set UTIL_LPM_SetStopMode(1 << CFG_LPM_SENS_Id, UTIL_LPM_ENABLE); /*Re-enable STOP mode for sequencer*/. This way, the sequencer calls UTIL_PowerDriver.EnterStopMode();` as mentioned above