1
\$\begingroup\$

I have a simple circuit with a 7447 chip driving a 7-segment LED. The 7447 input pins A=1, B=2, C=4, D=8 apparently float high as logic 1. Using momentary pushbutton switches, I short various combinations of the pins to ground, and I get the expected digit on the display-- e.g. connecting D to ground shows the digit 7, connecting B and C to ground shows 9, etc.

Now I'm trying to change the circuit so the pushbuttons bring the input pins high instead of low, so I tried putting 10k pull-down resistors on the inputs. However, if I short any of the inputs to ground via 10K resistors, nothing happens-- I no longer get any digits displayed.

So I'm wondering 1) why don't the pull-down resistors work, and 2) what's the simplest way to reverse the operation of the pushbuttons. I'd prefer not to have to deal with things like inverting buffers or changing the mechanics of the pushbuttons, making them normally closed instead of open, etc.

TIA

Carsten

\$\endgroup\$
2
\$\begingroup\$

As others have pointed out, your pull-down resistors don't work because they aren't pulling down hard enough. So what value do they need to be to do the job properly?

The SN7447 datasheet tells us that to be recognized as logic 0 a data input must be pulled down to 0.8V or less, and the current you have to sink could be as high as 1.6mA. Applying Ohm's Law, we get a maximum acceptable pull-down resistance of 0.8V / 0.0016A = 500 Ohms.

The only problem with this method is that when you switch the resistor to +5V it will draw 5V / 500 Ohms = 10mA, so when all 4 buttons are operated the circuit will consume 40mA more than it needs to. If you don't mind this extra current draw then pull-down resistors are fine.

\$\endgroup\$
1
\$\begingroup\$

The 7447 (and other bipolar TTL parts) inputs source current, so appear as High when not connected.

You need to sink about 1.6 mA to ground to make the input Low.

\$\endgroup\$
0
\$\begingroup\$

7400 series TTL logic is supposed to be used so that all signals are resting at 1 and only pulled low when active. These chips' pull-highs are quite strong, 10K is not enough to pull the input low. Pulling the inputs low causes quite a lot of power consumption and you need to pull them quite strongly before they are considered to be low. Please consult the datasheet. If you want to reverse the operation, you should consider using CMOS versions of the logic chips, such as 74HC47. They can be used the way you like.

\$\endgroup\$
  • \$\begingroup\$ Thanks Pkp. I just bought a bunch of TTL 74xx chips, so would like to work with those for a while before changing to CMOS. I guess the next best choice is to use a 7406 inverter. Thanks again. \$\endgroup\$ – Carsten1 Oct 30 '16 at 18:59
  • \$\begingroup\$ You should use a 7404 (assuming you want to stick with 1960's- era logic). The 7406 is open collector with a high voltage rating. If you insist on the latter, you should add a 1K resistor to +5 for it to be completely kosher. \$\endgroup\$ – Spehro Pefhany Oct 30 '16 at 19:37
  • \$\begingroup\$ Although, as this question shows, we don't need a pull-up if the OC inverters are driving TTL inputs and the rise time is no concern. For a simple 7 segment display showing a signal created from bouncy push buttons, rise time of the inverter output should be no concern, so the 7406 is fine to, even if not as kosher. \$\endgroup\$ – Michael Karcher Oct 31 '16 at 13:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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