2025-05-07 6:15 AM - last edited on 2025-05-08 6:26 AM by TDK
Hello,
I'm encountering the same issue, and i started debugging the embedded bootloader protocol manually.
Or i'm starting getting crazy, but what specified in AN3155 is not respecting what i'm having on the serial port.
I'm using NUCLEO-WB09KE(MB2032B) mounted on MB1801D.
When moving JP1[MB2032B] to BOOT mode, SWD is not available.I'm only be able to get on bootloader mode (not with CubeProg) but as below.
Problem 1 - GetVersionComand (documentation mismatch)
I sucessfully entered in BL (Ack = 0x79), however GetVersion command is totally ignored.
I then tested with another command to see if the communication with embedded BL works.
Something worked but not as expected.
Command 0x02+0xFD should reply with ACK(0x79) + N=NumberOfByte + PID. I did not see 0x79 as ACK nor the number of bytes i should get: i just got 0xD0 and 0x94.
I can't find what is the DEV_ID of STM32WB09KEx, so i can't verify if what'i'm having is really the DEV_ID or something else. Anyway the ACK is still missing.
What's happening there? I get into this because seems the SWD port is disabled due to low-power firmware pre-loaded on the board, so i tried to erase the firmware by accessing the rommed BL. As i was not able to get trough STM32PROG i decided to go "manual way".
Unfortunately after a mass erase i can't access anyway.
As i found mismatch command & replies referred to Uart BL specs, i have doubt i really erased the flash.
Anyone have some direction to point me out?
Thanks
Davide
2025-05-07 8:05 AM
Even parity?
STM32CubeProgrammer can access the bootloader over UART, I'd try that.
2025-05-07 11:01 PM
Yes even parity and with STM32CubeProgrammer first.
I go "manual" because i was getting peanuts from Cube so i wanted to understand.
By enablihng Verbosity level 3 on STM32CubeProgrammer i'm getting the same results (ack missing).
07:59:37:428 : UR connection mode is defined with the HWrst reset mode
07:59:37:431 : RTS low
07:59:37:431 : DTR low
07:59:37:438 : Serial Port COM3 is successfully opened.
07:59:37:438 : Port configuration: parity = even, baudrate = 115200, data-bit = 8, stop-bit = 1.0, flow-control = off
07:59:37:438 : No Init bits value is : 0
07:59:37:438 : Sending init command:
07:59:37:438 : byte 0x7F sent successfully to target
07:59:37:439 : Wait ends after 1 loop, dataready = 1, delay = 0
07:59:37:439 : Received response from target: 0x79
07:59:37:448 : Activating device: OK
07:59:37:448 : Board : --
07:59:37:448 : Sending GetID command and its XOR:
07:59:37:449 : byte 0x02 sent successfully to target
07:59:37:449 : byte 0xFD sent successfully to target
07:59:37:452 : Wait ends after 1 loop, dataready = 1, delay = 0
07:59:37:452 : Received response from target: 0xd0
07:59:37:452 : Error: GETID command not acknowledged!
07:59:37:552 : Reemission of GetID command
07:59:37:552 : Sending GetID command and its XOR:
07:59:37:553 : byte 0x02 sent successfully to target
07:59:37:553 : byte 0xFD sent successfully to target
07:59:37:553 : Received response from target: 0x94
07:59:37:553 : Error: GETID command not acknowledged!
07:59:37:652 : Reemission of GetID command
07:59:37:652 : Sending GetID command and its XOR:
07:59:37:652 : byte 0x02 sent successfully to target
07:59:37:652 : byte 0xFD sent successfully to target
07:59:37:653 : Received response from target: 0xd0
07:59:37:653 : Error: GETID command not acknowledged!
07:59:37:838 : Chip ID: 0x0
07:59:37:839 : UART PORT CLOSE
07:59:37:840 : Disconnected from device.
07:59:37:840 : RTS low
07:59:37:840 : DTR low
07:59:37:845 : Serial Port COM3 is successfully opened.
07:59:37:845 : Port configuration: parity = even, baudrate = 115200, data-bit = 8, stop-bit = 1.0, flow-control = off
07:59:37:845 : No Init bits value is : 0
07:59:37:845 : Sending init command:
07:59:37:846 : byte 0x7F sent successfully to target
07:59:41:845 : Wait ends after 2 loop, dataready = 0, delay = 4000
07:59:41:845 : Timeout error occured while waiting for acknowledgement.
07:59:41:845 : No response from target received
07:59:41:845 : Retrying UART init connection...
07:59:41:846 : byte 0x7F sent successfully to target
07:59:41:847 : Wait ends after 1 loop, dataready = 1, delay = 0
07:59:41:847 : Received response from target: 0x1f
07:59:41:847 : Activating device: OK
07:59:41:847 : Board : --
07:59:41:847 : Sending GetID command and its XOR:
07:59:41:847 : byte 0x02 sent successfully to target
07:59:41:848 : byte 0xFD sent successfully to target
07:59:41:848 : Wait ends after 1 loop, dataready = 1, delay = 0
07:59:41:848 : Received response from target: 0xd0
07:59:41:848 : Error: GETID command not acknowledged!
07:59:41:955 : Reemission of GetID command
07:59:41:955 : Sending GetID command and its XOR:
07:59:41:955 : byte 0x02 sent successfully to target
07:59:41:956 : byte 0xFD sent successfully to target
07:59:41:956 : Wait ends after 1 loop, dataready = 1, delay = 0
07:59:41:956 : Received response from target: 0xd0
07:59:41:956 : Error: GETID command not acknowledged!
07:59:42:055 : Reemission of GetID command
07:59:42:055 : Sending GetID command and its XOR:
07:59:42:057 : byte 0x02 sent successfully to target
07:59:42:057 : byte 0xFD sent successfully to target
07:59:42:057 : Wait ends after 1 loop, dataready = 1, delay = 0
07:59:42:057 : Received response from target: 0xd0
07:59:42:057 : Error: GETID command not acknowledged!
07:59:42:156 : Chip ID: 0x0
07:59:42:157 : UART PORT CLOSE
Regards
Davide
2025-05-08 6:27 AM
Since this error is different from the post you originally replied to, I've moved it here. I've asked someone to take a look.