1
\$\begingroup\$

I want to connect an AVR (ATmega48PA) to an I2C bus whose pullups are connected to 2.8V which is the operating voltage for other devices on the bus. The AVR is running at 3.3V.

Since SDA and SCL pins are open drain, the AVR, if connected, isn't going to "push" 3.3V on the bus, so other devices on the bus are safe. Also, as per the electrical characteristics section of the datasheet, the threshold for logic high is 0.6*Vcc which comes to 1.98V for when Vcc is 3.3V. The I2C bus voltage is well above this threshold so I guess I can connect the AVR directly to the bus without any level shifting. Is that correct?

Datasheet Page 383, Table 33-2 : Common DC Characteristics

\$\endgroup\$
  • \$\begingroup\$ might want to add a few clamp diodes do protect the 2.8V devices just in case \$\endgroup\$ – Wesley Lee Aug 8 '16 at 18:24
1
\$\begingroup\$

Open drain outputs from a 3.3V system will share the lines with other devices on party lines pulled up to 2.8V. If you pull things down, the voltage will be near ground. That's okay for everyone. If you don't pull down, then the voltage of the line will be close to 2.8V. As you point out, it's the logic high input question of about 2V for your 3.3V system that makes you wonder.

I think it should work fine. If your device pin is acting as an input, and some other device is acting as an output using an open-drain, as well, then if they are outputting a '1' they will be in a high impedance state leaving the entire party line pulled to 2.8V by the pull-up. So long as all of the combined leakage currents of all the devices don't collectively cause that pull-up resistor to drop more than a half-volt or so, you should be fine. And it is hard to imagine that happening. Of course, I don't know the value of the pull-up, how many devices are attached, or what their leakages might be. So... hard to be absolutely sure. But I think it's okay.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.