2021-06-23 05:03 AM
I try upload FUS and BLE stack to STM32WB55. From listing from my console it look likes everything success but when I check version is different from 0:
0x20030030 : 01000200
C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin>STM32_Programmer_CLI.exe -c port=usb1 -r32 0x20030030 1
-------------------------------------------------------------------
STM32CubeProgrammer v2.6.0
-------------------------------------------------------------------
USB speed : Full Speed (12MBit/s)
Manuf. ID : STMicroelectronics
Product ID : DFU in FS Mode
SN : 206F3187544E
FW version : 0x011a
Device ID : 0x0495
Device name : STM32WBxx
Flash size : 1 MBytes
Device type : MCU
Device CPU : Cortex-M4
Reading 32-bit memory content
Size : 4 Bytes
Address: : 0x20030030
0x20030030 : 00050300
C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin>STM32_Programmer_CLI.exe -c port=usb1 -fwupgrade stm32wb5x_FUS_fw.bin 0x080EC000 -v firstinstall=0
-------------------------------------------------------------------
STM32CubeProgrammer v2.6.0
-------------------------------------------------------------------
USB speed : Full Speed (12MBit/s)
Manuf. ID : STMicroelectronics
Product ID : DFU in FS Mode
SN : 206F3187544E
FW version : 0x011a
Device ID : 0x0495
Device name : STM32WBxx
Flash size : 1 MBytes
Device type : MCU
Device CPU : Cortex-M4
Warning: No need to these parameters in verify command: firstinstall=0
██████████████████████████████████████████████████Current FUS Version : 0x00050300
Uploaded FUS Version : 0x01000200
FUS state is FUS_ERROR
FUS status is FUS_UFB_CORRUPT
FUS state is FUS_IDLE
FUS status is FUS_NO_ERROR
Old wireless stack delete ...
Deleting firmware ...
Firmware delete finished
FUS state is FUS_SERVICE_ONGOING
FUS status is FUS_IMAGE_NOT_FOUND
FUS state is FUS_IDLE
FUS status is FUS_NO_ERROR
Download firmware image at address 0x80ec000 ...
Memory Programming ...
Opening and parsing file: stm32wb5x_FUS_fw.bin
File : stm32wb5x_FUS_fw.bin
Size : 24492 Bytes
Address : 0x080EC000
Erasing memory corresponding to segment 0:
Erasing internal memory sectors [236 241]
erasing sector 0236 @: 0x080ec000 done
erasing sector 0237 @: 0x080ed000 done
erasing sector 0238 @: 0x080ee000 done
erasing sector 0239 @: 0x080ef000 done
erasing sector 0240 @: 0x080f0000 done
erasing sector 0241 @: 0x080f1000 done
Download in Progress:
██████████████████████████████████████████████████ 100%
File download complete
Time elapsed during download operation: 00:00:00.592
FUS state is FUS_IDLE
FUS status is FUS_NO_ERROR
Firmware Upgrade process started ...
Updating firmware ...
Waiting for firmware upgrade end
FUS state is FUS_UPGRADE_ONGOING
FUS status is FUS_NO_ERROR
FUS state is FUS_IDLE
FUS status is FUS_NO_ERROR
FUS state is FUS_IDLE
FUS status is FUS_NO_ERROR
FUS is now running
Firmware Upgrade Success
C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin>STM32_Programmer_CLI.exe -c port=usb1 -fwupgrade stm32wb5x_BLE_Stack_fw.bin 0x080CC000 -v firstinstall=1
-------------------------------------------------------------------
STM32CubeProgrammer v2.6.0
-------------------------------------------------------------------
USB speed : Full Speed (12MBit/s)
Manuf. ID : STMicroelectronics
Product ID : DFU in FS Mode
SN : 206F3187544E
FW version : 0x011a
Device ID : 0x0495
Device name : STM32WBxx
Flash size : 1 MBytes
Device type : MCU
Device CPU : Cortex-M4
Warning: No need to these parameters in verify command: firstinstall=1
FUS state is FUS_IDLE
FUS status is FUS_NO_ERROR
Old wireless stack delete ...
Deleting firmware ...
Firmware delete finished
FUS state is FUS_SERVICE_ONGOING
FUS status is FUS_IMAGE_NOT_FOUND
FUS state is FUS_IDLE
FUS status is FUS_NO_ERROR
Download firmware image at address 0x80cc000 ...
Memory Programming ...
Opening and parsing file: stm32wb5x_BLE_Stack_fw.bin
File : stm32wb5x_BLE_Stack_fw.bin
Size : 162908 Bytes
Address : 0x080CC000
Erasing memory corresponding to segment 0:
Erasing internal memory sectors [204 243]
erasing sector 0204 @: 0x080cc000 done
erasing sector 0205 @: 0x080cd000 done
erasing sector 0206 @: 0x080ce000 done
erasing sector 0207 @: 0x080cf000 done
erasing sector 0208 @: 0x080d0000 done
erasing sector 0209 @: 0x080d1000 done
erasing sector 0210 @: 0x080d2000 done
erasing sector 0211 @: 0x080d3000 done
erasing sector 0212 @: 0x080d4000 done
erasing sector 0213 @: 0x080d5000 done
erasing sector 0214 @: 0x080d6000 done
erasing sector 0215 @: 0x080d7000 done
erasing sector 0216 @: 0x080d8000 done
erasing sector 0217 @: 0x080d9000 done
erasing sector 0218 @: 0x080da000 done
erasing sector 0219 @: 0x080db000 done
erasing sector 0220 @: 0x080dc000 done
erasing sector 0221 @: 0x080dd000 done
erasing sector 0222 @: 0x080de000 done
erasing sector 0223 @: 0x080df000 done
erasing sector 0224 @: 0x080e0000 done
erasing sector 0225 @: 0x080e1000 done
erasing sector 0226 @: 0x080e2000 done
erasing sector 0227 @: 0x080e3000 done
erasing sector 0228 @: 0x080e4000 done
erasing sector 0229 @: 0x080e5000 done
erasing sector 0230 @: 0x080e6000 done
erasing sector 0231 @: 0x080e7000 done
erasing sector 0232 @: 0x080e8000 done
erasing sector 0233 @: 0x080e9000 done
erasing sector 0234 @: 0x080ea000 done
erasing sector 0235 @: 0x080eb000 done
erasing sector 0236 @: 0x080ec000 done
erasing sector 0237 @: 0x080ed000 done
erasing sector 0238 @: 0x080ee000 done
erasing sector 0239 @: 0x080ef000 done
erasing sector 0240 @: 0x080f0000 done
erasing sector 0241 @: 0x080f1000 done
erasing sector 0242 @: 0x080f2000 done
erasing sector 0243 @: 0x080f3000 done
Download in Progress:
██████████████████████████████████████████████████ 100%
File download complete
Time elapsed during download operation: 00:00:03.801
FUS state is FUS_IDLE
FUS status is FUS_NO_ERROR
Firmware Upgrade process started ...
Updating firmware ...
Waiting for firmware upgrade end
FUS state is FUS_ERROR
FUS status is FUS_NOT_RUNNING
Firmware Upgrade Success
PS C:\Users\pawel.marchewka\Desktop\YosensiPM\stmFUSBLE> STM32_Programmer_CLI.exe -c port=usb1 -r32 0x20030030 1
-------------------------------------------------------------------
STM32CubeProgrammer v2.6.0
-------------------------------------------------------------------
USB speed : Full Speed (12MBit/s)
Manuf. ID : STMicroelectronics
Product ID : DFU in FS Mode
SN : 206F3187544E
FW version : 0x011a
Device ID : 0x0495
Device name : STM32WBxx
Flash size : 1 MBytes
Device type : MCU
Device CPU : Cortex-M4
Reading 32-bit memory content
Size : 4 Bytes
Address: : 0x20030030
0x20030030 : 01000200
So I try upload again:
C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin>STM32_Programmer_CLI.exe -c port=usb1 -fwupgrade stm32wb5x_FUS_fw.bin 0x080EC000 -v firstinstall=0
-------------------------------------------------------------------
STM32CubeProgrammer v2.6.0
-------------------------------------------------------------------
USB speed : Full Speed (12MBit/s)
Manuf. ID : STMicroelectronics
Product ID : DFU in FS Mode
SN : 206F3187544E
FW version : 0x011a
Device ID : 0x0495
Device name : STM32WBxx
Flash size : 1 MBytes
Device type : MCU
Device CPU : Cortex-M4
Warning: No need to these parameters in verify command: firstinstall=0
██████████████████████████████████████████████████Current FUS Version : 0x01000200
Uploaded FUS Version : 0x01000200
Error: Current FUS version is higher or equal to the uploaded FUS version.
C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin>STM32_Programmer_CLI.exe -c port=usb1 -fwupgrade stm32wb5x_BLE_Stack_fw.bin 0x080CC000 -v firstinstall=1
-------------------------------------------------------------------
STM32CubeProgrammer v2.6.0
-------------------------------------------------------------------
USB speed : Full Speed (12MBit/s)
Manuf. ID : STMicroelectronics
Product ID : DFU in FS Mode
SN : 206F3187544E
FW version : 0x011a
Device ID : 0x0495
Device name : STM32WBxx
Flash size : 1 MBytes
Device type : MCU
Device CPU : Cortex-M4
Warning: No need to these parameters in verify command: firstinstall=1
FUS state is FUS_ERROR
FUS status is FUS_NOT_RUNNING
FUS state is FUS_ERROR
FUS status is FUS_NOT_RUNNING
FUS state is FUS_ERROR
FUS status is FUS_NOT_RUNNING
Warning: Could not start RSS services since RSS is not in IDLE state
Now I got warning: "Warning: Could not start RSS services since RSS is not in IDLE state"
What this means? After that I always get this same message and the MCU not work.
2021-07-19 07:36 AM
As far as I can see, the FUS was correctly updated up v1.0.2. The last step which would upgrade the FUS to v1.1.0 or higher is missing.
Which version of CubeWB FW are you using?
Then this is not preventing the correct upgrade of the wireless stack.
When the wireless stack is correctly updated, the wireless stack is started (SBRV option byte set to the start address of the wireless stack to be executed by the M0+ core). So, the FSU is not active anymore, It is not running. Hence the messages: FUS state is FUS_ERROR and FUS status is FUS_NOT_RUNNING
The best way to check whether the wireless update was successful is to check the SFSA and SBRV option bytes which should be set to 0xCC for SFSA and 0x33000 for SBRV.
To reactivate the FUS, the FUS_GET_STATE command should be sent twice. In that case, SBRV reverts to 0x3D000 which is the start address of the FUS for the M0+ core to execute.