I'm working on interfacing 2 development boards. I have control over the 1st development board. The 2nd development board is from a third party vendor. My board (board 1) has a pull up of 3.9K and the third party vendor's board (2nd board) has a pullup of 1K.
The issue I'm facing, is that when both these boards are powered up separately, they boot up and behave correctly but board 2 doesn't boot when the bus is connected. I have access to a I2C protocol analyzer. Both board 1 and board 2 have accompanying daughter boards. With board x <=> daughter x , the I2C messages and voltage levels are fine.
When I tried to connect board 1 <=> board 2, board 2 doesn't boot. I have made sure that slave clocking is disabled on board 1. The requirement is that board 1 needs to be slave, and board 2 needs to be master.
What I have tried so far : With the I2C unplugged, I powered on board 1 and checked the SDA, SCL levels. They are at 3.3V. As soon as I plug the I2C connector to board 2 (it's still powered off), SCL and SDA get pulled low.
Now I powered on board 2 using the same power supply to ensure common ground. The SDA line goes high immediately, but SCL remains low and there is no activity. Board 2 doesn't boot at all.
I have to stick to this order of power up, since the board 2 sends an I2C message only once a few seconds after power up (confirmed this using board 2 <=> daughter 2 with protocol analyzer).
I'm not sure how to proceed here.
Any help is much appreciated. Thank you!