cancel
Showing results for 
Search instead for 
Did you mean: 

P-NUCLEO-WB55 does not working on DFU mode

WWU.807
Associate II

Hi, All,

I want to use CubeMon-RF to monitor the USB dongle of the P-NUCLEO-WB55.

According to the Manual : STM32CubeMonitor-RF software tool for wireless performance measurements,

The USB dongle must be monitored using the VCP DEVICE link, and it need to update Firmware to use the example : ble_transparent_mode_vcp.

To update the USB dongle's firmware, I must use STM32CubeProg tool.

According to the manual : STM32CubeProgrammer software description,

USB dongle must use DFU mode for Firmware update, and I install DFU driver follow the Chapter 1.2.4.

And set the DFU mode according to this web page https://visualgdb.com/tools/STM32WBUpdater/connecting/.

However, when the device is plugged into the PC, the Window Device Manager does not detect any device, and the USB dongle is the same as STM32WB Nucleo.

And Win7 is the same as Win10.

May I ask how to solve this?

Thanks. ​

47 REPLIES 47
Remi QUINTIN
ST Employee

Do you have a way (USB, USART, SWD) to dump all the option bytes ?

Send me a log of the sequence of commands you are using.

Remi QUINTIN
ST Employee

Did you try the sequence RDP = 0xBB and then back to 0xAA?

AFox.1
Associate

Hello @Remi QUINTIN​ , I`m also faced this DFU mode issue. I`ve got p-nucleo-wb55 preliminary version and try upload BLE Stack on it, connecting via SWD, because in the Device Manager I`ve no DFU or Bootloader, only ST-Link Debug and VCP. I`ve not installed any special USB drivers except that one in CubeProgrammer installation package.

There is the STM32_Programmer_CLI logs:

C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin>STM32_Programmer_CLI.exe -l
 
   -------------------------------------------------------------------
 
            STM32CubeProgrammer v2.4.0
 
   -------------------------------------------------------------------
 
 
 
===== DFU Interface  =====
 
 
 
No STM32 device in DFU mode connected
 
 
 
===== STLink Interface =====
 
 
 
C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin>STM32_Programmer_CLI.exe -c port=swd -ob displ
 
 
 
OPTION BYTES BANK: 0
 
 
 
  Read Out Protection:
 
 
 
   RDP     : 0xAA (Level 0, no protection)
 
 
 
  BOR Level:
 
 
 
   BOR_LEV   : 0x0 (BOR Level 0 reset level threshold is around 1.7 V)
 
 
 
  User Configuration:
 
 
 
   nBOOT0    : 0x1 (nBOOT0=1 Boot from main Flash)
 
   nBOOT1    : 0x1 (Boot from code area if BOOT0=0 otherwise system Flash)
 
   nSWBOOT0   : 0x1 (BOOT0 taken from PH3/BOOT0 pin)
 
   SRAM2RST   : 0x0 (SRAM2 erased when a system reset occurs)
 
   SRAM2PE   : 0x1 (SRAM2 parity check disable)
 
   nRST_STOP  : 0x1 (No reset generated when entering the Stop mode)
 
   nRST_STDBY  : 0x1 (No reset generated when entering the Standby mode)
 
   nRSTSHDW   : 0x1 (No reset generated when entering the Shutdown mode)
 
   WWDGSW    : 0x1 (Software window watchdog)
 
   IWGDSTDBY  : 0x1 (Independent watchdog counter running in Standby mode)
 
   IWDGSTOP   : 0x1 (Independent watchdog counter running in Stop mode)
 
   IWDGSW    : 0x1 (Software independent watchdog)
 
   IPCCDBA   : 0x0 (0x0)
 
 
 
  Security Configuration Option bytes:
 
 
 
   ESE     : 0x1 (Security enabled)
 
   SFSA     : 0x80 (0x80)
 
   FSD     : 0x0 (System and Flash secure)
 
   DDS     : 0x1 (CPU2 debug access disabled)
 
   C2OPT    : 0x1 (SBRV will address Flash)
 
   NBRSD    : 0x0 (SRAM2b is secure)
 
   SNBRSA    : 0xF (0xF)
 
   BRSD     : 0x0 (SRAM2a is secure)
 
   SBRSA    : 0xF (0xF)
 
   SBRV     : 0x20000 (0x20000)
 
 
 
  PCROP Protection:
 
 
 
   PCROP1A_STRT : 0x1FF (0x8000FF8)
 
   PCROP1A_END : 0x0 (0x8000008)
 
   PCROP_RDP  : 0x0 (PCROP zone is kept when RDP is decreased)
 
   PCROP1B_STRT : 0x1FF (0x8000FF8)
 
   PCROP1B_END : 0x0 (0x8000008)
 
 
 
  Write Protection:
 
 
 
   WRP1A_STRT  : 0xFF (0x80FF000)
 
   WRP1A_END  : 0x0 (0x8000000)
 
   WRP1B_STRT  : 0xFF (0x80FF000)
 
   WRP1B_END  : 0x0 (0x8000000)

I`ve tried set RDP bits from 0xBB to 0xAA. When I`m trying erase current stack from flash memory, CLI makes 2 attepts and sends me this error:

C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin>STM32_Programmer_CLI.exe -c port=swd -fwdelete
 
   -------------------------------------------------------------------
 
            STM32CubeProgrammer v2.4.0
 
   -------------------------------------------------------------------
 
 
 
ST-LINK SN : 066CFF3832394D3457191431
 
ST-LINK FW : V2J35M26
 
Voltage   : 3.29V
 
SWD freq  : 4000 KHz
 
Connect mode: Normal
 
Reset mode : Software reset
 
Device ID  : 0x495
 
Device name : STM32WB55xx
 
Flash size : 1 MBytes
 
Device type : MCU
 
Device CPU : Cortex-M0+/M4
 
 
 
Warning: Option Byte: nboot0, value: 0x1, was not modified.
 
Warning: Option Byte: nboot1, value: 0x1, was not modified.
 
 
 
 
 
Reconnecting...
 
Reconnected !
 
Succeeded to set nSWboot0=0 nboot1=1 nboot0=1
 
 
 
 
 
Memory Programming ...
 
Opening and parsing file: 0x495_FUS_Operator.bin
 
 File     : 0x495_FUS_Operator.bin
 
 Size     : 11584 Bytes
 
 Address    : 0x08000000
 
 
 
 
 
Erasing memory corresponding to segment 0:
 
Erasing internal memory sectors [0 2]
 
Download in Progress:
 
██████████████████████████████████████████████████ 100%
 
 
 
File download complete
 
Time elapsed during download operation: 00:00:00.598
 
Application is running
 
Reconnecting...
 
Reconnected !
 
Error: FUS_STATE_ERR_UNKNOWN
 
Firmware delete n░1 failed after retrying!
 
Warning: Option Byte: nSWboot0, value: 0x0, was not modified.
 
Warning: Option Byte: nboot0, value: 0x1, was not modified.
 
Warning: Option Byte: nboot1, value: 0x1, was not modified.
 
Warning: Option Bytes are unchanged, Data won't be downloaded
 
Succeeded to set nSWboot0=0 nboot1=1 nboot0=1
 
 
 
 
 
Memory Programming ...
 
Opening and parsing file: 0x495_FUS_Operator.bin
 
 File     : 0x495_FUS_Operator.bin
 
 Size     : 11584 Bytes
 
 Address    : 0x08000000
 
 
 
 
 
Erasing memory corresponding to segment 0:
 
Erasing internal memory sectors [0 2]
 
failed to erase memory
 
 
 
 
 
failed to erase memory
 
Failed to download FUS operator!
 
Firmware delete n░1 failed after retrying!
 
Warning: Option Byte: nSWboot0, value: 0x0, was not modified.
 
Warning: Option Byte: nboot0, value: 0x1, was not modified.
 
Warning: Option Byte: nboot1, value: 0x1, was not modified.
 
Warning: Option Bytes are unchanged, Data won't be downloaded
 
Succeeded to set nSWboot0=0 nboot1=1 nboot0=1
 
 
 
 
 
Memory Programming ...
 
Opening and parsing file: 0x495_FUS_Operator.bin
 
 File     : 0x495_FUS_Operator.bin
 
 Size     : 11584 Bytes
 
 Address    : 0x08000000
 
 
 
 
 
Erasing memory corresponding to segment 0:
 
Erasing internal memory sectors [0 2]
 
Download in Progress:
 
██████████████████████████████████████████████████ 100%
 
 
 
File download complete
 
Time elapsed during download operation: 00:00:00.565
 
Application is running
 
Reconnecting...
 
Reconnected !
 
Error: FUS_STATE_ERR_UNKNOWN
 
Firmware delete n░1 failed after retrying!
 
fwdelete Operation Failure! Please, try again

Could you help me understand what exactly causes this problem? Thanks in advance!

Remi QUINTIN
ST Employee

Could you retry the sequence RDP set to 0xBB and back to 0xAA but be sure to do this with PCROP_RDP set to 1 as this will ensure any protected area are really erased.

Error messages like "was not modified" just indicate that the option byte was already at the requested value.

Message "Warning: Option Bytes are unchanged, Data won't be downloaded" is the consequence of the above messages. So do not consider it? It is not an issue.

AFox.1
Associate

Thank you @Remi QUINTIN​  for your reply! I`ve tried your solution to set PCROP_RDP to 1 and perform change the RDP bytes to 0xBB and back to 0xAA. It's strange that PCROP_RDP sets 0x0 after RDP is decreased to 0xAA. Although I tried make fwdelete, fwupdate and it still return an error, see attached logs. So what else could cause this error? Coulld it be a hardware malfunction?

Taxara
Associate III

Thank you shorten the path did it for me. In addition I noticed that folders containing a space also give this "wrong address" error.

This is a great comment - resolved my issue.

@Remi QUINTIN​ : Would be awesome to include this comment in a troubleshooting section in e.g. the "STM32WB Copro Wireless Binaries Release Notes" file.

Thanks @Community member​  - you made my day! 😉

​I woud recommend you have a look at the application note AN5185 "How to flash WB device".

The settings of the option bytes are described for both SWD and USB ports.