Skip to main content
Explorer
September 28, 2024
Solved

Using the internal SMPS on STM32H747

  • September 28, 2024
  • 1 reply
  • 3978 views

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

    This topic has been closed for replies.
    Best answer by AScha.3

    >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 ?

    1 reply

    Technical Moderator
    September 28, 2024

    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.

    Explorer
    September 28, 2024

    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.

    Super User
    September 28, 2024

    >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.