HDROB > Hardware > I2C peripherals

General

The I2C bus is managed by the hardware I2C master in the PS (CPU). 7 bit addressing is used, so devices can use the address space from 0x00 to 0x76. Some devices treat 0x77 as a special broadcast address, hence do not use it for general purpose.

Overview table

0 1 2 3 4 5 6 7 8 9 a b c d e f
0x00
0x10 11 18 19
0x20 20
0x30
0x40 4c
0x50 50 51 52 53 54 57 5c
0x60 6f
0x70 74

Detailed information

Base board

0x54: ID EEPROM

Size: 128 Kbits = 16 Kbyte

Handled by: Linux kernel driver, compatible string “at,24c128”
Memory access: /sys/bus/i2c/devices/0-0054/eeprom

Address Length (bits) Description
0x00 32 Module serial number
0x04 32 Module product number = 0x43 0x54 0x48 0x44

0x74: Fan speed

Handled by: Custom kernel driver ltc1695, compatible string “ltc,ltc1695”
Access via the industrial I/O framework: /sys/bus/iio/devices/iio:deviceX/out_intensity0_raw

Soc board

0x57: Real time clock (part 1/2, Registers)

0x5c: ID EEPROM

0x6f: Real time clock (part 2/2, SRAM)

Handled by: Linux kernel driver, compatible string “isl,isl12022”

Aux board

0x11: PSU Peltier output current preset

Handled by: Custom kernel driver ltc1695, compatible string “ltc,ltc2606”
Access via the industrial I/O framework: /sys/bus/iio/devices/iio:deviceX/out_intensity0_raw

0x18: PSU DUT output voltage/temperature monitor

Handled by: Custom kernel driver ltc1695, compatible string “ltc,ltc2301”
Access via the industrial I/O framework: /sys/bus/iio/devices/iio:deviceX/in_voltageX_raw

0x19: PSU Peltier output current monitor

Handled by: Custom kernel driver ltc1695, compatible string “ltc,ltc2301”
Access via the industrial I/O framework: /sys/bus/iio/devices/iio:deviceX/in_voltageX_raw

0x20: PSU DUT output voltage preset

Handled by: Custom kernel driver ltc1695, compatible string “ad,ad5141”
Access via the industrial I/O framework: /sys/bus/iio/devices/iio:deviceX/out_intensity0_raw
Current DAC setting can be written to EEPROM by echo’ing 1 to /sys/bus/iio/devices/iio:deviceX/write_dac_to_eeprom. Upon power-on or device reset, this setting is restored to the DAC register.

0x52: ID EEPROM for AUXA

Size: 128 Kbits = 16 Kbyte

Handled by: Linux kernel driver, compatible string “at,24c128”
Memory access: /sys/bus/i2c/devices/0-0052/eeprom

0x53: ID EEPROM for AUXB

Size: 128 Kbits = 16 Kbyte

Handled by: Linux kernel driver, compatible string “at,24c128”
Memory access: /sys/bus/i2c/devices/0-0053/eeprom

Dut board

0x4c: Digital temperature sensor

Handled by: Custom kernel driver ltc2990, compatible string “ltc,ltc2990”
Access via the industrial I/O framework: /sys/bus/iio/devices/iio:deviceX/in_tempX_tX_raw

0x50: ID EEPROM

Size: 128 Kbits = 16 Kbyte

Handled by: Linux kernel driver, compatible string “at,24c128”
Memory access: /sys/bus/i2c/devices/0-0050/eeprom

0x51: ID EEPROM (secondary, optional)

Size: 128 Kbits = 16 Kbyte

Handled by: Linux kernel driver, compatible string “at,24c128”
Memory access: /sys/bus/i2c/devices/0-0051/eeprom

Latest revision: 10.05.2016
Up