Skip to main content
Associate III
January 15, 2025
Solved

STM32CubeMX allows max CPU frequency even with VOS low; intentional or not?

  • January 15, 2025
  • 3 replies
  • 1428 views

I'm using the NUCLEO-H7S3L8 and the max CPU frequency is 600MHz.

PhucXDoan_0-1736901133176.png

 

By default, CubeMX sets VOS is set to 0 (low).

PhucXDoan_1-1736901198884.png

But if this were the case, wouldn't it be violating the datasheet where it states 400MHz is the max CPU clock?

PhucXDoan_2-1736901290127.png

 

I've been using 600MHz clock without ever setting VOS high and I haven't gotten any issues, so I'm not sure whether or not it's fine to leave VOS alone.

Best answer by Sarra.S

Hello again @PhucXDoan and @filipxsikora

This is indeed a naming issue, the RM will be corrected with: 

VOS0 is high level

VOS1 is low level 

So, I confirm that there is no issue in CubeMX.

3 replies

ST Employee
January 15, 2025

Hello @PhucXDoan

Thank you for reporting this behavior, I have submitted a ticket for further investigation by STM32CubeMX team (Internal ticket number: 200435) 

filipxsikora
Associate III
January 15, 2025

Hello,

This is actually "correct". At least from the standard H7 line PoV, the 'Power Regulator Voltage Scale 0' was always the highest VOS, achieving the highest CPU Freq. The scale is inverse, the lower the number, the higher is the regulator output voltage and therefore higher achievable CPU Freq.. For some reason.

And sice the H7RS line is just a derivate of the original H7, same core, etc. I'm guessing they just went with it as it was.

 

If you check the source code:

https://github.com/STMicroelectronics/stm32h7rsxx-hal-driver/blob/7ca2e07ca21bc66b53654e845b4c85c884343b60/Src/stm32h7rsxx_hal_pwr_ex.c#L350 

It is described in the comment of the function which sets the VOS.

PhucXDoanAuthor
Associate III
January 15, 2025

I think it is indeed backwards, but the documentation is also a bit inconsistent about this.

PhucXDoan_1-1736955389630.png

If the RM says VOS=0 is "low level", this would naturally map to mean "VOS low", and as the DS page I shown above, "VOS low" implies FCPU MAX of 400MHz. Funny stuff.

Sarra.SBest answer
ST Employee
January 23, 2025

Hello again @PhucXDoan and @filipxsikora

This is indeed a naming issue, the RM will be corrected with: 

VOS0 is high level

VOS1 is low level 

So, I confirm that there is no issue in CubeMX.