I am trying to read data from / write data to a Xilinx Zedboard (FPGA platform) using an external microcontroller via the I2C bus. The schematic for this would currently look as follows:
As you can see in the schematic, the microcontroller uses 1k pull-up resistors for the I2C bus.
I noticed that after the first transaction, the microcontroller will not read/write anymore data.
I cannot debug this on the microcontroller because I cannot make any changes to the microcontroller software. The microcontroller has been verified to work correctly with other I2C peripherals.
When I look at an oscilloscope trace, I can see the Zedboard does not pull down the SDA line to the logic low level of the microcontroller while sending an ACKnowledge. I think this might be the reason why the transaction fails. See the capture below, where you can see the SDA low of the Zedboard is about 600 mV above the SDA low of the microcontroller.
I think the reason for this might be because the pull-up resistors are quite low. However, I cannot make any changes to the microcontroller board, and therefore I cannot replace them for higher resistances.
Do you have any idea what might be the problem here and how I can solve this?
Thank you and regards.