2025-08-20 10:02 PM
Hello,
I succeeded to download my firmware on my board at first and it works fine.
but, I failed to fuse the firmware at the second and I encountered the problem about option byte 0xFF.
I don't know what happened. below the error log.
=======================
Also, if I try to change the RDP in the option byte then below the error message happens.
========================
2025-08-21 12:23 AM
Dear @MKIM.3 ,
Is this behavior seen on one particular device or it is random or on all many devices? if possible, to have the Top marking picture of that device where always Options Bytes are set at 0xFF. A possible hypothesis the device is damaged or power sequence not able set the Options bytes reloading safely.
Let us know
STOne-32.
2025-08-21 2:27 AM
Hi,
The failed board is one of three boards in my side. The picture of used chip is attached.
I'd like to know whether RDP 0xff equals to 0xCC. (RDP Level 2 )
I read the information of option byte using "STM32_Programmer_CLI.exe"
It tells me "Level 1" as the below log. Is correct that ?
================================
STM32_Programmer_CLI.exe -c port=SWD -ob displ
-------------------------------------------------------------------
STM32CubeProgrammer v1.3.0
-------------------------------------------------------------------
ST-LINK SN : 53FF6A068678574840600267
ST-LINK FW : V2J45S7
Voltage : 3.51V
SWD freq : 4000 KHz
Connect mode: Normal
Reset mode : Software reset
Device ID : 0x431
Device name : STM32F411xC/E
Device type : MCU
Device CPU : Cortex-M4
UPLOADING OPTION BYTES DATA ...
Bank : 0x00
Address : 0x40023c14
Size : 8 Bytes
栢栢栢栢栢栢栢栢栢栢栢栢栢栢栢栢栢栢栢栢栢栢栢栢栢 100%
OPTION BYTES BANK: 0
Read Out Protection:
RDP : 0xFF (Level 1, read protection of memories)
PCROP Protection:
SPRMOD : 0x1 (PCROP enabled. nWPRi bits used for PCROP protection on sector i)
BOR Level:
BOR_LEV : 0x3 (BOR OFF reset threshold level from 1.80 to 2.10 V)
User Configuration:
WDG_SW : 0x1 (Software watchdog)
nRST_STOP : 0x1 (No reset generated)
nRST_STDBY : 0x1 (No reset generated)
Write Protection:
WRP0 : 0x1 (PCROP protection active on sector i)
WRP1 : 0x1 (PCROP protection active on sector i)
WRP2 : 0x1 (PCROP protection active on sector i)
WRP3 : 0x1 (PCROP protection active on sector i)
WRP4 : 0x1 (PCROP protection active on sector i)
WRP5 : 0x1 (PCROP protection active on sector i)
WRP6 : 0x1 (PCROP protection active on sector i)
WRP7 : 0x1 (PCROP protection active on sector i)
================================
Regards
2025-08-21 5:38 AM
RDP of 0xFF is not RDP level 2. If it were in RDP level 2, the chip would not connect at all.
Probably the option bytes are corrupted due to a power loss or other issue when programming them.
I suspect a reset of the option bytes to factory values would fix it but STM32CubeProgrammer doesn't have a good way to do this from the GUI. Perhaps writing them via the CLI would work.
2025-08-21 1:12 PM
Dear @MKIM.3 ,
My recommendation is to contact your distributor or nearest ST office and ask for a local FAE or Quality department to do a failure analysis. I suspect indeed a Failure at power on sequence causing a physical damage to the embedded Flash matrix and so not able to be restored to the expected values , this may happen when a huge damage very far from the Absolute maximum rating of the device accidentally during rework etc.
Regards,
STOne-32
2025-08-21 8:05 PM
Hi,
Thanks for rapidly responses.
Is there any methods using STM32_Programmer_CLI.exe to fix this problem ?
I checked the OPTLOCK Bit in the Flash option control register. below is the log.
============================
STM32_Programmer_CLI.exe --connect port=swd mode=hotplug -r32 0x40023c14 1
-------------------------------------------------------------------
STM32CubeProgrammer v2.20.0
-------------------------------------------------------------------
ST-LINK SN : 53FF6A068678574840600267
ST-LINK FW : V2J46S7
Board : --
Voltage : 3.41V
SWD freq : 4000 KHz
Connect mode: Hot Plug
Reset mode : Software reset
Device ID : 0x431
Revision ID : Rev A
Device name : STM32F411xC/E
Flash size : 512 KBytes (default)
Device type : MCU
Device CPU : Cortex-M4
BL Version : 0x0
Reading 32-bit memory content
Size : 4 Bytes
Address: : 0x40023C14
0x40023C14 : 8FFFFFED
============================
The last one byte ED represents OPTLOCK enabled so I think first of all, this bit should be disabled.
If possible, let me know how to do this.
Regards.