UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Observer akguengoekhan
Observer
1,627 Views
Registered: ‎11-20-2017

I2C PmBus for Zynq UltraScale+ (ZCU102)

Dear all,

 

I want to ask you about if you have an existing i2c code to be able to access to the PmBus values for Power Management on the Zynq UltraScale+ plattform (ZCU102). I tried to modify the existing code from the tutorial provided by Xilinx for the ZC702 Board, but I got several problems. 

 

Best regards, 

6 Replies
Moderator
Moderator
1,569 Views
Registered: ‎04-12-2017

Re: I2C PmBus for Zynq UltraScale+ (ZCU102)

Hello @akguengoekhan,

 

Did you referred the ZCU102 power controller reprogramming steps ?

 

It has all the necessary steps given in it to reprogram the power controller.

Please note that on-board power controller has only 4 programming cycles. Out of which one has been used while programming the controller in factory.

Maxim Power module is necessary to program the power controller.

 

Let us know if it helps.

Thank you.

 

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
Observer akguengoekhan
Observer
1,557 Views
Registered: ‎11-20-2017

Re: I2C PmBus for Zynq UltraScale+ (ZCU102)

Dear @kvasantr,

 

I have already the maxim device and I can also monitor the voltage on the gui. My problem is that I try to implement my own code to access to the pmbus using the i2c. As mentioned in UG1182 on pages 54-58, I can't read the appropriate values from the i2c0. Can you provide me a suitable solution for this problem?

 

Thank you.

 

0 Kudos
Moderator
Moderator
1,538 Views
Registered: ‎04-12-2017

Re: I2C PmBus for Zynq UltraScale+ (ZCU102)

Hello @akguengoekhan,

 

I will suggest you to once try the Xilinx developed SCUI tool to read the onboard supplies.

scui.JPG

Please follow the below link to download:

https://www.xilinx.com/support/documentation-navigation/design-hubs/dh0048-zcu102-evaluation-kit-hub.html

 

Thank you.

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
Observer akguengoekhan
Observer
1,456 Views
Registered: ‎11-20-2017

Re: I2C PmBus for Zynq UltraScale+ (ZCU102)

Hello @kvasantr,

 

I did already this approach. It works really well with the GUI and also with the MAXIMPOWER Adapter.

 

I still try to discover the way how I can access via the I2C to the PmBus on the Zynq UltraScale+ (ZCU102). I fail always on the addresses on the board. I am really glad of some suggestions.

 

 

Thank you very much.

0 Kudos
Explorer
Explorer
1,322 Views
Registered: ‎09-19-2010

Re: I2C PmBus for Zynq UltraScale+ (ZCU102)

Hi, 

 

I have been able to access Maxim power regulators using PS I2C0 on ZCU102 and configure and control them. 

 

For configuring the regulators, you dont need neither Maxim Power Tool nor the PMBus cable. All you need is a running PetaLinux on the PS with i2ctools enabled. 

 

You should note that the regulators are connected to channel two of PCA9544 chip, so the first thing you do, is to change the channel for this chip: 

 

i2cset -y 0 0x75 0x6

 

with the above command, I am telling ti chip to switch to i2c channel 2. Now, I have all of those i2c devices in my access. 

For example issuing 

 

i2cdump -y 0 0x18 

 

gives you the register map of the power regulator responsible for producing FMC card voltage. 

 

Or for example 

 

i2cget -y 0 0x18 0x21 wp 

 

should give you the value which is set on this regulator using VOUT_COMMAND. 

 

Or to change it, a command like : 

 

i2cset -y 0 0x18 0x21 0xAABB wp 

 

(in which 0xaabb is replaced with the value you want) 

should do the job. 

 

I have an impression that with these, also one can damage the zcu102. 

Use them with caution. 

 

M.S. Sadri.

Adventurer
Adventurer
365 Views
Registered: ‎12-20-2017

Re: I2C PmBus for Zynq UltraScale+ (ZCU102)

@mamisadegh3 I really appreciate the information you posted here.

However, I'm wondering about this statement you made:

You should note that the regulators are connected to channel two of PCA9544 chip, so the first thing you do, is to change the channel for this chip: 

i2cset -y 0 0x75 0x6

with the above command, I am telling ti chip to switch to i2c channel 2. Now, I have all of those i2c devices in my access. 

I'd like to know how you know these numbers:  

  1. How do you know that 0x75 is the address of the PCA9544 chip, and 
  2. How do you know that writing a 0x6 to it changes the channel to "2" (and how do you know that you need to change its channel).

I ask because your commands do not work on my ZCU102, so I can't just do what you are doing... I'm going to have to figure this out on my own, and while ug1182 is helpful, I'm having trouble putting all the pieces together.

Here's what I get when I try your first command:

root@xilinx-zcu102-2017_3:~# i2cset -y 0 0x75 0x6
Error: Write failed

If I try buses other than 0, I get 

root@xilinx-zcu102-2017_3:~# i2cset -y 1 0x75 0x6
Error: Could not set address to 0x75: Device or resource busy

 

0 Kudos