When Do I Need to Add Pullup Resistors to Improve I2C Bus Tolerance?

Question from the Customer:

For my setup, the internal pull-ups of the Aardvark I2C/SPI Host Adapter will be disabled and 2.2k pull-ups will be connected from the SCL and SDA lines to a 2.7V voltage source. Here is a diagram:

Diagram of 2.2k ohm resistors : SCK and SDA lines to 2.7V .

My question – will this setup work? I am working on a system where signal voltage levels could vary more than normal.
Response from Technical Support:

Thanks for your question! Setting up pull-up resistors correctly can make a big improvement for signal integrity and bus tolerance. However, the Aardvark adapter is only compatible with 3.3V and 5V level signals. Operating with signal levels outside of that range would not work with the Aardvark adapter, and could possibly void the warranty should any damage occur.

To successfully communicate with 2.7V and other signal levels, we recommend using our Level Shifter Board.  If you want to simplify the setup – avoiding  adding a second device to your setup, we recommend the Promira Serial Platform, which provides an internal Level Shifter and many other capabilities.

To understand signal level performance, we will describe how and why the internal resistors work and when external pull-up resistors are needed. Then we will talk about the recommendations we provided.

Internal Pull-up Resistors and Signal Integrity

In the Aardvark adapter, there is a 2.2K internal resistor on each I2C line: SCL (clock) and SDA (data). The lines are pulled up to 3.3V, which results in approximately 1.5 mA of pull-up current. If the Aardvark adapter is connected to an I2C bus that also includes pull-up resistors, the total pull-up current could be larger.

I2C Current Specifications and Bitrates

The I2C specification allows a maximum of 3 mA pull-up current on each I2C line.

The Aardvark adapter has two internal pull-up resistors on each line: 2.2k ohm and 100k ohm resistors in parallel.

  • The 100k ohm resistor, which is extremely weak, cannot be turned off. This ensures the lines will be in the logic high state if nothing is connected on the other side of connector. This feature supports data integrity: it prevents data errors occurring from voltage level fluctuations.

Here is a good rule of thumb: if a downstream I2C device can sink more than 5 mA of
current, the protocol should operate properly. Stronger pull-up resistors and larger sink
currents may be required for fast bitrates, especially if there is a large amount of
capacitance on the bus.

Recommendations for Flexible Voltage Levels

As previously mentioned, we suggested two solutions to successfully run your setup. We will provide an overview of those options here.

Level Shifter Board

Here is a summary of the features of the Level Shifter Board:

  • Level shifting for I2C, SPI, and MDIO signals
  • Supports voltage levels of 1.2V, 1.5V, 1.8V, 2.5V, 3.0V, and 3.3V
  • Supply power to downstream devices
  • I2C speeds of 800 kHz, which supports the maximum speed of the Aardvark adapter.

When used, the Level Shifter Board is placed between the Aardvark adapter and the target device. The Level Shifter Board can also be used with the Cheetah SPI Host Adapter and the Beagle I2C/SPI Protocol Analyzer.

Promira Serial Platform for Maximum Support

To deploy level shifting without additional hardware, consider using the Promira Serial Platform licensed with the appropriate  I2C Active Level application: Level 1, or Level 2. Note:, Active Level 1 is required before installing Active Level 2.

Here are the basic features of the Promira Serial Platform:

  • Integrated level shifting, ranging from 0.9 to 5.0 volts
  • High-speed USB connectivity to the host system for high performance support
    for benchtop programming, testing, and emulation
  • Ethernet connectivity for remote control and automation
  • Provide 200 mA of power to target devices

Here is a visual summary of all the features, as well as a quick overview of other Total Phase devices for working with I2C and SPI protocols:

Promira Applications Comparison Chart

For an Introduction to using the Promira Serial Platform, take a look at this video:

We hope this answers your questions. Additional resources that you may find helpful include the following:

If you want more information, feel free to contact us with your questions, or request a demo that applies to your application.