This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ADC121C021 holds SDA line low

Other Parts Discussed in Thread: ADC101C021, ADC081C021, ADC121C021, USB2ANY, ADC121C021EVM

When ADDR0 or ADDDR1 is floating in order to sit at one of the tri level addresses it eventually holds SDA low if continually reading the ADC register.

Reading any other register and it is stable.

If I ground the Analog input , it is stable.

If a place a low impedance divider network on the ADDR0 or 1 inputs, it eventually holds SDA low.

Only if I connect the ADDR0/1 lines to VA or ground, is it stable.

If I just connect a capacitor to the ADDR0/1 inputs, it is stable but the ADC reads all zeros!!

The ADC101C021 does the same but the ADC081C021 works!

There are no glitches on the I2C bus and the rise time is 200ns and it is running at 100KHz.

Increasing decoupling makes no difference and it is sitting on a ground plane.

The ADDress inputs seem to be related to the analog input? Is there a solution to this behaviour?

  • Hi Nigel,

    Are there any differences that you can see when comparing between how the two devices are set up? There is no difference between the I2C and ADDR sections of these two parts. They both internally on the IC use the same circuitry.

    Is there another part on the board that has a conflicting I2C address?

    Mike
  • There is no part on the bus that has a conflicting address, if there was then the ADC081C021 wouldn't work would it? This is a like for like substitution.
    Your eval board wired into my bus does the same thing. If I fit the ADC121C021 or ADC101C021, they fall over after about thirty accesses holding SDA low but if I fit the ADC081C021 it can be polled forever. This rules out my pcb layout.
    The problem only occurs if I float either address line.
    If I ground the ADC input then the ADC121C021 or ADC101C021 can be polled forever even with a floating address pin, but then this isn't much good for me!
    The additional ADC bits in the 10bit and 12 bit devices seem to produce an internal conflict with the floating address pin modes.
    Why do I not measure midrail on the floating address pins? This is different to the diagram in the datasheet.
    I tried adding just a capacitor on either address pin but that made the ADC read zero!! This shows there is a connection between address pins and ADC input.
    I should add I am using the package with the ALERT pin, though in this event I am not using it.
  • Hi Nigel,

    I got the ADC121C021EVM and connected it to a USB2ANY device. (This device is made by TI but not available as a stand alone product. It is a micro that is connected to the computer and has a I2C output and some software to run it.) With this connected to the EVM I tried all the addresses listed in the datasheet (Table 1, on page 25). All combinations of ADR0 and ADR1 floating, grounded or connected to VA as shown in the table work for multiple reads.

    You cannot measure the midrail on the address pin because this is an input. The pin is only used to pull the internal circuitry up or down.

    Putting a cap on the address pins is not a normal use condition. I don't know what affect this will have on the internal circuitry but it doesn't give us any information since it is not a normal use condition.

    Can you disconnect everything from your I2C bus except the micro and the ADC and see how it works then?

    Mike
  • Hi

    The datasheet shows the address pins looking like this:

    So this diagram isnt at all accurate then?

    Not easy to disconnect all other devices. I wreck a board to do that.

    Is it conceivable that the hysteresis spec for I2C is compromised by having floating addresses?

    ie noise on my clock rising edge is the issue even though its within the hysteresis spec?