cancel
Showing results for 
Search instead for 
Did you mean: 

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

PhucXDoan
Associate III

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.

1 ACCEPTED SOLUTION

Accepted Solutions
Sarra.S
ST Employee

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.

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

4 REPLIES 4
Sarra.S
ST Employee

Hello @PhucXDoan

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

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.

filipxsikora
Associate III

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.

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.S
ST Employee

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.

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.