cancel
Showing results for 
Search instead for 
Did you mean: 

STOP0 mode with STM32WL55JCx

MadANDT
Associate II

Hello everyone,

I'm currently working on several projects on STM32Cube IDE with each of them implementing the different low-power modes available on the Nucleo-WL55JC1 board (Sleep, LPR, LPS, STOP0-1-2, Standby and Shutdown).
For each of them, I followed some of the tutorials already made on other boards/CPUs online, such as the ST wiki page on PWR, in order to know which HAL functions and specific configurations should I look for. Even for small tips such as masking interrupts or configuring all unused GPIOs pins to Analog mode.

Everything was fine, until I arrived to the STOP0 mode.

To demonstrate any sleep mode, I'm usually trying to make the MCU go to sleep before waking it up with a button (waiting for an interrupt) and making blink some LEDs to testify the MCU has indeed woken up.

To measure the current consumption, I am using the Otii software solution. After downloading the code to the board, I use the Otii module as an external 3.3V power supply. Of course, I thoroughly check the jumper positions to avoid any abnormal current measures. 

I did, and re-did, the project several times, with different configurations (clock source/frequency, waiting for event, waiting for interruption, etc.) and the whole code seems correct: LEDs are blinking but the current I am measuring is superior to 5 mA...

Instead of the hundredths of µA the datasheet indicates.

I join the .ioc and .c files if you'd like to lend a hand and help me spot where the problem might be.

 

Huge thanks in advance!

M.A.

1 ACCEPTED SOLUTION

Accepted Solutions
MadANDT
Associate II

Hello again!

After changing some of the equipment: Otii3 / Otii Arc Pro → nRF Connect for Desktop / PPK2)
and configuration: measuring using E5V / GND pins on CN7 → PIN1/2 on jumper JP1,
at last, I finally managed to get the hundredths of µA in current consumption during STOP0 mode.

WL55-STOP0 mode _ nrf measure.jpg

I misunderstood what I was measuring: using E5V/GND pins on CN7 allows to record data on current consumption for the whole board (NUCLEO-WL55JC),
whereas using PIN1/2 on jumper JP1 measure the current consumption for the MCU only (STM32WL55JCx).
Below is how I set up my PPK2 (along with the software) to measure the current consumption:

draft-brouillon.jpg

View solution in original post

3 REPLIES 3
Sarra.S
ST Employee

Hello @MadANDT, Thank you for detailed description! 

You should be using WFE Exit so that it detects the EXTI Line (Internal or External). 

You can also check the FW examples provided in STM32CubeWL/Projects/NUCLEO-WL55JC/Examples/PWR at main · STMicroelectronics/STM32CubeWL · GitHub

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.

MadANDT
Associate II

Hello @Sarra.S!
Thank you for your attention to my problem.

I apologize for answering late, lab was closed since Thursday and I only got back today...

I tried what you suggested as my eighth test: a simple test of the HAL function HAL_PWREx_EnterSTOP0Mode(PWR_STOPENTRY_WFE) .

I configured the PA0 pin (user button 1) first as an external interrupt mode and in a second time as an external event mode (both times waiting on falling edge).

 /* USER CODE BEGIN WHILE */
  while (1)
  {
	  HAL_SuspendTick();

	  HAL_PWREx_EnterSTOP0Mode(PWR_STOPENTRY_WFE);

	  HAL_ResumeTick();
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

I also followed what was already done in the examples from the repository on GitHub.

Unfortunately, it turns out no matter what entry mode (WFI/WFE) I choose, the result is still the same, see screen capture below:

measuringCurrent2.png

• In green is the current consumption I am aiming for (which I obtained through an error on my wiring: the ST-LINK was still plugged on the board, resulting in a short-circuit).

• In blue is the simplest example (PA0 as an External event, falling edge) with the stop mode entry as WFE.

• In orange is what I got from following the example on GitHub (the dual core one, even though I want a single core version, I tried it anyway).

 

I don't know if I'm supposed to wait for a special flag to be raised/cleared, or if the problem is from elsewhere. Maybe the clock configuration (?), I used the same for every test, see screen capture.

clock_Conf.png

 

 If any idea crosses your mind, I'm still looking for help.
Many thanks in advance!

 

M.A.

 

 

MadANDT
Associate II

Hello again!

After changing some of the equipment: Otii3 / Otii Arc Pro → nRF Connect for Desktop / PPK2)
and configuration: measuring using E5V / GND pins on CN7 → PIN1/2 on jumper JP1,
at last, I finally managed to get the hundredths of µA in current consumption during STOP0 mode.

WL55-STOP0 mode _ nrf measure.jpg

I misunderstood what I was measuring: using E5V/GND pins on CN7 allows to record data on current consumption for the whole board (NUCLEO-WL55JC),
whereas using PIN1/2 on jumper JP1 measure the current consumption for the MCU only (STM32WL55JCx).
Below is how I set up my PPK2 (along with the software) to measure the current consumption:

draft-brouillon.jpg