I²C Slow Rise Time

Updated Mar 27, 2023

Reported In


  • PXIe-6556

Issue Details

When using my PXI card for I²C communication. I can toggle the lines between zero and high-impedance without any difficulty. However, the signal edge rise time is very slow, which is causing communication to not work properly at higher sampling rates. What is causing this, and what options do I have to successfully communicate using I²C?



If the rise time you are seeing is longer than desired, you have two options: use a stronger pull-up resistor (smaller resistance) in your external circuit, or if you have a PXIe-6556 configure it to use the onboard feature Active Load as an internal strong pull up on the line.

The Active Load feature is specific to the PXIe-6556 only, and this feature acts as a load on the line that either sources or sinks current to a programmable commutating voltage that the user selects. When the line voltage is below this commutating voltage line, Active Load sources current to increase voltage. When the line voltage is above the commutating voltage line, Active Load sinks current to decrease voltage.

To use Active Load as an internal strong pull-up on the line, you will need to configure the following properties:
  • Active Load
  • Commutating Voltage
  • Current Range (Active Load can source/sink at maximum 24 mA, minimum 1.5 mA).

Additional Information

Typically, the external pull-up resistor used in an I²C setup plays an important role in determining what kinds of rise times your setup produces. There is going to be a certain amount of capacitance on the line which will need a strong current to charge that capacitance quickly and increase the slew rate in your system. If your pull-up resistor is too large you'll see a gradual curve on the front side of your signal:

The key to creating a good I²C communication line is using a pull-up resistor small enough that it pulls the communication line fast enough to get a clear signal but big enough that it doesn't use unnecessary amounts of energy: