Experiment with pull up/down resistors gives unexpected results

The wikipedia article on pull-up/down resistors provides this image:

along with some explanatory text:

... the circuit shown [in the picture] uses 5 V logic level inputs to actuate a relay. If the input is left unconnected, pull-down resistor R1 ensures that the input is pulled down to a logic low. The 7407 TTL device, an open collector buffer, simply outputs whatever it receives as input, but as an open collector device, the output is left effectively unconnected when outputting a "1". Pull-up resistor R2 thus pulls the output all the way up to 12 V when the buffer outputs a "1", providing enough voltage to turn the power MOSFET all the way on and actuate the relay.

I had enough components on-hand to build this circuit (mostly) and am seeing some unexpected results when I measure it. So I'd like to describe what I'm seeing and ask some questions about it.

First, I put a Texas Instruments SN7407N chip on a breadboard and powered it with a 5V supply. This chip names the input side of the buffer A and the output Y.

simulate this circuit – Schematic created using CircuitLab

At this point, if I connect a voltmeter to the circuit at point A (between A and GND), it reads about 1.9V. The datasheet for the 7407 indicates a low level should be 0.8V and high should be 2V. So 1.9V is somewhere in between and indeterminate. Since I haven't connected anything to A, having an indeterminate value at this point seems reasonable.

Strangely, if I measure the voltage at Y, it reads 1.4V.

Q: If a buffer's output is supposed to mirror its input, why does it not read the same 1.9V as A? Perhaps I shouldn't be concerned since A and Y aren't connected to anything, but I do like to understand what is going on when possible.

The wikipedia article says:

If the input is left unconnected, pull-down resistor R1 ensures that the input is pulled down to a logic low.

So the next thing I did is connect a 5.1kΩ pull-down resistor R1 to A like so:

simulate this circuit

Now, when I measure the voltage at A, the meter reads 1.6V (a drop of .3V).

Q: Since the pull-down resistor is supposed to create a low-level at the buffer's input, why doesn't it show something closer to 0V at A?

Measuring at Ynow shows .9V, which maintains the roughly .5V difference I saw when nothing was connected, but the voltage at Y still appears to be too high to present a true low condition.

I am aware that the buffer is an open-collector, and now I'm wondering if the reason I'm seeing unexpected results is because Y isn't connected to anything.

So I tie a pull-up resistor R2 to Y like so:

simulate this circuit

Now, when I measure the voltage at A, it still reads about 1.6V. However, the voltage at Y is now 5V! Does this represent a high logic level (since it's greater than 2V), or is there an error in the way I've hooked everything up since it is now reflecting exactly the VCC voltage?

I realize I haven't finished the circuit exactly as the one above from Wikipedia shows (i.e. no connected N-channel FET or relay), but the values I see by measurement already don't make sense.

Should I have connected the rest before writing this question? If the answer is yes, I think I'll be even more confused because that implies the load dictates the logic values (which of course it shouldn't). I thought I should be able to establish clear states simply with the use of pull-up/down resistors.

Thank you!

From a TI datasheet, this is the equivalent circuit for a 7407 buffer:

Note that the input is relatively low impedance (having a 6k pullup to Vcc through the emitter-base junction (which effectively looks like a diode) of the transistor shown). The datasheet says it requires 1.6mA to pull the input low (parameter IIL). This is a lot of current compared with the few microamps, nanoamps, or picoamps typical of CMOS or other high-impedance inputs.

Q: Since the pull-down resistor is supposed to create a low-level at the buffer's input, why doesn't it show something closer to 0V at A?

A 5.1k pulldown resistor is too large to pull the low impedance input down. With 1.6mA flowing through 5.1k, the voltage drop (calculated via Ohm's law) would be 8.16 volts. To pull the input down below 0.8 volts, you would need a 500 Ohm or smaller resistor. I would suggest trying 330 Ohms.

Q: If a buffer's output is supposed to mirror its input, why does it not read the same 1.9V as A?

The output is floating. The voltage you are measuring is just stray charge. Unless the output is actively pulled down by the 7407 or pulled up by an external circuit, it will float.

Also, it should only "mirror" its input in terms of logic state, not voltage. When the input is pulled to a logic low level (below 0.8V), the output transistor is fully switched on. When the input is at a high logic level (above 2V), the output transistor is fully switched off. At input voltages between 0.8V and 2V, the output transistor may be fully on or fully off or partially switched on.

• Great answer, thank you. I'll hook it up and try it! – par Oct 31 '14 at 0:47
• Thank you for the edit. The 330Ω resistor did the trick--it works perfectly now and I've learned something new! – par Oct 31 '14 at 1:16
• Awesome! Glad I could help. – ken Oct 31 '14 at 1:45
• Bipolar TTL input, as on your 7407, source currrent as mentioned above. Traditionally, when using them for switch inputs, we would put the switch between the input and ground, to give a very definite Low without wasting a lot of current when we wanted a High input. CMOS logic parts (74C, 74AC, etc.) do have very high impedance inputs, and may be used with either pull-up or pull-down resistors. – Peter Bennett Oct 31 '14 at 2:34
• It is kind of amazing to me how low the input impedance is of the 7407. Just for the OP's information, I don't think that sort of thing is very common out there in the world nowadays. With CMOS logic, a 5k pulldown will pretty much always be enough. – mkeith Oct 31 '14 at 4:59

The 7407 isn't an analog buffer, so the only input voltages of interest are the voltages which will guarantee that the output will be either ON or OFF.

According to the data sheet, the input voltage which will guarantee an OFF - pulled to ground - output is 0.8 volts or lower, and the voltage which will guarantee an ON - open collector output - is 2.0 volts or greater.

Looking at the data sheet schematic, you can see that the emitter of the input transistor is floating, while its base is pulled up to Vcc internally, and if you follow the chain you'll see that eventually that buffer's output will be forced into its open-collector state with the emitter open circuit/floating.

In order to turn the output OFF, then, the emitter of the first transistor must be pulled close enough to ground to reverse the chain of events through the buffer, and that's done unequivocally by pulling the emitter down to 0.8 volts or lower.

The price for doing that is 1.6 mA out of the emitter, so with that and Ohm's law in mind we can solve for the pulldown resistor like this:

$$\ R=\frac{E}{I}=\frac{0.8V}{1.6 mA}=500\Omega$$

and come to the conclusion that the reason the buffer wouldn't switch was because the value of your input pulldown was too large to allow 1.6 mA through it and consequently, the drop across it was higher than 0.8 volts.

A caveat: Without a really compelling reason to do so, older TTL inputs should never be quiescently pulled down to a logic low with a resistor and then driven high by forcing the resistor to the 2 volt threshold because of the power wasted in the pulldown in order to do that.

If an input must be held low quiescently, then it should be driven by another gate or a transistor and, if a transistor is used, the chip's logic input should be lightly pulled up to Vcc - even though it defaults to a high - in order to increase the noise immunity of the circuit when the transistor goes open-collector.

Slightly off topic, but here's a really interesting article about how the TTL buffer works which might help shed some light on this as well:

http://www3.eng.cam.ac.uk/DesignOffice/mdp/electric_web/Digital/DIGI_3.html

• Welcome to EE.SE. Link-only and off-topic answers are discouraged, but this answer can be improved by summarizing the relevant sections of the supplied link. – Null Oct 31 '14 at 16:03
• This looks relevant to me. It is a nice explanation of how TTL works. The 7407 buffer is only slightly different (1 more resistor) from the buffer analyzed in that article. Thanks for sharing! – ken Oct 31 '14 at 18:29