This question already has an answer here:

I've just been dabbling for the first time into circuit design with microchips and I noticed a lot of designs put 2.2K or 4.7K resistors on some input lines. I get that this is to limit the potentially damaging current but I don't quite get the math and how it relates to a data spec sheet. For example, the chip AD9984A by Analog Devices has a SDA & SCL pin input for I2C communication; and the data sheet says it is for 3.3V CMOS and Logic High Voltage min is 1V and Logic Low Voltage Max is 0.8V w/ high Max current of -1uA and high Low current of 1uA. When I look at a PCB utilizing this board there is a 2.2K resistor to each of those inputs from the pin-through for the I2C device. Say the I2C device is 5V signals, how is the 2.2K resistor protecting the line and guaranteeing I will still fall in the spec parameters, mathematically? Thanks in advance!


marked as duplicate by Matt Young, Daniel Grillo, nidhin, pjc50, Dave Tweed Apr 13 '15 at 13:52

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • \$\begingroup\$ Can you share the schematic? I'm not sure if you're describing a special case relating to I2C level translation. \$\endgroup\$ – Justin Apr 9 '15 at 20:49
  • \$\begingroup\$ Here is the schematic in a rendered form: 1.bp.blogspot.com/-4wzO7u53XJo/U9mHtSQlMhI/AAAAAAAABww/… \$\endgroup\$ – jparanich Apr 9 '15 at 20:52
  • \$\begingroup\$ FYI, that's not a schematic \$\endgroup\$ – sbell Apr 9 '15 at 20:59
  • \$\begingroup\$ Sorry bad word choice :) \$\endgroup\$ – jparanich Apr 9 '15 at 21:01

If the resistors you see are going from the signal line to the supply rail, The resistors you see on the I2C lines are pull up resistors that are required for proper communication on an I2C bus. The I2C protocol uses something called open collector outputs to the data bus. Basically what this means is that a device sending data can only pull a line low. Because of this, both the data line and the clock line of an I2C bus requires a pull up resistor, usually around 1 to 10k.

  • \$\begingroup\$ Nice answer, welcome to EE.SE \$\endgroup\$ – KyranF Apr 9 '15 at 20:55

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