OSD32MP1 Power Budgeting

Published On: September, 9, 2020 By: Neeraj Dantu

It is good practice to create a power budget for a design/product when starting the design. Good power budgeting contributes to circuit robustness, increased product life, and reduced cost of the product. To create a power budget, information on power consumption of the components, power availability, operating temperature, communication, and operation modes of the processor needs be collected.

This App Note will outline the different aspects that should be considered when creating a power budget for an OSD32MP1 based design.

As part of the power budget you may want to leverage different power modes of the STM32MP1. Please refer to the Low Power App Note for the OSD32MP1 for more information on using the low power modes.

If you need more information on how the power system of the OSD32MP1 fucntions please see this app note.

Step 1: Creating a Power Diagram

To create a power budget, the first step is creating a power diagram that shows all the power paths of the system. For the OSD32MP15x, this includes both input and output power rails shown in the following figure. Each output should be labelled with the voltage that will be used in the system and the maximum current supported from the datasheet.

Power Inputs and Output of OSD32MP15x
Power Inputs and Output of OSD32MP15x

Next, based on the input voltage required, each power consuming components should be added and connected to the appropriate output power rail. Once all of the components have been placed on the appropriate outputs, the SiP power inputs can be connected to the appropriate input power supply, or left unconnected if not used. The figure below shows the completed power system diagram for the OSD32MP1-DK2 Platform. The schematics and design files for this board are available here.

OSD32MP1-DK2 Power System Diagram
OSD32MP1-DK2 Power System Diagram

 

Step 2: Creating a Power Budget

Once a power block diagram has been created, the next step is making a power budget to estimate power consumption of each component and thus the total power consumption of the design.

Maximum Power

There are several challenges involved in accurately estimating the power consumption of each component. For example, it is difficult to estimate how much current, the STM32MP15x processor and the DDR Memory draw since that is highly application dependent. Power consumption can also depend on the presence of an externally connected device, such as a USB device or a microSD card. To account for all situations, start by listing the maximum power consumption for all the components. Maximum current consumption values can be found in each component datasheet. The table below shows the power budget for the OSD32MP1-DK2 assuming maximum power consumption for each component.

Power Budget Table – Maximum Power Consumption
PART NAMEPART #CURRENT (mA)VOLTAGE RAILEFF* (%)RAIL VOLTAGE (V)LDO PARENTPOWER(mW)
STM32MP15xU13440Internal1001.2528
STPMIC1AU131.2Internal10056
DDR3LU13360Internal841.35579
4KB EEPROMU133Internal793.313
USB ConnCN1/CN5~250VIN1005~1250
SII9022U149.6PMIC_LDO23.3548
SII9022U1469.2PMIC_LDO61.23.3228
LBEE5KL1DXU8370PMIC_VOUT4793.31546
SD CARDCN15200PMIC_VOUT4793.3835
RTL8211F-CGU18180PMIC_VOUT4793.3752
USB2514BU780PMIC_VOUT4793.3334
CS42L51-CNZU2011.18PMIC_LDO11.83.337
TOTAL6156

*Note that this is the worst-case efficiency of the power rail. It is used to calculate for worst-case scenario for a robust power design.

This shows a total, worst-case power consumption. While this is useful to keep in mind when thinking about your power layout and thermal design, normal operation of the device will not consume that much power. Therefore, the power budget should be refined to better reflect normal operation.

Typically, application specific power consumption values for each of the devices can also be gathered from the datasheet. However, calculating the power consumption for the SoC is a little more involved. The following section demonstrates the procedure to use the STM32CubeMX tool for estimating the power consumption for the SoC.

Estimating STM32MP1 Power Consumption

STM32CubeMX provides a power estimation tool that can calculate power consumption of the STM32MP15x in different power modes, including low power modes. Set up for STM32CubeMX is described in the STM32MP1 CubeMX Tutorial for OSD32MP15x application note. To use the power tool:

  1. Review STM32MP1 CubeMX Tutorial and download the necessary components.
  2. Open the Minimal CubeMX Project for the OSD32MP15x.
  3. Modify the peripheral and pinout configuration according to the connections required for the application.
  4. Navigate to the tools section and click on the PCC tab.

    Tools Tab
    Tools Tab
  5. The junction temperature of the SoC for the target application can be calculated using OSD32MP15x Thermal Guide. There are only two options for the junction temperature in CubeMX: room temperature and worst case. Set the junction temperature and VDD. The worst-case junction temperature(85C) was used for this example.
  6. The tool estimates power based on the state of each core of the SoC and the clock configuration of the peripherals. Each configuration lasts for a set time period called a “step”. By default, the tool generates two steps: RUN and LPLV-Stop. Click on “Generate RUN + LPLV-STOP” button.
  7. You can modify the default steps to change MPU and MCU power modes and frequencies by double clicking the step in the sequence table. In this window, you can also choose different frequencies or change peripheral allocation.

    Step Settings
    Step Settings
  8. You can also add your own steps by clicking the new step button.

The Step configuration window gives a good estimate of the power consumption value we need to refine the power estimation of the SoC. The following information was gathered from the tool:

STM32MP15x SoC Power – Application Consumption
VOLTAGE RAILCURRENT CONSUMPTION (mA)
VDD_CORE470
VDD4

You can see more details about the power estimation tool in Section 5.1 of the STM32CubeMx for STM32 configuration and initialization C code generation – User Guide from the ST website.

Based on the above consumption numbers, the total power consumption for the SoC can be calculated as follows:

Power Consumption of STM32MP15x SoC
POWER RAILCURRENT COSUMPTION (mA)VOLTAGE (V)PMIC POWER RAILEFFICIENCY (%)POWER CONSUMPTION (mW)
VDD_CORE4701.2VOUT170806
VDD43.3VOUT38815
TOTAL831

This is a much more reasonable number to use for power budgeting than the initial worst-case estimate of 2200mW.

Refining the Power Budget

Now that application specific SoC power consumption numbers have been calculated, the power budget can be update to more accurately reflect the actual application power consumption. Although it is safe to use the worst-case scenario power consumption values, the power system of the product/design will be severely over-designed.

Therefore, in the table below, more typical and application specific power consumption values have been used for the power budget. These typical power consumption values were taken from the datasheets of the respective devices. Note that the total power consumption still assumes usage of all the peripherals at once along with full usage of the SoC, but using this power budget to design the power system will make for a robust power design, accounting for any unexpected power usage.

Application Specific Power Budget
PART NAMEPART #CURRENT (mA)VOLTAGE RAILEFFICIENCY* (%)VOLTAGE (V)LDO PARENTPOWER (mW)
STM32MP15xU13166.2Internal100+5831
STPMIC1AU131.2Internal100**56
DDR3LU13360Internal841.35579
4KB EEPROMU131Internal793.34
USB ConnCN1/CN5~250VIN1005~1250
SII9022U147PMIC_LDO23.3535
SII9022U1454.2PMIC_LDO61.23.3179
LBEE5KL1DXU8270PMIC_VOUT4793.31128
SD CARDCN1580PMIC_VOUT4793.3334
RTL8211F-CGU18110PMIC_VOUT4793.3459
USB2514BU735PMIC_VOUT4793.3146
CS42L51-CNZU2011.18PMIC_LDO11.83.337
TOTAL4998

*Note that this is the worst-case efficiency of the power rail. It is used to calculate for worst-case scenario for a robust power design.
+Efficiency of power rail is already accounted for in the Power Consumption table
**Efficiency of power rail is already accounted for in the Power Consumption table

As mentioned, this power budget is still higher than what the actual application will use as all devices and peripherals are unlikely to be used at the same time. This can be thought of as a worst-case application scenario that can occur. However, designing for such a scenario makes for a robust power design.

Step 3: Calculate Total Input / Output Currents

From the application specific power budget, it is time to add up all of the currents to make sure that the current consumption on each power rail does not exceed the maximum current capacity of the power rail as specified in the datasheet.

Current limitations from OSD32MP15x datasheet
ConditionLimitationWorst CaseApplication Specific
VIN input current2.0 A1566 mA1000 mA
VIN_BAT input current2.0 mA
SWIN input current250 mA
PMIC_VOUT4 output current2.0 A833 mA496 mA
PMIC_LDO1 output current350 mA11.8 mA11.8 mA
PMIC_LDO2 output current350 mA9.6 mA7 mA
PMIC_LDO5 output current350 mA
PMIC_LDO6 output current150 mA69.2 mA54.2 mA
PMIC_BSTOUT output current500 mA
PMIC_VBUSOTG output current500 mA
PMIC_SWOUT output current250 mA

While this design presents no problems for the power design (i.e. all currents are well under the specified limits), there might be situations where the current draws are close to or exceed the power rail limits in a design. In this case, the power architecture will need to be modified. The OSD32MP15x has multiple programmable power rails so components can be moved to different power outputs or other regulators can be added to the design.

System Power Estimation for Battery Applications

While the previous power budgets and current analysis must be done to create a robust power system, it only provides information about the Run state. This does not provide a complete picture when trying to understand battery life for battery powered applications. Given that applications will also use low power states to minimize power consumption when not in use, it is also good to estimate the average system power over time.

The best way to characterize the system power consumption over time is to estimate average power consumption per hour. This provides a straightforward way for battery powered applications to determine the necessary battery capacity for the use case. For example, assume an application scenario with the following characteristics:

Example System Power State Scenario
SYSTEM POWER STATEPERCENTAGE OF TIME SPENT IN THIS STATE
Run20%
LP-Stop80%

The LP-Stop power state allows for a quick wakeup from UART console and reduces the total power consumption of the application by a significant amount. This low power mode and the software mechanism to use to enter this state is shown in the Entering a Low Power State section of the OSD32Mp1 Low Power Mode App Note. The table below provides the current consumption of an example system during both the power states listed in in the Example System Power States table.

Power Consumption During Selected System Power States
SYSTEM POWER STATEPOWER CONSUMPTION OF THE BOARD (mW)
Run4998
LP-Stop125

Therefore, the average power consumption of the system can be calculated as follows:

Average power consumption = (Power in Run state * % time spent in Run state ) + (Power in LP-Stop state * % time spent in LP-Stop state)

Average power consumption = (4998 mW * 0.2) + (125mW * 0.8) = ~1100mW

Using this value, if the system needed to run on a single charge of a 1S LiPo battery for 8 hours, then the following battery size will be needed:

1100mW * 8 hrs = 8800mWh

Typical 1S LiPo battery has an average voltage of 3.7V

8800mWh / 3.7V = ~2400mAh

Therefore, this example application board would need a 2400mAh 1S LiPo battery to be able to meet the application runtime requirements.

Conclusion

Creating a power budget is a key step to a successful design. This app note outlined how to create a power budget for a OSD32MP1 based system. If you have additional questions, please visit our forums.

Revision History

Want to stay informed about any updates made to this app note?  Sign up for our document change update notifications below.

"*" indicates required fields

Name*
Hidden
Hidden
Hidden

Revision NumberRevision DateChangesAuthor
109/03/2020Initial ReleaseJustin Berry, Neeraj Dantu