AM17x Power Consumption Summary

Important Note:

This wiki is in maintenance mode and questions on this device architecture is supported on Sitara E2E forum

= Overview =

This article discusses the power consumption of the Texas Instruments AM17x. Power consumption on the AM17x device is highly application-dependent, so a spreadsheet is provided to model power consumption for a user's application. To obtain good results from the spreadsheet, realistic usage parameters must be entered. The low-core voltage and other power design optimizations allow these devices to operate with industry-leading performance, while maintaining a low power-to-performance ratio.

The data presented in the accompanying spreadsheet was measured from strong units, representative of devices at the maximum end of power consumption for production units. No production units will have average power consumption that exceeds the spreadsheet values. Therefore, the spreadsheet values may be used for board thermal analysis and power supply design as a maximum long-term average. The power data presented in this document are based on measured data with AM1707 silicon revision 2.0 or earlier devices.

The spreadsheet discussed in this application report can be downloaded from the URL listed in the Download Section. Although this spreadsheet was developed for the AM1707 devices, it can be used to model power consumption on the AM1705. Features not supported on these devices should not be enabled in the spreadsheet.

= Model Activity =

Activity-Based Models
Power consumption for the AM17x can vary widely depending on the use of on-chip resources. Thus, power consumption cannot be estimated accurately without an understanding of the components of the SoC in use and the usage patterns for those components. By providing the usage parameters that describe how and what on the SoC is being used, accurate consumption numbers can be obtained for power-supply and thermal analysis.

This model breaks down power consumption into two major components: baseline power and activity power. Using this model, various applications that use the SoC differently can get accurate predictions across the spectrum of possible power consumption on the AM17x.

Baseline Power
Baseline power consumption is power that is independent of chip activity such as static power (leakage), phase-locked loop (PLL), oscillator power and clock tree power to various subsystem components (e.g. SCR) that cannot be turned off via the on-chip power management module. While independent of chip activity, baseline power is dependent on the device operating frequency, voltage, and temperature. Therefore, you can affect baseline power only by changing the PLL(s) output frequency, the core voltage, or the operating temperature.

Activity Power
Activity consumption is power that is consumed by active parts of the SoC: CPU(s), EMIF, peripherals, etc. Activity power is independent of temperature, but dependent on voltage and activity levels. In the spreadsheet, activity power is separated by the major modules within the device. Therefore, the individual module power consumption can be estimated independently; this helps with tailoring power consumption to specific applications. The parameters used to determine the activity level of a module are frequency, utilization, read/write balance, bus size, and switching probability. Note that not all parameters apply to all modules.


 * Frequency: The operating frequency of a module or the frequency of external interface to that module.
 * Status: Indicates whether the module is in an enabled or disabled state.
 * % Utilization: The relative amount of time the module is active or in use versus off or idle.
 * % Write: The relative amount of time (considering active time only) the module is transmitting versus receiving.
 * Bits: The number of data bits being used in a selectable-width interface.
 * % Switch: The probability that any one data bit will change state from one cycle to the next.

Not all modules include all of the parameters.

Modules
The AM17x power estimation spreadsheet contains the following modules with adjustable parameters:


 * ARM926EJ-S Core
 * Programmable Real-time Unit Subsystem (PRUSS)
 * External Memory Interface A (EMIFA)
 * External Memory Interface B (EMIFB)
 * Enhanced Direct-Memory-Access Controller 3 (EDMA3)
 * Ethernet Media Access Controller (EMAC)
 * LCD Controller (LCDC)
 * Universal Serial Bus 1.1 OHCI Host (USB1.1)
 * Universal Serial Bus 2.0 OTG Port (USB2.0)
 * Multichannel Audio Serial Ports (McASP)
 * Multimedia Card/Secure Digital Card Interface (MMCSD)
 * Serial Peripheral Interface (SPI)
 * Inter-Integrated Circuit (I2C)
 * General-Purpose Timer (TIMER)
 * Enhanced Capture Modules (ECAP)
 * Enhanced Pulse Width Modulators (EHRPWM)
 * Enhanced Quadrature Encoder Pulse Modules (EQEP)
 * Universal Asynchronous Receiver/Transmitter (UART)
 * Universal Host Port Interface (UHPI)
 * General-Purpose Input/Output (GPIO)
 * Real-Time Clock (RTC)

Although EDMA3 is listed as a separate module, the row essentially provides the power consumption for turning on the clock to the channel controller and the transfer controller(s) for a particular device frequency and voltage. The EDMA3 activity power is included in the module/peripheral serviced by the EDMA3. Therefore, in estimating power for peripherals that typically use EDMA3 for their transfers, the EDMA3 should be kept enabled. For available peripherals and peripheral configurations, please see the device-specific data manual.

= Using the Power Estimation Spreadsheet =

The power estimation spreadsheet involves entering the appropriate usage parameters as input data in the spreadsheet. Cells that are designed for user input are white in color. The following steps explain how to use the spreasheet:


 * 1) Select the voltage, junction temperature, PLL configuration and device frequency for the estimated end application
 * 2) Fill in the appropriate module use parameters

The spreadsheet takes the provided information and displays the details of power consumption for the chosen configuration.

As the spreadsheet is being configured, not all settings are checked for conflicts, e.g. peripheral clock frequency out of allowed range, etc. Consult the device-specific data manual for max frequency limitations. For best results, enter the information from left to right starting at the top and moving downward.

Choosing Appropriate Values
The frequency and bit user values are determined by design and it will be clear what the correct values to enter are. For some modules, the frequency field is used to input the data rates (e.g. UART, EMAC, etc). In order to choose appropriate values, you need a good understanding read/write balance, bit switching required estimation, and utilization of the end application. You should also keep in mind the pin multiplexing configuration for the device to avoid enabling mutually exclusive peripherals/configurations at the same time. For available peripherals and the configuration, see the device-specific data manual.

Utilization
For modules except ARM926EJ-S Core, utilization is simple the percentage of time the module spend doing something useful, versus being unused or idle. For these peripherals, there are not various degrees of use, so the value is just an average over time. For example, the EMIF performs reads and write one-quarter of the time and has no data to move for the other three-quarters of the time (though it continues to perform background tasks like refresh); this would be 25% utilization.

For peripherals with I/O, utilization can be estimated by comparing used bandwidth with theoretical maximum bandwidth. If, for example, an application must transfer 160 Kb/s via the I2C port, with a theoretical 400 Kb/s maximum, the I2C utilization would be about 40%. In some cases, the max bandwidth allowed may be dependent on the device frequency; factor this while calculating the utilization if doing the estimation at different device frequencies.

System level issues may also reduce utilization. Though the spreadsheet accepts 100% utilization for all peripherals, this is not possible in reality. As concurrency in data movement increases and/or throughput requirements on high bandwidth modules (EDMA, etc) increases, overall peripheral activity is throttled back due to bottlenecks created at various common end points. In such cases, peripherals might not achieve 100% utilization; therefore, you should enter individual module utilization numbers keeping this overall limitation in mind.

% Writes
Peripherals that transmit as much data as they receive have 50% writes; the spreadsheet assumes the remaining 50% of the time is spend on reads. In some applications, peripherals move data in only one direction, or have a known balance of data movement. In these cases, % writes should be changed to 0%, or 100%, or the known ratio as appropriate for the cases when the SoC is reading all the time, writing all the time, or a combination of the two, respectively. Otherwise, 50% is a typical number that should be used.

% Switching
Random data has a 50% chance any bit will change from one cycle to the next. Some applications may be able to predict this chance using prior information about the data set. If there is a property of the algorithm that allows prediction of the bit changes, the application-specific probability can be used. All other applications should use the default number of 50%.

Peripheral Enabling and Disabling
As mentioned previously, the AM17x device provides the capability to disable modules that are not being used via the power sleep controller (PSC). When a peripheral is disabled, its clock is turned off reducing the power consumption of the device.

The spreadsheet accommodates this power saving feature by including fields from which a peripheral can be specified as disable or enabled.

If a module is not used for a given application, then it is recommended to keep it in a disabled state.

It is possible that the module is kept enabled but has no activity. To achieved this, program the % utilization and/or the frequency fields to a value of 0, then the numbers in the module's row will be indicative of the power consumed by clocking the module.

It is also possible for some modules to be disabled but still have activity. For example, EMAC will continue to generate a 50Mhz RMII clock for the PHY even when disabled. To eliminate the RMII clock activity, set the EMAC "Other" paramater to "RMII clk input". Another example is the USB PHYs. Both USB1.1 and USB2.0 PHY can be powered and enabled without having the USB modules enabled. To remove the PHY power consumption, set the USB "Other" parameter to "No Activity".

= Using the Results =

The results presented by the spreadsheet are based on measured data from AM1707 silicon revision 2.0 and earlier devices.

The intent of the power estimation spreadsheet is to provide estimates of the upper bounds in an application-specific loading and peripheral utilization scenario. The measured units were selected to be a strong unit at the maximum end of power consumption for production units. No production units will have average power consumption that exceeds the spreadsheet values. Therefore, the spreadsheet data may be considered maximum average power consumption; the actual observed power may vary. That is, transient currents may cause power to spike above the spreadsheet value for a small amount of time. However, over a long period, the observed average consumption will be below the spreadsheet value. The spreadsheet value may be used for board thermal analysis and power supply design as a maximum long-term average.

Adjusting I/O Power Result
I/O power is dependent not only on the device and activity, but also the load being driven. For loads with CMOS inputs, the power required to drive the trace dominates, and is a better measure of load than the number of inputs of lumped load capacitance. If the target system has very different I/O loading, scale the spreadsheet results either up or down to compensate. For this reason, the spreadsheet allows you to specify the approximate load on the I/O pins for each module by using the trace length field. This parameter is used to adjust the reported I/O power numbers.

= Thermal Considerations =

As integrated circuit (IC) components become more complex, the challenge of producing an end equipment product with good thermal performance also increases. Thermal performance is a system level concern, impacted by IC packaging as well as printed circuit board (PCB) design, PCB characteristics, PCB layout, ambient temperature, and chassis configuration.

In the device-specific data manual, TI specifies not to exceed the maximum operating junction temperature so the device reliability and/or proper operation can be maintained. To meet this requirement, it is important to understand the contribution of the other system characteristics (mentioned above) and design accordingly. Before finalizing system layout and PCB design, verify that the maximum operating junction temperature documented in the device-specific data manual is met.

The spreadsheet that accompanies this application report includes a worksheet that performs the junction temperature calculations described in section 5.3 of the Thermal Considerations appnote (SPRAAL9). You must enter value from the following fields in the worksheet: package type, core voltage, air flow, case temperature, ambient temperature, total power and static power. All of the remaining fields in the worksheet are calculated based on your inputs.

= Example =

The following examples demonstrate how to choose appropriate values for a particular application. These values may be imported into the spreadsheet by clicking the appropriate macro button.

The  Static  macro button reports the static power for the device, when the CLKIN is cut off and voltage is applied to the various core and I/O rails.

The  Standby  macro button reports the power consumed with the 24Mhz CLKIN. PLL0 is powered down/disabled and the system is operating in bypass mode with the CLKIN as the system clock. The ARM is in the wait for interrupt sleep mode and all peripherals are disabled.

The  Typical-300Mhz  macro button can be used to quickly visualize the use case scenario as described in the AM17x tech brief. The details of the peripherals and their operating conditions used in this scenario are:


 * Voltage: 1.2V
 * Junction temperature: 25C
 * CLKIN: 24Mhz
 * ARM: Typical Activity
 * EMIFB: Enabled, 50% Utilization, 50% Writes, 16 data lines, 50% Switch
 * EDMA3CC: Enabled
 * EDMA3TC0: Enabled
 * EDMA3TC1: Enabled
 * McASP0: Enabled and running at 24Mhz, 100% Utilization, 50% Switch, 1 serializer
 * SPI0: Enabled and running at 27Mhz, 50% Utilization, 50% Switch
 * GPIO: Enabled and running at 18.75 Mhz, 50% Utilization, 1 GPIO used

All other modules are not used and disabled.

The  Typical-456Mhz  macro button is the same as the Typical-300Mhz macro button, except that core voltage is at 1.3 volts, and the device is running at 456Mhz.

The  RTC Power Only  macro button reports the power consumed with 1.2 volts applied only to RTC CVDD. Core and I/O rails are powered off.

= Limitations =

The current implementation of the power estimation spreadsheet has the following limitations:


 * All measurements have been performed with a 24Mhz CLKIN provided by an external oscillator. The spreadsheet does not provide a capability of estimating power based on a different CLKIN value.
 * All measurements and calculations are performed with default PLLDIV values. The spreadsheet does not have the capability to change individual PLLDIV values. For example, all modules supplied by SYSCLK2 will operate at half of the input device frequency.

= Download =


 * [[Media:AM17x_PowerSpreadsheet_RevB.zip | AM17x Power Spreadsheet (Rev B)]]

= References =
 * AM1707 Data Manual
 * AM1705 Data Manual