cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H755, is the clock too slow?

halbeeee
Associate II

Hello everyone, I'm working on an STM32H755BI (industrial temperature range), and i'm quite disappointed by the maximum clock reachable from the system.

halbeeee_0-1707818384608.png

As can be seen, the MCU can reach up to 480MHz in the core M7 and 240MHz in the core M4.

After months of develpment, a firmware package update blocked me the VOS0 and VOS1, and in fact reading the user manual those modes are unavailable on my package, so i reduced to 300MHz and 150MHz

halbeeee_1-1707818577885.png

Today, with an update of cube MX, this error appeared in the clock tree:

halbeeee_2-1707818662175.png

And in fact by reading the datasheet APB4 is limited to 100MHz.

halbeeee_3-1707818726301.png

Reducing APB4 to 100MHZ could not be a big deal, but the real problem is that considering the clock distribution in the previous image the clock of the APB4 is the same clock of the M4 (CPU2).

 

Does this means that i bought a 480+240MHz and i'm forced to use it at 300+100 after more than a year of development?

32 REPLIES 32

>>On the other hand, there is this note in the datasheet which suggests the change was intentional

Without seeing what changed, I'd assume that relates to the 100 MHz for VOS3

Do you see a specific note that the M4 has to run at half-speed? AHB4 can be DIV1 as far as I can tell.

There is a lot of implied documentation that it is normative, but from a synchronous sense is it actually a necessity?

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

>>I also think that your pointed note refers to VOS3 (or at least i hope, since FCPU2 of 150MHz is allowed by cube)

That would be my read of it too.

I suspect CubeMX is applying VOS3 rules, not VOS2 rules. The gearing would look to permit 300+150 or 200+200

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

Me thinks it's a bug..

But I don't use CubeMX to build my clock trees.

The limits on the M4 are going to be critical path related in this context, running the transistors at 300 MHz isn't going make them run any hotter on the M7 vs M4 side of the die.

I've got Cortex-M3's running at 384 MHz on other processes, admittedly I don't have the FPU-S to contend with, but still.

Honestly I'd like to see a lot better analysis of where ALL these limitations are coming from. And what critical paths have been identified.

For example are there good reasons why 300+300, 250+250 or 240+240, etc aren't actually workable?

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
TDK
Guru

@Tesla DeLorean You are likely correct that the figure is from before the max frequency was bumped from 400 MHz to 480 MHz. Figure would be consistent with 400 MHz. Good catch on APB vs AHB, I should have caught that.

All that acknowledged, the underlying question remains the same. Datasheet clearly indicates 480/240 is possible on that chip, yet CubeMX doesn't allow it.

Underlying problem seems to be CubeMX doesn't allow VOS0 or VOS1 to be selected on STM32H755. Unclear why, probably a bug, but I could be missing something. They simply don't appear as options. No such issues on STM32H745.

TDK_0-1707838571362.png

 

If you feel a post has answered your question, please click "Accept as Solution".

The basic "problem" is the allowed temperature range : -3  vs -6 , 125° vs 85° .

When 85° , 480/240MHz max., but at 125° 300/100MHz .

see

https://estore.st.com/en/stm32h755bit3-cpn.html

https://estore.st.com/en/stm32h755bit6-cpn.html

 

but wrong "promises" : > M7 core operates at up to 480 MHz ..< --- only for -T6 true !!!

AScha3_0-1707840190649.png

And with -T3 only VOS2 or 3 allowed...

If you feel a post has answered your question, please click "Accept as Solution".

>> but at 125° 300/100MHz .

Ok where do you see this? VOS2 = 300/150, VOS3 = 200/100

It's stuff like this that I find fantastically UNHELPFUL

h7bit3.jpg

What I'd find helpful is the critical paths in the M4 implementation, and the transistor performance expectations at 125C externally vs junction temperatures.

There are SURELY better options for derated speeds, even with the unhelpful dividers.

If we knew where ST believed the critical paths were it would be possible to characterize, observe failure, and provide adequate safety margins. Or clock gear based on  ADC_CHANNEL_TEMPSENSOR  (ADC_CHANNEL_18)

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Pavel A.
Evangelist III

Please check in CubeMX/IDE: RCC settings-> System parameters -> Product revision. Is it "V"?

Sorry  Clive,

I forgot ... just a footnote:

AScha3_0-1707853607492.png

So here they set a limit - other than the "480 MHz " ! 

+ from ds H745 : if only VOS2 or 3 allowed ->

AScha3_1-1707854052934.png

AScha3_2-1707854171397.png

 

If you feel a post has answered your question, please click "Accept as Solution".

@AScha.3 When the MCU runs in the extended temperature condition, of course this text applies. But when it runs in "normal" conditions, nothing forbids you to set VOS0 and 480 MHz.

I've just created a new project in Cube for STM32H755BITx (x=3 or 6) and it allows to set VOS0. No problem.

The Cube itself does not limit anything. It's up to the factor that sits between the chair and the keyboard  to decide how to set up MCU power and clock in certain runtime conditions.

 

 

 

PavelA_0-1707857450330.png

 

PavelA_1-1707857542651.png