2024-09-06 08:16 AM
Hello.
How can we enable brown out for this processor and the brown out voltage?
Thank you.
Solved! Go to Solution.
2024-09-06 09:43 AM
Some mechanics along the lines of..
// Read the option byte
FLASH_OBProgramInitTypeDef OBInit;
HAL_FLASHEx_OBGetConfig(&OBInit);
// Check bitwise if the brownout level is not 3
if ((OBInit.USERConfig & OB_BOR_LEVEL_3) != OB_BOR_LEVEL_3)
{
// Set the brownout level to 3
OBInit.OptionType = OPTIONBYTE_USER;
OBInit.USERType = OB_USER_BOR_LEV;
OBInit.USERConfig |= OB_BOR_LEVEL_3;
HAL_FLASH_Unlock();
HAL_FLASH_OB_Unlock();
HAL_FLASHEx_OBProgram(&OBInit);
// This function needs to be called Unlocked Flash and OB state.
HAL_FLASH_OB_Launch();
HAL_FLASH_OB_Lock();
HAL_FLASH_Lock();
HAL_FLASH_OB_Launch();
}
2024-09-06 09:34 AM
Perhaps it's covered in the Reference Manual, or there are examples in the code trees of CubeL4 ?
2024-09-06 09:43 AM
Some mechanics along the lines of..
// Read the option byte
FLASH_OBProgramInitTypeDef OBInit;
HAL_FLASHEx_OBGetConfig(&OBInit);
// Check bitwise if the brownout level is not 3
if ((OBInit.USERConfig & OB_BOR_LEVEL_3) != OB_BOR_LEVEL_3)
{
// Set the brownout level to 3
OBInit.OptionType = OPTIONBYTE_USER;
OBInit.USERType = OB_USER_BOR_LEV;
OBInit.USERConfig |= OB_BOR_LEVEL_3;
HAL_FLASH_Unlock();
HAL_FLASH_OB_Unlock();
HAL_FLASHEx_OBProgram(&OBInit);
// This function needs to be called Unlocked Flash and OB state.
HAL_FLASH_OB_Launch();
HAL_FLASH_OB_Lock();
HAL_FLASH_Lock();
HAL_FLASH_OB_Launch();
}
2024-09-06 10:33 AM
You can adjust it in STM32CubeProgrammer along with other option bytes.