cancel
Showing results for 
Search instead for 
Did you mean: 

Exit standby mode from user app with SBSFU intergated

thealbertdev
Associate III

We have an application running on an STM32WB55M. This user application makes use of standby mode, and the device is able to exit it when the configured pin changes state.

However, once the SBSFU is integrated with the BLE_ota application, the user application works correctly, we can perform OTA updates, but when entering standby mode, the device does not wake up/resets.

In another different product, where standby mode is not used, everything operates correctly.

What could be causing the system not to exit standby mode when the SBSFU is integrated? I know the system restarts upon exiting standby mode, do I need to configure something before entering standby mode? (Restarting the application with the 'NVIC_SystemReset' function, as I do when entering OTA mode, works correctly).

Thank you in advance.

3 REPLIES 3
thealbertdev
Associate III

When the debugger is enabled, everything works correctly, but if I disable the debugger, the device doesn't wake up. I understand that having the debugger enabled keeps the system clock active, which is why the wakeup works. But if I want to disable the debugger, what configuration should I apply to the PWR for the wakeup to work? I have seen examples from other families where the PWR clock is explicitly enabled, but I haven't seen this option for the stm32wb5x.

thealbertdev
Associate III

More info. The system wakes ups and counter program goes to the Ble_ota app region. 

I've reattached (debugged) the BLE_ota application on the fly and see that it is executing the run function of the sequencer, but without any Bluetooth activity. I understand that CPU2 hasn't exited standby mode and isn't starting the application. To enter standby mode, I've stopped all RF activity and confirmed that it's in standby mode by measuring power consumption with STM32CubePWR.

How can I wake/restart CPU2? I understand this issue is more about how I correctly put it into standby mode so it can be awakened, rather than how to wake it.

In another post, it's suggested to manually reset the entire microcontroller after exiting standby. Can I do that in the user application? I understand that after exiting standby, no additional code is executed, and there's just a reset. Otherwise, should I modify BLE_ota to perform that reset (ST recommends not touching that application as it could cause it to overflow its memory space)?

thealbertdev
Associate III

Solved.