I2C SPI USB CAN eSPI Cable Testing View All Quick Start Guides User Manuals Software Downloads Knowledge Base Videos Case Studies App Notes White Papers Sales Support How to Order
Products Blog Sales Support Contact Search
Why Do I2C Signals Remain Low after Re-enabling Target Power?
Published: 2025-09-10
Rena Ayeras

Image by Geralt

Question from the Customer:

I am using the Aardvark I2C/SPI Host Adapter with Aardvark Software API as a master device on the I2C interface. I am observing that the I2C signals remain low, which seems related to the py_aa_target_power() function.

  • When I call py_aa_target_power(AA_TARGET_POWER_NONE), the I2C lines behave as expected and go low.
  • However, when I subsequently call py_aa_target_power(AA_TARGET_POWER_BOTH) after a specified power-down period, the lines only remain high for a very short duration, such as a few microseconds.

My questions - why are the lines not staying high as expected after re-enabling power? Is there something I might be missing in the configuration or the timing?

For my setup, I am using the Level Shifter Board to scale the voltage from 5V down to 3.3V. In my implementation, I invoke the py_aa_target_power() function after configuring the I2C interface, following the examples provided in the Python API documentation. The VCC is connected to Pin 4, which is specified for powering the I2C bus.

I also use AA_TARGET_POWER_QUERY to check if the current state is as expected. After pins 4 and 6 are both activated, the status reports as correct, but when measuring their voltages directly, it appears that the pins are not powered.

Response from Technical Support:

Thank you for your questions! This behavior appears to be related to hardware, not software, specifically the internal pull-up resistors of the Aardvark adapter.

How Pull-Up Resistors Affect I2C Signals

If the lines are not remaining high as expected after re-enabling power, this is most likely related to the behavior of the internal pull-up resistors within the Aardvark adapter.

  • The Aardvark adapter includes two internal pull-up resistors on the I2C lines: a strong 2.2kΩ resistor and a weak 100kΩ resistor.

  • The 2.2kΩ resistor can be enabled or disabled via software, but the 100kΩ pull-ups are always active in I2C mode and cannot be disabled. These are intended to keep lines high when not driven low.
  • If external circuits are present or if the bus is heavily loaded (high capacitance), the weak 100kΩ pull-ups may not be strong enough to keep the lines high, causing the lines to stay low or float after power is cycled.

Here is a simple overview of disabling pull-up resistors with API commands as well as Control Center Serial Software:

For more details about the roles of pull-up resistors, refer to this article:

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.