InES-HPMM/FPD-LinkIII_Raspberry_HW

Raspberry Pi I2C clock stretching

sdev1 opened this issue · 3 comments

sdev1 commented

Hello! I have a question about I2C clock stretching, that Deserializer require from I2C Master.

From DS90UB954-Q1 manual:
The Bidirectional control channel provides a mechanism to read or write I2C registers in remote devices over the FPD-Link III interface. The I2C Master located at the Deserializer must support I2C clock stretching. Accesses to serializer or remote slave devices over the Bidirectional Control Channel will result in clock stretching to allow for response time across the link. The DS90UB954-Q1 acts as an I2C slave on the local bus, forwards read and writere quests to the remote device, and returns the response from the remote device to the local I2C bus. To allow for the propagation and regeneration of the I2C transaction at the remote device, the DS90UB954-Q1 will stretch the I2C clock while waiting for the remote response.

As i know, Raspberry Pi 4 hardware (like other Pi's) does not support clock stretching by default, only if the i2c-gpio overlay is used. The question is, how does the FPD-LinkIII_Raspberry_HW properly work then?

sdev1 commented

Any answers?

In our setup with the Raspberrypi 4 and the FPD-LinkIII_Raspberry_HW we did not experience any problems with the i2c. We will make some measurements of the i2c lines as soon as possible. To check if that is because the clock stretching is not occuring or if the i2c hardware of the RaspberryPi 4 is handling the clock stretching correctly.

We will keep you posted.

sdev1 commented

Ok, thank you.