/
Zynq-7000 AP SoC Low Power Techniques part 4 - Measuring ZC702 Power with a Linux Application Tech Tip

Zynq-7000 AP SoC Low Power Techniques part 4 - Measuring ZC702 Power with a Linux Application Tech Tip

Zynq-7000 AP SoC Low Power Techniques part 4 - Measuring ZC702 Power with a Linux Application Tech Tip

Document History

Date
Version
Author
Description of Revisions
7/1/2014
0.1
E.Srikanth
Intial Draft
20/1/2014
0.2
E.Srikanth
Fixed Screenshots



Acknowledgement:

Thanks to Rob Armstrong for the core code contributions.

1. Description


The ZC702 board uses power regulators and a PMBus compliant system controller from Texas Instruments to supply core and auxiliary voltages to the Zynq 7000 APSoC.There are 5 switching regulators (PTD08D210W) and 1 linear regulator which generate different voltages required for the Zynq-7000 APSoC as well as the on-board components present on the ZC702 board. The voltage and currents supplied by these voltage regulators are continuously measured and monitored by three Texas Instruments digital power controllers (UCD9248) available on the ZC702 board. The Zynq7000 uses PMBus protocol to communicate with the power controllers over I2C bus connected to the I2C interface of the Zynq Processing system.This techtip explains the steps to develop a Linux application that reads the power values measured by the Texas Instruments digital power controllers (UCD9248) on ZC702 and converts them to real world values and display it on the ZC702 UART terminal. The application is run on the Zynq Base TRD in order to demonstrate the power consumption of the Zynq7000 AP SoC and ZC702 board.More details of the Zynq Base TRD are explained briefly in the About Zynq Base TRD section of this document.

The SD Card images of the TRD and the C source files for running this techtip can be downloaded from the following link: Zynq7000AP_SoC_ZC702_pwr_monitor_Linux.zip

Please note that the Appendix A “List of Components using the ZC702 power supplies” section of this document covers the list of components powered by different switching regulators apart from the Zynq7000 AP SoC.


1.1. ZC702 Power Distribution


The ZC702 board uses power regulators and a PMBus compliant system controller from Texas Instruments to supply core and auxiliary voltages.

The ZC702 board uses 12V Input supply to power the board. There are 5 switching regulators (PTD08D210W) and 1 linear regulator which generate different voltages required for the Zynq700 APSoC as well as the on-board components present on the ZC702/706 board.

The voltage output of these regulators are monitored and controlled by three TI power controllers (UCD9248PFC). The power distribution diagram for ZC702 board is as shown in Figure 1.


The three onboard TI power controllers are wired to the same PMBus and can be accessed via TI Semiconductor PCA9548 1-to-8 channel I2C bus multiplexer (U44) from the I2C interface of the Zynq 7000 AP SoC. The bus multiplexer can operate at speeds up to 400 kHz.

The I2C bus multiplexer switch address is at 0x74 (0b01110100) and must be addressed and configured to select the desired downstream device.

The PMBus of the PMBus controller (UCD9248) has been connected to Channel 7 of the I2C bus switch as shown below in the following figure.


The UCD9248 is compliant with the PMBus Specification 1.1. The PMBus is a serial interface specifically designed to support power management. It is based on the SMBus interface that is built on the I2C physical specification. The UCD9248 supports revision 1.1 of the PMBus standard. Wherever possible, standard PMBus commands are used to support the function of the device. These commands are defined in the UCD92xx PMBUS Command Reference, in accordance with the Compliance section of the PMBus specification.


The UCD9248 provides output voltage and current parameters in Linear format defined in Section 7.3.1 of the PMBus specification. The linear format uses a 16-bit unsigned mantissa for each parameter, along with an exponent that is shared by all the voltage or current related parameters. The exponent is reported in the bottom 5 bits of the parameter. In the UCD9248, this exponent is a read-only parameter whose value is fixed at –12. This allows setting voltage-related variables over a range from 0 to 15.9997V, with a resolution of 0.244mV.


The voltage value is calculated using the equation

Voltage = V × 2^X


Where Voltage is the parameter of interest, in volts, V is a 12-bit unsigned binary integer mantissa, and X is the signed 5-bit twos-complement binary integer exponent from VOUT_MODE register.

For current parameter, the UCD9248 supports the Linear Data Format described in section 6.1 of the PMBus specification. This linear format is a two-byte value that contains an 11-bit, twos-complement mantissa and a 5-bit, twos-complement exponent.

The relationship between the IOUT_MODE parameter and the Current value is given by the formula:


Current = Y × 2^X


Where “Current” is the real world value, Y is an 11-bit signed 2s-complement binary integer mantissa, and X is the signed 5-bit twos-complement binary integer exponent of the IOUT_MODE register.


Documentation describing PMBUS programming for the UCD9248 digital power controller is available at TI page www.ti.com/fusiondocs.Please refer to the ZC702 Evaluation board user guide and schematics for information on the connections and the part numbers used on the ZC702 board.


2. Implementation

Implementation Details
Design Type
PL
SW Type
Linux
CPUs
2 ARM Cortex-A9 666MHZ
PS Features
  • DDR3 533 MHZ
  • Cache
L1 and L2 Cache
PL Features
Xylon Video Controller, Sobel Filter
Boards/Tools
ZC702
Xilinx Tools Version
Vivado 2013.2
Files Provided
Zynq7000AP_SoC_ZC702_pwr_monitor_Linux.zip
See Appendix B for the descriptions of the files

3. Software Details:


The power monitor Linux application uses kernel IIC commands to read/write the regulators directly and convert the results into floating point in use