cancel
Showing results for 
Search instead for 
Did you mean: 

Cannot load BLE firmware into the STM32WB55 CPU2

zabel
Associate III

Hi,

I have found some questions and discussions with similar topic, but no answer seems to apply to my case. I have an STM32WB55 Nucleo Pack, and I cannot manage to load any of the BLE stack binaries provided with the STM32Cube_FW_WB_V1.16.0 into my device.

The non-BLE example applications running only on CPU1 are working without problems.

If I use the STM32CubeProgrammer (V2.13.0) via SWB, it connects without issues.

If I select the FUS page and press "Read FUS Infos", I get "FUS State: IDLE", "FUS Status: FUS_No_ERROR" , FUS Version "v.0.0.0.0", STACK Version "v0.0.0.0" and FUS Operator "v3.1.0". If I press "Start Wireless Stack", I get "unknown error", presumably because there is no one present. And if I try to load for example "stm32wb5x_FUS_fw_for_fus_0_5_3.bin" at address 0x080ce000 (as specified in Release_Notes.html), I get the following messages:

 19:46:18 : Old Firmware delete ...

 19:46:18 : Warning: Option Byte: nSWboot0, value: 0x0, was not modified.

 19:46:18 : Warning: Option Byte: nboot0, value: 0x1, was not modified.

 19:46:18 : Warning: Option Byte: nboot1, value: 0x1, was not modified.

 19:46:18 : Warning: Option Bytes are unchanged, Data won't be downloaded

 19:46:18 : Time elapsed during option Bytes configuration: 00:00:00.000

 19:46:18 : Succeeded to set nSWboot0=0 nboot1=1 nboot0=1

 19:46:18 : Memory Programming ...

 19:46:18 : Opening and parsing file: 0x495_FUS_Operator.bin

 19:46:18 :  File         : 0x495_FUS_Operator.bin

 19:46:18 :  Size         : 8.00 KB

 19:46:18 :  Address      : 0x08000000

 19:46:18 : Erasing memory corresponding to segment 0:

 19:46:18 : Erasing internal memory sectors [0 1]

 19:46:19 : Download in Progress:

 19:46:19 : File download complete

 19:46:19 : Time elapsed during download operation: 00:00:00.534

 19:46:19 : Application is running, Please Hold on...

 19:46:26 : Reconnecting...

 19:46:26 : Reconnected !

 19:46:26 : Warning: FUS_STATE_ERR_UNKNOWN

The same happens, if I try to upgrade the FUS itself first. And since there is no version information, I don't know, if that is necessary and if I have to use the stm32wb5x_FUS_fw_for_fus_0_5_3.bin or the stm32wb5x_FUS_fw.bin.

And after I have tried that, I still get the v0.0.0.0 version for FUS version as well as STACK version, so I think there is simply nothing changed.

Option byte status is: ESE unchecked, FSD, DDS, C2OPT, NBRSD all checked, SFSA = 0xd4, SNBRSA = 0x14,

My impression is, that I don't have any FUS software loaded.

If anyone could give some helpful hints, I would be gradeful.

Regards

Dirk

9 REPLIES 9
zabel
Associate III

Additional info:

RDP = 0xaa, BOR_LEV = 0, nBOOT0, nBOOT1, sRAM2PE, nRST_STOP, nRST_STBY, nRSTSHDW, WWDGSW, IWDGSTDBY, IWDGSTOP and IWDGSW all checked, nSWBOOT0 and SRAM2RST both unchecked, IPCCDBA = 0x0000, BRSD checked, SBRSA = 0xa SBRV = 0x3d800.

The SBRV value seems (according to AN5185) indicate that FUS 0.5.3 is loaded. But I get no FUS version number and still no success in a try to upgrade the FUS by loading stm32wb5x_FUS_fw_for_fus_0_5_3.bin.

Remy ISSALYS
ST Employee

Hello,

You can look this wiki page which describes how to setup the board and how to perform FUS and wireless stack update. To update CPU2 (FUS or wireless stack), you should start the FUS has describes in the wiki page.

Best Regards

zabel
Associate III

Hi Remy,

thank you for your answer. Unfortunately, that does not help. If I follow the instructions from that wiki page, I still cannot load the BLE firmware. The STM32CubeProgrammer does never show a FUS version (only 0.0.0). As described in my question, from the SBRV option byte value I conclude that FUS 0.5.3 must be loaded, so I try to upgrade using the FUS itself using the stm32wb5x_FUS_fw_for_fus_0_5_3.bin file. After that has completed, I still get no FUS version number. And if I try to load the stm32wb5x_BLE_Stack_full_fw.bin binary file, I keep getting "Warning: FUS_STATE_ERR_UNKNOWN" and cannot start the wireless stack:

17:10:05 : Error: FUS_STATE_ERR_UNKNOWN: Unknown error

17:10:05 : Error: Start Wireless Stack Operation Failure! Please, try again

Remy ISSALYS
ST Employee

Hello,

Can you try to load the FUS Command Line Interface binary and check the log on the uart and share the screenshot of the log?

Best Regards

zabel
Associate III

Hi,

I have loaded the binary, but there is no output in the putty terminal window. Directly after programming the binary file, LED 4 (red) is permanantly on and LED 6 blinks green/red (six times green/led short, then one time green a bit longer). After disconnecting the CubeProgrammer, LED 6 turns permanently red.

I double-checked the COM-port number as well as the serial settings (115200, 8N1)

When I press button 3 long, the blue led (LED 1) turns on for some seconds, the the FUS Command Line Interface itself seems to work.

I then have compiled that binary and executed it under debugger control (CubeIDE), it it never receives any events (APPE_SysUserEvtRx never called)

Regards

Dirk

Remy ISSALYS
ST Employee

Hello,

Is it an old board? Do you know where the device comes from? Can you read the DBGMCU_IDCODE register?

Best Regards

zabel
Associate III

The DBGMCU_IDCODE is 0x20006495

I don't know how old it is. I received it from some other development department of our company. But I know it worked when it arrived, so if something is wrong, I must have done that by accident.The only occasion I remember is that once I disconnected it unintentionally (but there was no firmware download ongoing then)

Remy ISSALYS
ST Employee

Hello,

According to your post, the ESE option bytes is unchecked which means that the security is disable on your board. So, it's no longer possible to use the FUS or the wireless stack which are encrypted binaries. According to the value of DBGMCU_IDCODE, your board is a revision B which is a non-commercial version, maybe the board has been recover in a show.

Best Regards

zabel
Associate III

Hi, thank you for this information. At least I can now stop wasting time with this board. I still have no idea how this could have happened. And I don't understand what is meant by "maybe the board has been recover in a show"

Regards

Dirk