Page 126 - The Art of Designing Embedded Systems
P. 126
Hardware Musings 1 13
Be conservative in your designs, especially when a conservative ap-
proach has no downside. If any input must be zero all of the time, simply
tie it to ground and never again worry about it. I think folks are so used to
adding pull-ups all over their boards that they design in pull-downs
through the force of habit.
Once in a while the logic may indeed need a pull-down to deal with
unusual YO bits. Try to come up with a better design.
(The only exception is when you plan to use automatic test equip-
ment to diagnose board faults. ATE gear injects signals into each node, so
you’ll often need to use a resistor pull-down in place of a ground. Use a
small-really small, like 220 ohms-value.)
Though pull-downs are always problematic, well-designed boards
use plenty of pull-up resistors-some to bias unused inputs, others to deal
with signals and busses that tristate, and some to put switches and other in-
puts into known one states.
The biggest problem with pull-ups is using values that are too low. A
lOOk pull-up will in fact bias that CMOS gate properly, but creates a cir-
cuit with a terribly high impedance. Why not change to 10k? You buy an
order of magnitude improvement in impedance and noise immunity, yet
typically use no additional current since the gate requires only microamps
of bias.
Vcc from a decent power supply is essentially a low-impedance con-
nection to ground. Connect a lOOk pull-up to a CMOS gate and the input is
lOOk away from ground, power, and everything else-you can overcome a
lOOk resistance by touching the net with a finger. A 10k resistor will over-
power any sort of leakage created by fingers, humidity, and other effects.
Besides, that low-impedance connection will maintain a proper state
no matter what tools you use. In the case of NMI from the example above,
the tools weakly pulled NMI high so they could run standalone (without
the target); the 47k resistor was too high a value to overcome this slight
amount of bias.
If you are pulling up a signal from off-board, by all means use a very
low value of resistance. The pull-up can act as a termination as well as a
provider of a logic one, but the characteristic impedance of any cable is
usually on the order of hundreds of ohms. A lOOk pull-up is just too high
to provide any sort of termination, leaving the input subject to cross cou-
pling and noise from other sources. A lk resistor will help eliminate tran-
sients and crosstalk.
Remember that you may not have a good idea what the capacitance
of the wiring and other connections will be. A strong pull-up will reduce
capacitive time constant effects.

