Jetson/TX1 Power Monitor

From eLinux.org
Jump to: navigation, search

Jetson TX1 (hardware revision 300 or greater) enables use of INA monitors for the module and Developer Kit carrier board.

Note that Developer Kits may have an earlier revision of the module, in which case only INA monitors on the carrier board are available.

Follow this how-to guide to verify minimum requirements and read voltage and current measurements from the INA monitors.

Verify L4T / JetPack Version

The L4T version can be determined with this command:

 $ head -1 /etc/nv_tegra_release

If your L4T version is not at least 24.2, please download the latest JetPack and update your Jetson TX1 to be able to use the INAs.

Verify Jetson TX1 module is revision 300 or higher

The feature to enable use of INA monitors was added starting with revision 300 of Jetson TX1. For example, SKU 699-82180-1000-300 (note the "-300") has the feature.

The module SKU can be determined with the i2cdump command:

 $ sudo i2cdump -y -r 0x14-0x26 2 0x50 b

Read the information via sysfs nodes

INA3221 monitors are readable via sysfs nodes. Where N is a channel number (0 – 2):

 rail_name_N exports rail name
 in_currentN_input exports rail current in mA
 in_voltageN_input exports rail Voltage in mV
 in_powerN_input exports rail power in mW

The INA driver may additionally present other nodes, but you must not modify any INA sysfs node value. Modifying these values could result in damage to your device.

The Jetson TX1 module has a 3-channel INA3221 monitor at I2C address 0x40. The sysfs nodes to read rail name, voltage, current & power can be found at:

 /sys/devices/platform/7000c400.i2c/i2c-1/1-0040/iio_device/

These are the rail names for I2C address 0x42:

 Channel-0: VDD_IN
     main module power input
 Channel-1: VDD_GPU
     GPU Power rail
 Channel-2: VDD_CPU
     CPU Power rail

The Jetson TX1 Development Kit carrier board has 3-channel INA3221 monitors at I2C addresses 0x42 and 0x43. The sysfs nodes to read rail name, voltage, current & power can be found at:

 /sys/devices/platform/7000c400.i2c/i2c-1/1-0042/iio_device/
 /sys/devices/platform/7000c400.i2c/i2c-1/1-0043/iio_device/

These are the rail names for I2C address 0x42:

 Channel-0: VDD_MUX
     main carrier board power input
 Channel-1: VDD_5V_IO_SYS
     main carrier board 5V supply 
 Channel-2: VDD_3V3_SYS
     main carrier board 3.3V supply

These are the rail names for I2C address 0x43:

 Channel-0: VDD_3V3_IO (name on schematics is VDD_3V3_SLP)
     carrier board 3.3V Sleep supply
 Channel-1: VDD_1V8_IO (name on schematics is VDD_1V8)
     main carrier board 1.8V supply
 Channel-2: VDD_M2_IN  (name on schematics is VDD_3V3_SYS_M2)
     3.3V supply for M.2 Key E connector

Examples

To read INA3221 @ 0x40 channel-0 rail name (i.e., VDD_IN):

 $ cat /sys/devices/platform/7000c400.i2c/i2c-1/1-0040/iio_device/rail_name_0

To read VDD_IN voltage, current & power:

 $ cat /sys/devices/platform/7000c400.i2c/i2c-1/1-0040/iio_device/in_current0_input
 $ cat /sys/devices/platform/7000c400.i2c/i2c-1/1-0040/iio_device/in_voltage0_input
 $ cat /sys/devices/platform/7000c400.i2c/i2c-1/1-0040/iio_device/in_power0_input