In the beginning the I2C bus focussed on 5 volt logic. With the I2C specification 2.0 released 1998 the possible I2C reference voltage was decreased to 2 volt.
Since the I2C bus lines are used bidirectionally, interfacing I2C devices with different voltages is not straightforward, special level-shifting devices are necessary for this purpose.
Moving down the voltage scale
Things to consider when working with low voltage I2C systems.
When I2C was first introduced the typical electrical VCC level of electronics was 5V and the initially specified speed was a maximum of 100 kHz. With these parameters it was possible to operate over a wide range of electrical parameters in terms of bus termination and capacitance.
With the definition of fast mode, fast mode plus and high speed the timing requirements became more strict and this implied the need for higher terminations, lower capacitance and minimized serial resistance.
Apart from the bus speed more and more circuitry is moving to 3.3V or even 1.8V and below logic levels. An example is NXP’s IO expander PCA9554C.
Since I2C is an open drain concept the VCC level as such is not critical for the operation as long as all components on the bus can accept the voltage on the IO pins and are able to detect the logic levels.
There is however one aspect which is often forgotten:
Cables and connectors add capacitance to the system. This causes the signals to rise and fall more slowly but it also creates additional cross talk due to capacitive coupling
. Low voltage systems tend to me more sensitive to these effects then 5V or 3.3V setups.
Even though there might be low capacitance cables on the market there is not much one can do about this except to lower the speed and to possible use a lower bus termination.
As a general rule, on low voltage I2C systems the cables should be kept as short as possible and ribbon cables are preferable.
dedicated device for bus signal enhancement.