I2C Interface

The term “I2C Interface” usually refers to means for connecting an I2C bus to a PC. However, there are certainly other I2C interfaces which provide connectivity for this universally used bus to non-PC devices.

There are a number of ways to attach the I2C lines to a PC. There is even a zero cost solution available which takes advantage of the PC parallel port pins. A bit-banging driver is then used to toggle the signals to implement a simple I2C single master device. Provided that the parallel port of the used PC is tolerant enough with respect to various electrical characteristics such approach may well work for hobbyists. Since it is quite unreliable a direct (hardwareless) parallel port interface should never be applied in commercial applications.

Philips provided schematics for an adapter called Single-master, which essentially works like a hardwareless solution but compensates for some parallel port-related issues by using a driver chip between the PC port pins and the I2C SDA and SCL lines. Such interface can only be operated as single master and the maximum speed highly depends on the drivers and operating system of the PC. Since each bit is toggled individually no timing can be guarranteed under Windows or Linux with such connection. Another disadvantage is the potential danger of damaging the PC with electronic discharge or faulty connections of the external lines. This is particularly annoying if the parallel port functionality is integrated into a multifunctional non-replaceable chip as is the case with all modern PCs and notebooks.

A much more reliable, powerful and safe alternative are interfaces which provide their own I2C logic such as Connii MM 2.0 or Tracii XL 2.0. These devices are connected via USB, in addition to being able to operate in multi-master mode they provide a number of important and helpful additional features. Since they communicate with the PC software on a more efficient level than bit banging, the transfer speed is considerably higher and the load on the PC is much lower.

So what are the considerations when choosing a professional I2C interface?

  • An I2C interface should not only consist of wiring to the parallel port of a PC. This approach can cause damage to your PC or notebook and is not very reliable.
  • If you intend to use the interface with another I2C master simultaneously, you should opt for a multimaster interface in order to avoid arbitration conflicts on the bus.
  • The interface you chose should be capable of running at the same speed as your other I2C devices.
  • If you have slaves which are implemented using a microcontroller or if you know that a slave device requires clock stretching, you need to make sure that your interface supports it.
  • Choose an interface which has a user interface and programming API which you can easily use and which is supported.
  • If possible, an USB interface is preferable over a plug-in card for your PC. This reduces the cable length you need extra on the I2C bus.
  • Choose a vendor who offers reliable support and long-term market commitment. As operating systems tend to change from time to time you will need upgrades in order to be able to use such new versions.