Page History
...
Zynq UltraScale+ MPSoC integrated I²C controller
Project XDC file should contain
Code Block |
---|
set_property PACKAGE_PIN G18 [get_ports {MAX_IO1}]
set_property PACKAGE_PIN G19 [get_ports {MAX_IO2}]
set_property PACKAGE_PIN K18 [get_ports {MAX_IO3}]
set_property PACKAGE_PIN H19 [get_ports {MAX_IO4}]
set_property IOSTANDARD LVCMOS33 [get_ports MAX_IO*]
set_property PULLUP true [get_ports {MAX_IO2}]
set_property PULLUP true [get_ports {MAX_IO4}] |
With this configuration, I²C device with address 0x20 should be visible on I²C bus
...
Address | Register | Description |
---|---|---|
0 | Input Port 0 | Power status register: Bit 0 - LP_PGOOD Bit 1 - PG_PL Bit 2 - PG_PSGT Bit 3 - PG_GT_L Bit 4 - PG_GT_R Bit 5 - PG_DDR Bit 6 - Not Used "0" Bit 7 - Not Used "0" |
1 | Input Port 1 | FAN Status register Bits 7:0 - FAN RPM/1000 (Nominal Sepa HFB44B-12A speed is 8000 RPM) |
2 | Output Port 0 | Control register 0 Bits 1:0 - LED Control (Default "01") Bit 2 - SMB Strong Pull-Up Enable (Default "1") Bit 3 - Enable DAC1 Power (Default "1") Bit 4 - Enable DAC2 Power (Default "1") Bit 5 - Enable DAC3 Power (Default "1") Bit 6 - Enable DAC4 Power (Default "1") Bit 7 - Enable FPD Power (Default "1") |
3 | Output Port 1 | Control register 1 Bit 0 - Enable LPD Power (Default "1") Bit 1 - Enable DDR Power (Default "1") Bit 2 - Enable PSGT Power (Default "1") Bit 3 - Enable GT_L Power (Default "1") Bit 4 - Enable GT_R Power (Default "1") Bit 5 - Enable FAN Power (Default "1") (Works only if 4-wire FAN is used) Bit 6 - Not used Bit 7 - Not used |
LED Control
Bits [1:0] | Mode |
---|---|
"00" | LED4 is OFF |
"01" | LED4 is Power indicator |
"10" | LED4 is User LED (connected to IO5) |
"11" | LED4 is ON |
Power Indicator
Behavior | Description |
---|---|
OFF | No power or SC failure |
1 Pulse | PSGT Power is not OK |
2 Pulses | DDR Power is not OK |
3 Pulses | LP Power is not OK |
4 Pulses | GT_L Power is not OK |
5 Pulses | GT_R Power is not OK |
6 Pulses | PL Power is not OK |
ON | No power problems detected |
I²C GPIO registers can be operated with directly, using Linux i2cset and i2cget commands
...