Hello fellow Arduino users!
I have a small to modest (but more to the small side) knowledge of electronics, however this time I prefer to check with you before doing any wrongdoing because there is some expensive boards involved
I have a Xilinx UltraScale ZCU104 development board that has two IRPS5401 power management units. My intention is to connect to the PMBus of these chips in order to perform power measurement for my research.
Xilinx and Infineon suggest that I should use a proprietary USB005 dongle to perform these measurements. However, I live in Brazil and I don't know if they'd ship this dongle here, how long it'd take and how much it would cost. Considering our much devaluated currency + very possible import taxes, it is unfortunately out of my budget right now.
The idea that I came up was to use an Arduino Nano to communicate to the PMBus. Apparently someone already had a similar idea ([Solved] I2C transmission using PMBUS on an Avnet Ultrascale developpement board), but my question is more related to the connection.
From what I understood from the ZCU104 schematics, the PMBus lines of the IRPS5401 chips are already connected to pullup resistors, according to the figures below (sorry for possibly bad quality, I can only upload one media file to this post):
I am still a bit afraid of connecting something wrong and frying up this 1000+ euros board. Since the board already supplies the pullup voltage to the I2C bus (which I believe to be 5V), my idea is to deactivate the internal pullups of the atmega328p and let all the bus power come from the ZCU104. From my simple electronics knowledge, there seems to be little source of problems since both Arduino Nano (powered by USB) and the ZCU104 board (powered by a separate power supply) works at a similar voltage, at least in the I2C bus level.
I don´t know what is the starting condition of the arduino nano when I power it up, so my idea was to power the arduino first, set it up to be HI-Z and then perform the connections. More specifically:
- Start with everything disconnected and unpowered
- Power up the ZCU104 board
- Power up the arduino nano (powered through USB connection)
- Set PUD bit to disable all pullup resistors:
MCUCR |= (1 << PUD);
- Set the TWI pins to tri-state:
DDRC &= ~((1 << DDC4) | (1 << DDC5)); PORTC &= ~((1 << PORTC4) | (1 << PORTC5));
- Prepare TWI to work at 100kHz
TWSR &= ~((1 << TWPS1) | (1 << TWPS0)); TWBR = 0x48;
- Connect the arduino nano to the three-pin header of the ZCU104 board
- Enable TWI and start communicating
TWCR = (1 << TWEN);
My rationale here is that by leaving the TWI pins in tri-state mode, they would be virtually unconnected and offer no harm to the ZCU104 when connecting both. Is my rationale correct? I am afraid of connecting both boards prior to powerup because between the nano power up and the start of my main() function, I don't know what is the state of the TWI pins. Might be overreaction of my part to think on all of that, but I am really concerned on not trying to fry the ZCU104 (the Nano I don't care much though :P)
I appreciate any help. Sorry if this seems too basic, but thank you once again!
Edit: Fig. 2 is showing "PMIC2_VCC" and Fig. 3 is showing "PMIC1_VCC". This is because I took a screenshot from the wrong IRPS5401 to show the voltage generation in Fig. 3. Nonetheless, the PMIC2_VCC circuitry is exactly the same (i.e. replace the word PMIC1_VCC by PMIC2_VCC)