cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H745I_DISCO stuck at check VOSRDY bit

LWei.1
Associate II

Hi All,

When I try to boot the M7 core alone and I disabled the M4 core. I create a simple stm32Cube project, the code stuck at:

while(!__HAL_PWR_GET_FLAG(PWR_FLAG_VOSRDY)) {}

inside the SystemClock_Config() function.

The VOSRDY will set only when I change SCALE1 to SCALE3.

__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);

When I enable the M4 core and load software into it, the issue gone alway.

This issue happens during I am trying to port the board to uboot, it always create deadloop there. I checked the manual and website, there are same issues reported but no finial official solution. Can anyone help me with that?

Thanks,

Lee

1 REPLY 1
xorly
Associate II

Probably late, but I got same/similar issue with H730 today.

In my case, switch from VOS3 to VOS0 passed, but Vcore did not change. Switching from VOS3 to VOS1 and waiting for VOSRDY caused lockup.

Solution was reading ref. manual 😅

7.8.4

PWR control register 3 (PWR_CR3)

Address offset: 0x00C

Reset value: 0x0000 0006 (reset only by POR only, not reset by wakeup from Standby mode and RESET pad).

The lower byte of this register is written once after POR and shall be written before changing VOS level or ck_sys clock frequency. No limitation applies to the upper bytes.

I just wrote LDO/SMSPS config into CR3 register with 32bit access, and VOS switching started working.