cancel
Showing results for 
Search instead for 
Did you mean: 

Cannot load Wireless firmware into STM32WB55 Nucleo board

zabel
Associate III

Hi, am using the STM32WB55 Nucleo board. My problem is, currently I

seem not to have a CPU2 wireless stack loaded and I fail to load file

stm32wb5x_BLE_Stack_full_fw.bin loaded into the Flash. I am using the

STM32CubeProgrammer V2.12.0. When selecting on the Firmware Upgrade

Service Button and clicking on "Read FUS infos", I get:

FUS State: FUS_IDLE

FUS Status: FUS_NO_ERROR

FUS Version: v0.0.0.0

FUS Operator: v3.1.0

When I click on "Start Wireless Stack", this happens:

 13:20:53 : Warning: Option Byte: nSWboot0, value: 0x0, was not modified.

 13:20:53 : Warning: Option Byte: nboot0, value: 0x1, was not modified.

 13:20:53 : Warning: Option Byte: nboot1, value: 0x1, was not modified.

 13:20:53 : Warning: Option Bytes are unchanged, Data won't be downloaded

 13:20:53 : Time elapsed during option Bytes configuration: 00:00:00.000

 13:20:53 : Succeeded to set nSWboot0=0 nboot1=1 nboot0=1

 13:20:53 : Memory Programming ...

 13:20:53 : Opening and parsing file: 0x495_FUS_Operator.bin

 13:20:53 :  File         : 0x495_FUS_Operator.bin

 13:20:53 :  Size         : 8.00 KB

 13:20:53 :  Address      : 0x08000000

 13:20:53 : Erasing memory corresponding to segment 0:

 13:20:53 : Erasing internal memory sectors [0 1]

 13:20:53 : Download in Progress:

 13:20:53 : File download complete

 13:20:53 : Time elapsed during download operation: 00:00:00.532

 13:20:54 : Application is running, Please Hold on...

 13:20:55 : Reconnecting...

 13:20:55 : Reconnected !

 13:20:55 : Error: FUS_STATE_ERR_UNKNOWN: Unknown error

 13:20:55 : Start Wirless Stack failed

 13:20:55 : Warning: Option Byte: nSWboot0, value: 0x0, was not modified.

 13:20:55 : Warning: Option Byte: nboot0, value: 0x1, was not modified.

 13:20:55 : Warning: Option Byte: nboot1, value: 0x1, was not modified.

 13:20:55 : Warning: Option Bytes are unchanged, Data won't be downloaded

 13:20:55 : Time elapsed during option Bytes configuration: 00:00:00.000

 13:20:55 : Succeeded to set nSWboot0=0 nboot1=1 nboot0=1

 13:20:55 : Memory Programming ...

 13:20:55 : Opening and parsing file: 0x495_FUS_Operator.bin

 13:20:55 :  File         : 0x495_FUS_Operator.bin

 13:20:55 :  Size         : 8.00 KB

 13:20:55 :  Address      : 0x08000000

 13:20:55 : Erasing memory corresponding to segment 0:

 13:20:55 : Erasing internal memory sectors [0 1]

 13:20:55 : Download in Progress:

 13:20:55 : File download complete

 13:20:55 : Time elapsed during download operation: 00:00:00.542

 13:20:55 : Application is running, Please Hold on...

 13:20:56 : Reconnecting...

 13:20:56 : Reconnected !

 13:20:56 : Error: FUS_STATE_ERR_UNKNOWN: Unknown error

 13:20:56 : Start Wireless Stack Operation Failure! Please, try again

So it seems, there is no Wireless Stack present. And if I try to load

it, this also fails: I want to use stm32wb5x_BLE_Stack_full_fw.bin

(V1.15). From the release note, I learn that the correct start address

is 0x080CE000. I have the

"First install" checkbox deselected, and the "Verify download"

selected. The Start Address field is set to 0x080CE000. On clicking

"Firmware Upgrade", I get this log:

 13:23:58 : Old Firmware delete ...

 13:23:58 : Warning: Option Byte: nSWboot0, value: 0x0, was not modified.

 13:23:58 : Warning: Option Byte: nboot0, value: 0x1, was not modified.

 13:23:58 : Warning: Option Byte: nboot1, value: 0x1, was not modified.

 13:23:58 : Warning: Option Bytes are unchanged, Data won't be downloaded

 13:23:58 : Time elapsed during option Bytes configuration: 00:00:00.001

 13:23:58 : Succeeded to set nSWboot0=0 nboot1=1 nboot0=1

 13:23:58 : Memory Programming ...

 13:23:58 : Opening and parsing file: 0x495_FUS_Operator.bin

 13:23:58 :  File         : 0x495_FUS_Operator.bin

 13:23:58 :  Size         : 8.00 KB

 13:23:58 :  Address      : 0x08000000

 13:23:58 : Erasing memory corresponding to segment 0:

 13:23:58 : Erasing internal memory sectors [0 1]

 13:23:58 : Download in Progress:

 13:23:59 : File download complete

 13:23:59 : Time elapsed during download operation: 00:00:00.532

 13:23:59 : Application is running, Please Hold on...

 13:24:06 : Reconnecting...

 13:24:06 : Reconnected !

 13:24:06 : Warning: FUS_STATE_ERR_UNKNOWN

And when trying to start the firmware, I still get 2 dialog boxes

 "Error: FUS_STATE_ERR_UNKNOWN error", and the log window shows:

 13:26:37 : Warning: Option Byte: nSWboot0, value: 0x0, was not modified.

 13:26:37 : Warning: Option Byte: nboot0, value: 0x1, was not modified.

 13:26:37 : Warning: Option Byte: nboot1, value: 0x1, was not modified.

 13:26:37 : Warning: Option Bytes are unchanged, Data won't be downloaded

 13:26:37 : Time elapsed during option Bytes configuration: 00:00:00.000

 13:26:37 : Succeeded to set nSWboot0=0 nboot1=1 nboot0=1

 13:26:37 : Memory Programming ...

 13:26:37 : Opening and parsing file: 0x495_FUS_Operator.bin

 13:26:37 :  File         : 0x495_FUS_Operator.bin

 13:26:37 :  Size         : 8.00 KB

 13:26:37 :  Address      : 0x08000000

 13:26:37 : Erasing memory corresponding to segment 0:

 13:26:37 : Erasing internal memory sectors [0 1]

 13:26:37 : Download in Progress:

 13:26:38 : File download complete

 13:26:38 : Time elapsed during download operation: 00:00:00.533

 13:26:38 : Application is running, Please Hold on...

 13:26:39 : Reconnecting...

 13:26:39 : Reconnected !

 13:26:39 : Error: FUS_STATE_ERR_UNKNOWN: Unknown error

 13:26:39 : Start Wirless Stack failed

 13:26:39 : Warning: Option Byte: nSWboot0, value: 0x0, was not modified.

 13:26:39 : Warning: Option Byte: nboot0, value: 0x1, was not modified.

 13:26:39 : Warning: Option Byte: nboot1, value: 0x1, was not modified.

 13:26:39 : Warning: Option Bytes are unchanged, Data won't be downloaded

 13:26:39 : Time elapsed during option Bytes configuration: 00:00:00.001

 13:26:39 : Succeeded to set nSWboot0=0 nboot1=1 nboot0=1

 13:26:39 : Memory Programming ...

 13:26:39 : Opening and parsing file: 0x495_FUS_Operator.bin

 13:26:39 :  File         : 0x495_FUS_Operator.bin

 13:26:39 :  Size         : 8.00 KB

 13:26:39 :  Address      : 0x08000000

 13:26:39 : Erasing memory corresponding to segment 0:

 13:26:39 : Erasing internal memory sectors [0 1]

 13:26:39 : Download in Progress:

 13:26:39 : File download complete

 13:26:39 : Time elapsed during download operation: 00:00:00.534

 13:26:39 : Application is running, Please Hold on...

 13:26:40 : Reconnecting...

 13:26:40 : Reconnected !

 13:26:40 : Error: FUS_STATE_ERR_UNKNOWN: Unknown error

 13:26:40 : Start Wireless Stack Operation Failure! Please, try again

I have found some similar questions:

  • Issue: Attempting to flash firmware onto coprocessor on STM32WB55RGV6

results in Error: FUS_STATE_ERR_UNKNOWN

  • [STM32WB55 Nucleo] Unable to update FUS or the wireless stack

(FUS_STATE_ERR_UNKNOWN)

but both threads do not seem to have a solution.

I also read the AN5185 as well as the STM32WB_FUS wiki I am not allowed to post a link here, so I will split it:

"stm32mcu/wiki/Connectivity:STM32WB_FUS"

on

wiki.st.com/

but to no avail.

I tried to identify the FUS version. IPCCDBA option byte is 0, but the whole

memory starting at 02x0030000 contains only 0x000000, so I don't find

the Device info table.

The SBRV option bytes contain 0x3d800, so this seems to indicate I

have FUS V0.5.3 loaded.

These seem to be the relevant option bytes on my board:

RDP: 0xAA (nor read protection)

nBOOT0: 1

nBOOT1: 1

ESE: unchecked

SFSA: 0xd4

FSD, DDS, C2OPT, NBRSD: checked

SNBRSA: 0x13

BRSD: checked

SBRSA: 0x0a

SBRV: 0x3d800

Any help would by nice!

Regards

 Dirk

12 REPLIES 12
zabel
Associate III

Still no success, latest try was reducing the stlink speed to 100kHz.

Same here

Shrikrishna
Associate II

Refer this wiki for such issues: STM32WB Firmware Upgrade Service - stm32mcu (stmicroelectronics.cn)

See section FAQ.

Most of the time, safeboot is triggered due to corruption in option bytes or voltage fluctuations. See specifically 

 

Accidentally, I got SFSA = 0x00 and SBRV= 0x3FC00 what's happened?This is due to option byte corruption, or to supply voltage or level stability. This configuration of the SFSA/SBRV option bytes means that the STM32WB hardware forces the boot to Safeboot whatever the firmware being run. To activate Safeboot and perform a factory reset the user must activate the Cortex-M0+ by writing the value 0x00008000 to address 0x5800040C using the SWD interface.
If a FUS version lower than V1.1.0 is running, then no recovery is possible at this point.