How to calculate the required value for a pull-up resistor

pullupresistors

There are many tutorials that use a pull-up or pull-down resistor in conjunction with a switch to avoid a floating ground, e.g.

http://www.arduino.cc/en/Tutorial/button

Many of these projects use a 10K resistor, merely remarking that it is a good value.

Given a a particular circuit, how do I determine the appropriate value for a pull-down resistor? Can it be calculated, or is it best determined by experimentation?

Best Answer

Quick Answer: Experience and experimentation is how you figure out the proper pullup/pulldown value.

Long Answer: The pullup/down resistor is the R in an RC timing circuit. The speed that your signal will transition will depend on R (your resistor) and C (the capacitance of that signal). Often times C is hard to know exactly because it depends on many factors, including how that trace is routed on the PCB. Since you don't know C, you cannot figure out what R should be. That's where experience and experimentation come in.

Here are some rules of thumb when guessing at a good pullup/down resistor value:

  • For most things, 3.3k to 10k ohms works just fine.
  • For power sensitive circuits, use a higher value. 50k or even 100k ohms can work for many applications (but not all).
  • For speed sensitive circuits, use a lower value. 1k ohms is quite common, while values as low as 200 ohms are not unheard of.
  • Sometimes, like with I2C, the "standard" specifies a specific value to use. Other times the chips application notes might recommend a value.