cancel
Showing results for 
Search instead for 
Did you mean: 

STM32U0xx BOR_EN Factory Value

TSN
Associate II

Hi!
In version 4 of the reference manual for STM32U0, it is suggested that BOR is enabled and on Level 3 from the factory.
Is that correct?
I'm currently working on an construction running @ 2V, so it would never start up, if so. And when I read out the Option Bytes on a new MCU, BOR is disabled?

https://www.st.com/resource/en/reference_manual/rm0503-stm32u0-series-advanced-armbased-32bit-mcus-stmicroelectronics.pdf

TSN_0-1770367523381.png

1 ACCEPTED SOLUTION

Accepted Solutions
Gyessine
ST Employee

Hello @TSN 
I can confirm the correct factory value of BOR_LV is 0x6, not 0x7. This value will be updated in the reference manual in the future.
BR
Gyessine

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

View solution in original post

9 REPLIES 9
Gyessine
ST Employee

Hello @TSN and welcome to STcommunity!
Based on the product reference manual, level three corresponds to 2.8 V, so 2.0 V is not sufficient.
You can upgrade your power supply to a minimum of 2.8V, or modify the BOR_LEV bits in the FLASH option register to set the desired voltage.

Gyessine_0-1770375090710.png

Also, you can use STM32CubeProgrammer to verify and make sure of the current BOR value.

Gyessine_1-1770375455002.png

Hope that helps!
Gyessine

 

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

Hi!
And thanks for the reply.
However, I think my question was misunderstood.
My construction works fine and is is running fine @2V. But I never programmed the Option Bytes.

That is why I suspect that there is an error in the reference manual, as it looks like the BOR is disabled from the factory, which is the opposite of what is written in the manual.

Best regards!
/Tommie


Gyessine
ST Employee

Hello @TSN 

I apologize for any misunderstanding regarding your question.

I think we need to clarify the difference between factory values and reset values.

Factory values and reset values are not always identical:

  • Factory values are the original option byte settings programmed by ST during manufacturing that you will find in the product when you use it from the first time.
  • Reset values are the default values specified to which the option bytes revert to when you reset the product.

In STM32U0, the reset values are generally 00 for BOR_LVL and 1 for BOR_EN. This is why the project runs at 2.0 V, because BOR level 0 corresponds to 2.0 V.
If you want to recover the factory values, I recommend seeing this article.
I hope this answers your question, if yes please accept it as solution so it can be a reference for other users.
Gyessine

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

Well, I guess that the situation for the option bytes are special - there is no Reset Value.
The value is loaded from flash during start - and that I why I need to know the correct Factory Value.

TSN_0-1770817720536.png

 

Gyessine
ST Employee

@TSN 
Sorry but I am not sure that I fully understand your question.
Can you clarify what you mean by "correct factory value"?
According to the reference manual, the factory values are "111".
I tested the product and found out that reset values are "001"
BOR_EN is set and BOR level is 0
BR
Gyessine

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

Option Bytes are different from the vast majority of other registers, as they are not reset by micro code in the MCU, but rather by reading them from FLASH - which is why the user can change them.
And that is why they can not have a reset value defined in the Reference Manual
(see above, FLASH_OPTR Reset Value is 0xXXXX XXXX).
The value depends on what the user might have programmed it to be.

My problem is that if I take a brand new MCU - without programming anything - and read the BOR settings, I get:
BOR level = 0b11 (2.8V)
BOR_EN = 0 (brown out is disabled)
Corresponding to '110'

I would expect that these were set to the Factory Value the very first time (as I have not changed them):
BOR level = 0b11 (2.8V)
BOR_EN = 1 (brown out is enabled).
Corresponding to '111'

I am confused that what I see in a real product is not what is defined in the manual, and even more confused if you read out a third value (also different from what is stated in the manual).


Gyessine
ST Employee

Hello @TSN 
Thanks for clarifying the issue.

An internal ticket was submitted to the dedicated team for further investigation. Internal ticket number: 227101(This is an internal tracking number and is not accessible or usable by customers).We will get back to you with updates as soon as possible
BR
Gyessine

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

Gyessine
ST Employee

Hello @TSN 
I can confirm the correct factory value of BOR_LV is 0x6, not 0x7. This value will be updated in the reference manual in the future.
BR
Gyessine

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

Hi Gyessine!
Excellent - that resolves my issue!
Thanks a lot!

/Tommie