cancel
Showing results for 
Search instead for 
Did you mean: 

No issues flashing STM32WB55 M4 via STM32CubeIDE but cannot flash coprocessor with BLE stack with STM32CubeProgrammer.

MSuva.1
Associate III

Here is the output of STM32CubeIDE on flashing the custom board:

On STM32CubeProgrammer I am not able to consistently get a connection (by hitting the connect button).

There are some instances if the configuration is set to "Shared" mode that the device connects but there is no way to write/read to the FUS or perform any flashing.

Here's some screenshots of the outputs I've seen while attempting to write to the FUS using Programmer:

0693W00000Sv0HrQAJ.png0693W00000Sv0I1QAJ.png0693W00000Sv0G1QAJ.png 

I've had a hard time figuring out how to approach debugging this issue since I have not been able to get consistent results.

Any advice or suggestions is much appreciated, thank you.

19 REPLIES 19
MM..1
Chief II

You read ? file:///C:/Users/xxxSTM32Cube/Repository/STM32Cube_FW_WB_V1.1y.z/Projects/STM32WB_Copro_Wireless_Binaries/STM32WB5x/Release_Notes.html

Yes, I have. I have been able to flash the coprocessor on the stm32wb55 dev board I have no problem.

Then try write where you stuck

How to flash the Wireless Coprocessor Binary via SWD/JTAG by ST-LINK (STM32CubeProgrammer GUI)
 
Inside the below procedure, the references to binaries name and install address are provided in the section Main Changes of this file.
 
STEP 1: Use STM32CubeProgrammer GUI
 
Version 2.7.0 or higher.
 
It gives access to Firmware Upgrade Service (FUS) (AN5185 : ST firmware upgrade services for STM32WB Series.) through Bootloader.
 
It is currently available as Graphical User Interface (GUI) mode (or Command Line Interface (CLI) mode).
 
STEP 2: Access to SWD Interface (system flash)
 
For P-NUCLEO-WB55.Nucleo :
Power ON via ST-LINK and Jumper JP1(USB_STL)
For P-NUCLEO-WB55.USBDongle :
remain switch SW2 to Boot1
Connect P-NUCLEO-WB55.USBDongle
For STM32WB5MM-DK :
Power ON via ST-LINK and Jumper JP2(USB_STL)
open STM32CubeProgrammer GUI and select “ST-LINK�?
in ST-LINK configuration: (Port: SWD) then select “Connect�?
STEP 3: select “Start FUS�? in Firmware Upgrade Services
 
STEP 4: Read and upgrade FUS Version
 
it can been obtained selecting “Read FUS infos�?
00050300: FUSv0.5.3 => Must be updated using STEP 5.
010X0Y00: FUSv1.x.y => Must be updated using STEP 6 (when x < 2).
01020000: FUSv1.2.0 => Up to date, you can download the new wireless stack using STEP 7.

You can see from my post the outputs I get when I attempt to Fuse read, I have followed these steps and gotten it to work on my nucleo board. But I get these error results when i attempt to use my custom board.

But this only sometimes works, most of the time clicking "connect" in the Programmer does not work and there's no feedback from the App. This is strange because I have no issues programming via the IDE.

Then your custom board have unstable or bad clock or power or both.

Plus your custom stlink use NRST ?

Thanks very much for your input! I believe our custom board does use NRST.

If the issue is with unstable/bad clock/power why is there no issue programming the custom board on STM32CubeIDE? It seems the problem only exists on STM32CubeProgrammer. Do you know of any delta between these two programs that may be causing the difference in behavior?

Try compare communication speed setup IDE vs Prog.

The configuration is identical for both IDE and Programmer, I copy the configuration stated in the IDE during flashing:

0693W00000Sv9H2QAJ.png 

I am able to connect and read the FUS. I read that the version is FUSv0.5.3

Because of this I jump to step 5 in the release notes and upgrade the FUS:

0693W00000Sv9HWQAZ.png 

Upgrading:

0693W00000Sv9HlQAJ.png 

This is the point that I get the error and the board becomes unresponsive. The only way to restart the communication is to reset the board completely and restarting the ST-Link. Here is the error message I get:

0693W00000Sv9I5QAJ.png 

After the restart the FUS has not been upgraded, so I am stuck here:

0693W00000Sv9IPQAZ.png 

Maybe it's because the STM32CubeIDE does not read/upgrade the FUS? Is there anything specific to FUS that may be broken here?

Thanks very much again for your input.

Try remove M4 code from flash before FUS up.