Many of us have been designing electronics for years and haven’t really considered pull up and down resistor values. We just use the same old values like 10K. With some new silicon the leakage currents are higher than we have been used too. This means the pull resistors might not being doing the task we require. When there is a need to reduce power consumption, again these values need to be looked at in greater detail. XJTAG often finds resistors on boards that don’t actually perform the task intended.

Back to basics

In most case a range of values will work fine for pull resistors, which is why we don’t give them much consideration. There are two limits for the range of values that will work correctly.

The lower limit on resistance can be calculated as follows:

  • Vsupply = 1.8 V
  • VOL = 0.4 V the worst case ( highest output voltage when an output is driven low)
  • IOL = 12 mA the worst case drive current for the worst case driver on the net

Using V = IR ( R= V/I)

  • R= (1.8 – 0.4) / 0.012 = 116 Ω

So a pull up resistor which is stronger (i.e. lower value ) than 116 Ω many not work reliably.

The upper limit on resistance can be calculated as follows:

  • Vsupply = 1.8 V
  • VIH = 1.17 V ( lowest VIH off all the devices on the net)
  • Ileakage = 20 μA Sum of all the worst case leakage currents

and therefore

  • R= (1.8 – 1.17) / 0.000020 = 31.5 kΩ

So a pull up resistor which is weaker (i.e. greater value) than 31.5 kΩ many not work reliably.

So what should I use?

Most datasheets specify the values across temperature, voltage and process. So the above limits should also work across temperature, voltage and process. You may however want to adjust the limits slightly to take into account resistor tolerances. So where in the above range should you choose?

For lowest power, choose 31.5 kΩ. Apart from that it doesn’t really matter. If the last milliWatt isn’t important it can be useful to choose a value that is used elsewhere on the board. E.g. in the PSU the feedback resistor might be 27 kΩ so use that instead of the standard 10 kΩ that you might have chosen.

NB. One last thing: some internal pull resistors are very strong, especially on the Spartan3 devices. If you are trying to overcome them the effective leakage current is much stronger – in the mA range is possible.