Selecting pull up & pull down for IC

WBahn

Joined Mar 31, 2012
30,052
The goal is to make sure that you meet the min V_IH or the max V_IL limits. If you have a pullup, you are trying to pull the input HI and have to use a small enough resistor get it above the minimum HI input voltage, commonly called "V input HI min" or "V input HI low" or something similar. In contrast, when you are trying to use a pulldown to establish a LO input, you have to make it small enough be sure that you get the output below the maximum LO input voltage. To do this, you need to determine what the maximum current that might be flowing in the resistor, usually as a result of the input current requirements of the devide you are pulling up or down, but don't forget to account for everything that is hanging on that node.

On the other hand, you can't use an arbitrarily small resistor. The device that is driving the node should have a spec giving the maximum current it can source/sink while maintaining its output voltage either below the maximum output LO voltage, V_OL max, or above the minimum output HI voltage, V_OH min. So the size has to be large enough to not violate these specs.

Note that I am assuming that you are starting off with devices from compatible logic families. If you aren't, then the same ideas apply, but you need to think a bit more carefully about which voltage limits you us. In a compatible family, the maximum LO output voltage will be comfortably less than the maximum LO input voltage. This may not be the case for mixed families. In that case, the input voltage specs are the ones you need to meet, but you need to allow smaller currents that what the driving device says it can deliver because, when it is delivering that current, the spec allows its voltage to violate the input specs of the other device. Sometime you can determine a safe current level to use based on other data on the driving devices spec sheet, and sometimes you can't. If you can't, then play it conservatively, if possible.

The other two factors at place that most people forget, is that the resistors have tolerances and so do the power supplies. There are potentially other tolerances that you need to consider as well, but these are usually the big ones. You want to determine the smallest and largest resistor you can use under worst case conditions for all of the various tolerances. Assuming you have a range of acceptable resistance values, then in theory you can pick any resistor within that range. If you are trying to minimize power consumption, then use the largest. If you are trying to maximize the speed, use the largest. If you are trying to provide the most margin against the specs, then using the geometric mean (sqrt(Rmin*Rmax)) is a good choice.
 
Top