cancel
Showing results for 
Search instead for 
Did you mean: 

Using the internal SMPS on STM32H747

TonyFocusLCDs
Associate III

I am using an STM32H747I-Discovery board for prototyping.

I was wondering if I can set:

HAL_PWREx_ConfigSupply(PWR_SMPS_1V8_SUPPLIES_LDO);
or
HAL_PWREx_ConfigSupply(PWR_SMPS_2V5_SUPPLIES_LDO);

Then set:

__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE0);

And still set up my clocks and PLL for 480 MHz operation?

I read in the H747 datasheet section 3.5.3 that to use voltage scale 0 (for boosted performance and get the 480 MHz) you have to use the internal LDO. I am just wondering if I can power the internal LDO from the internal SMPS.

Thanks for the help

1 ACCEPTED SOLUTION

Accepted Solutions

>Or is it trying to show that the SMPS can supply power externally?

Maybe - but who wants this ? :)  (+ I would not make games with this, just get the cpu running. )

+

>Does that all sound correct?

yes... 

You have to separate the vcap from smps !  -> remove sb46 !! add c152 + sb19 (if not there)- check.

AScha3_0-1727550564671.png

But double check: not to supply/connect core (VCAP pins) with SMPS any more ! You kill the cpu then.

check this and the connections you made with DMM for good contact - before apply any power !

Otherwise - not so difficult action - right ?

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

View solution in original post

6 REPLIES 6
SofLit
ST Employee

Hello @TonyFocusLCDs ,

Indeed for a system clock of 480MHz with VOS0 you need to use LDO not the SMPS. The disco board you are referring to is hardwired in SMPS and you cannot use other power mode. So you cannot exceed 400MHz at VOS1 on this board.

Hope I answered your question.

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.

Sorry but I might not be understanding correctly.

In CubeMX, selecting the STM32H747XIH6 device I can setup the internal SMPS to power the LDO (either set to 1V8 or 2V5) but then it only allows me to set VOS0, VOS1 through 3 are grayed out and not selectable.

Actuall I went through all the SupplySource settings in CubeMX and it does not matter all voltage scaling options are grayed out and only VOS0 is selectable. I think this might be a bug in CubeMX 6.12.1.

So I guess my question is still the same, can I set it to PWR_SMPS_1V8_SUPPLIES_LDO (or 2V5) and use VOS0 or am I stuck with only the PWR_LDO_SUPPLY and VOS0?

If you can only use the PWR_LDO_SUPPLY, then PWR_SMPS_1V8_SUPPLIES_LDO (and 2V5) are completely useless settings, why even bother having them? We would either use only the SMPS (for power savings) or the LDO. Then PWR_SMPS_1V8_SUPPLIES_LDO (and 2V5) become meaningless settings.

This is my biggest issue with CubeMX - it confuses the customer on what are possible (and correct) settings. I have found several instances where CubeMX allows you to make completely incorrect settings and does not allow you to make some correct settings. An example, CubeMX does not allow you to configure the DSI clock correctly and every time I have to go into the code to fix the clock/PLL settings for the DSI so that it runs. This have been happening since CubeMX 5.x.x and persists through 6.12.1 (and yes I have reported this many times to ST).

If I am stuck using only the LDO setting (not using either SMPS powers LDO settings) then I know from the schematic that I need to change several solder bridges.

This brings me to another question: if the device can run up to 480 MHz then why on the discovery board would they not configure the default to be able to run at the maximum clock? I believe most customers would want to test out the maximum clock frequency and testing power usage before deciding on lowering the frequency. We are buying this part because of the performance and power usage is secondary. If power was a major concern I would use one of your low power devices.

Thanks again for your help.

>If you can only use the PWR_LDO_SUPPLY, then PWR_SMPS_1V8_SUPPLIES_LDO (and 2V5) are completely useless settings, why even bother having them? We would either use only the SMPS (for power savings) or the LDO. Then PWR_SMPS_1V8_SUPPLIES_LDO (and 2V5) become meaningless settings.

->

No - its just: you can do different setups, depends on...what you want: best efficiency or highest clock.

Because the smps -> core has some ripple, it cannot supply the core at "its limits", so not at max. clock.

Here you need the smps -> LDO -> core , so smps is main buck , but LDO makes clean supply for the core.

from ds:

AScha3_0-1727544872906.png

On your disco board its wired for max. eff. , so ldo unused. Do not try to set anything else in Cube ! (at this state of disco board ).

+

IF you want check it at max. speed, change the solder bridges on the disco board to smps->ldo -> core.

(in blue text in pic ...but check, if all seems ok.)

And make a new project in Cube, not starting with H747-disco (board), but just (as in your future product) H747XI (cpu) project. Here you can set the smps->ldo mode and run the chip at 480M.

on disco :

AScha3_1-1727545700573.png

But double check: not to supply/connect core (VCAP pins) with SMPS any more ! You kill the cpu then.

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

OK, so what I understand is that I can use the internal SMPS to power the LDO so that I get smooth (low ripple) power to the core (smps -> ldo -> core) and then can run the core at 480 MHz. I just need to make the jumper (solder bridge) changes on the discovery board to route the SMPS to the LDO and disconnect from VCAP pins.

Looking at the datasheet figure 16 and the disco schematic:

  1. Remove SB46 so the SMPS does not feed VCAP
  2. Remove SB2 and SB11 - disconnect the 4.7uf caps
  3. Add SB1 and SB12 - connect the 2.2uf caps

It looks like those are the only solder bridges to change to connect output of SMPS to input of LDO. Any other solder bridge changes would disconnect the SMPS (rendering it useless) and only power the LDO from the main VDD into the board. Disconnecting SB19 would remove the SMPS output cap unstabilizing the SMPS and disconnecting SB48 would completely disconnect the SMPS from the LDO. Does that all sound correct?

To me figure 16 (second diagram) makes it look like VDD_External is another external power supply feeding the the SMPS along with the main board VDD feeding the SMPS. Or is it trying to show that the SMPS can supply power externally?

Thanks for the help

>Or is it trying to show that the SMPS can supply power externally?

Maybe - but who wants this ? :)  (+ I would not make games with this, just get the cpu running. )

+

>Does that all sound correct?

yes... 

You have to separate the vcap from smps !  -> remove sb46 !! add c152 + sb19 (if not there)- check.

AScha3_0-1727550564671.png

But double check: not to supply/connect core (VCAP pins) with SMPS any more ! You kill the cpu then.

check this and the connections you made with DMM for good contact - before apply any power !

Otherwise - not so difficult action - right ?

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

Tank you everyone for your help.

I was able to get it working with the SMPS powering the LDO and running the system clock at 480 MHz.

AScha.3, I am accepting you last reply as the solution. I only had to remove the SB46 as C52 and SB19 were already on the board.

 

Thanks again!