Can I2C repeaters be used for I3C?

Not directly, for a couple of reasons:

  1. The I3C Bus works with push-pull modes (in addition to the open drain for some transfers), and
  2. Much higher speeds. Most such devices are quite limited in speed, because of the lag effect of changing states on SCL and SDA due to both series-resistance and assumptions about Open-Drain.

Long wire approaches are being evaluated for a future version of the I3C specification.

What is the maximum capacitance load allowed on the I3C Bus?

The I3C specification lists the maximum per-Device capacitance on SCL and SDA, but the goal is that most or all Devices will be well below that. As with any Bus, capacitance alone is not sufficient to determine maximum frequency on the I3C Bus. It is important to consider maximum propagation length, effect of stubs, internal clock-to-data (tSCO) of the Targets, as well as capacitive load.

What is the maximum wire length for I3C communication?

The maximum wire length would be a function of speed, as all the reflections and Bus turnaround must complete within one cycle. Larger distances can be achieved at the lower speeds than at the higher ones. For example, at 1 meter (between Controller and Target), the maximum effective speed is around 6 MHz for read, to allow for clock propagation time to Target and SDA return time to Controller.

Can I3C Devices cause the communication Bus to hang?

Unlike I²C, there is no natural way to hang the I3C Bus. In I²C, clock stretching (where the Target holds the clock low, stopping it from operating) often causes serious problems with no fix: there’s simply no way to get the Target’s attention if it has hung the Bus. By contrast, in I3C only the Controller drives the clock, and so the Target performs all actions on SDA relative to that clock, thereby eliminating the normal causes of such hangs.

Will the I2C devices respond to I3C commands?

No. The I3C CCCs are always preceded by the I3C Broadcast Address, 7’h7E. Since the I2C specification reserves address 7’h7E, no Legacy I2C Target will match the I3C Broadcast Address, and thus no Legacy I2C Target would respond to the I3C commands. Likewise, the Dynamic Addresses assigned to I3C Devices would not overlap the I2C static addresses, so no I2C device would respond to any I3C address – even if it could see it.