cancel
Showing results for 
Search instead for 
Did you mean: 

STM32WB v1.12.x STOP2 behavior by CPU2 after advertising - how to work around or resolve?

Scott Löhr
Senior II

I have been using the WB since it was alpha release 0.x.y and so I have a long-established proprietary app running on the STM32WB55RG Nucleo board. Using the BLE full stack, configuring the GAP role as (GapRolePeripheral | GapRoleCentral) and subsequently advertising and scanning (both separately and simultaneously/synchronized intervals, obviously). After all advertising/scanning and connecting (as a master and/or slave) are finished, the proscribed protocol is followed to enter STOP2. But starting with v1.12 (and repeatable in v1.12.1) the current draw is higher in STOP2 after advertising.

To be sure, current draw is lower than during advertising, and for sure over-the-air advertising does stop when it is requested, but STOP2 current draw is never as low as expected.

This observation is made only after starting and stopping advertising after powerup and initialization. So scanning can be turned on and off and STOP2 is as expected. Advertising can be turned on, a connection as a slave realized, and then a disconnect, not followed by any more advertising, and the STOP2 is as expected.

A further observation that shows that something is still running in the CPU2, even after stopping advertising, is that I enable the Independent watchdog for a board reset after a 2-second period of no petting. So beginning with v1.12, the STM32WB Nucleo is resetting 2-seconds after entering STOP2 anytime it is attempted after starting and stopping advertising.

If I leave the ST Drivers and Middlewares from v1.12.1 and merely use the FUS to program the CPU2 with either v1.11 or v1.11.1, then everything is as it has been and as expected - STOP2 current as expected and no watchdog reset out of STOP2 after starting and stopping advertising.

Has anyone seen or worked around this in v1.12.x?

1 ACCEPTED SOLUTION

Accepted Solutions
Remi QUINTIN
ST Employee

After checking, it is a known issue. A regression was introduced with one fix in this v1.12 version.

The following line

UTIL_LPM_SetStopMode( 1 << CFG_LPM_BLE_CoreRunning, UTIL_LPM_DISABLE );

shall be move back from HOST_BLE_IsrPostProcess() to HOST_BLE_IsrPreProcess() at the same location before update.

This will be corrected in the next v1.13.0 version.

View solution in original post

4 REPLIES 4
Remi QUINTIN
ST Employee

>The current draw is higher in STOP2 after advertising

Can you estimate how much higher is this current draw in v1.12 vs v1.11?

Remi QUINTIN
ST Employee

After checking, it is a known issue. A regression was introduced with one fix in this v1.12 version.

The following line

UTIL_LPM_SetStopMode( 1 << CFG_LPM_BLE_CoreRunning, UTIL_LPM_DISABLE );

shall be move back from HOST_BLE_IsrPostProcess() to HOST_BLE_IsrPreProcess() at the same location before update.

This will be corrected in the next v1.13.0 version.

Thanks for the update, Remi.

Scott Löhr
Senior II

@Remi QUINTIN​ it looks like this known issue is indeed corrected in v1.13.0, but man-o-man - did they really need to take 3 more flash pages just to fix it? ;-\