# 500 tri-state inputs

Discussion in 'Electronic Design' started by Tony, Nov 13, 2003.

1. ### TonyGuest

Greetings
I need to monitor 500 inputs "wires" that swing - to + or hiZ and am
looking for ideas that are efficient. I need to determine which of the 3
states each of the wires is in. Any input would be appreciated, no pun
intended.
Tony

2. ### Spehro PefhanyGuest

You can do the basic function with a single push-pull driver and
comparator, and a multiplexer input and a resistor per "wire" (say 1/8
of a SIP network). Drive it low, read the pin, drive it high, read the
pin and you've got 4 possibilites:

Driver
L H
0 0 Driven low
0 1 High Z
1 0 Shouldn't happen, maybe it changed during read
1 1 Driven high

The details will depend a lot on what - and + are, how high HiZ is,
how fast you want to detect it, and if there are any real-world
considerations (eg. ESD or other transient protection). Those may well
dominate the component count etc.

Best regards,
Spehro Pefhany

3. ### Luhan MonatGuest

Tony,

Looks like you could use 500/8 = 63 CD4051 analog mux chips feeding two
comparater circuits feeding a pic. Parallel the 3 'select' inputs of
all of the 4051s, then connect the Enable input of each one to an output
of 8 shift registers daisey chained on two outputs from the pic.

Shift in the first bit and run thru the 8 inputs of each 4051, then
shift the bit to enable the next one and do likewise with the rest.

chip total: 1 + 63 + 8 = 72.

4. ### TonyGuest

I like this idea. The ability to program the comparator window on the fly
would solve the wire length problem. The wires are quite long in some cases
and float a bit above ground when released. A divider connected to the wire
would keep the wire that is "broken" in the window of the comparators.
Spehro's idea was similar but requires active drivers. Definitley worth
asking you guys for ideas. I'll check back again later before I heat up the
iron. Thanks a bunch
Tony

5. ### TonyGuest

Wait a second. I just realized I misunderstood Spehro. 1 push pull driver
would reduce the number of resistors on the wires to 1 current limiting
Maybe no input resistors at all? How much abuse can a MUX chip stand?
http://www.speff.com

6. ### Spehro PefhanyGuest

Not very much at all unless you shell out for the special ones with
built-in resistors and clamping (maybe 10-30 times the cost). It would
sure knock the component count down. You might even be able to use a
single resistor to push/pull current *through* the switch instead of
500 resistors, but you'll have to allow for the fairly significant
switch resistance (maybe < 1K but some are much higher). The
unprotected switches have much less resistance (under 100 ohms) and
some VERY fast ones that are only spec'd for digital switches get down
to the 20 ohm range, IIRC.

Try Analog Devices (site is currently down) or Maxim. (www.analog.com
, www.maxim-ic.com )

Best regards,
Spehro Pefhany

7. ### GPGGuest

http://www.maxwell.com/microelectro...witches_multiplexers/81840RP/description.html
Times 4?

8. ### TonyGuest

fascinating part, No doubt. I am afraid to inquire as to its cost though
"intended for space craft" etc.. I found another part mcp506a Burr Brown
that is a 16 to 1. With a dual tier setup I would need two sets of 17 chips.
They are fairly robust and have a R on of ~1k. With the low impedance
source I think that is ok. Two set would need two 8 bit ports + the sample
pin / pins. I am thinking just read the input voltage using the onboard ADC
available on some pics. But the open circuit test needs considering. But I
am getting there,
Tony

9. ### Rodney JoseyGuest

Tony,
Are you needing to 'monitor' the 500 inputs at the same time, or can
the 500 be split into smaller chunks (say 8, or 16)? Might make the
circuitry a lot simpler - cycling through each block of 8 / 16 up to
the 500. Also - if you are checking 'long' wires, then you may need
to take into account the 'current' required to insert into each tested
wire to ensure the required - or + test voltage is received at the
monitoring end - thus the 4051 analog MUX chips may not be suitable
for handling the higher 'current' at it's inputs - just a thought.

If into smaller chunks (8 or 16) - could consider using 'back-to-back'
opto's for each input (isolation plus direction) - one led for the -,
one for the +, no led active for the HiZ. Also - consider using an
EPROM memory chip as the decoder - 16 address lines IN, 8 data lines
OUT - with each memory byte (8 bits) to reflect which state the
referenced wire (input address) is in. Could use several EPROM chips
as decoders!

Such a circuit could then be easily interfaced via either a serial
port link or parallel port link to a bog standard PC for monitoring
purposes.

IHTH.

Oz-Rod (sometime electronics tinkerer from down-under)

10. ### TonyGuest

Hey Oz
I need not monitor simultaneously. I am able to access only one end of the
wire and must determine if the other end is connected to a common - or + or
disconnected all together. I can poll each wire sep[erately and allow as
much time as needed so capacitive effects are irrelevant. Induced currents
from other wires is a concern as it limits the resistance of the divider I
would need to make the wire if broken, float in the middle between the two
rails. Since the mux's have 1k inputs and I will be using a tiered method
the input resistance is 2k then the divider then sampled by an adc . The
samples will be forwarded to a pc via the PIC's serial port. for decisions
on whether they are hi low or floating. My current dilemma is the divider
resistance. The lower the resistance the farther it will pull the inputs
from the rails and the iffier the -,~,+ decision. The higher the resistance
the weaker the ability to float a disconnected wire between the rails.
That's where I am at so far. The MUX chips I have in mind at the moment are
available at DIgi Key for \$8 and change in quantities of 25. I would scrap
it all for a better idea though. Thanks for the input.
Tony

11. ### Rodney JoseyGuest

Tony,
Are you needing to 'monitor' the 500 inputs at the same time, or can
the 500 be split into smaller chunks (say 8, or 16)? Might make the
circuitry a lot simpler - cycling through each block of 8 / 16 up to
the 500. Also - if you are checking 'long' wires, then you may need
to take into account the 'current' required to insert into each tested
wire to ensure the required - or + test voltage is received at the
monitoring end - thus the 4051 analog MUX chips may not be suitable
for handling the higher 'current' at it's inputs - just a thought.

If into smaller chunks (8 or 16) - could consider using 'back-to-back'
opto's for each input (isolation plus direction) - one led for the -,
one for the +, no led active for the HiZ. Also - consider using an
EPROM memory chip as the decoder - 16 address lines IN, 8 data lines
OUT - with each memory byte (8 bits) to reflect which state the
referenced wire (input address) is in. Could use several EPROM chips
as decoders!

Such a circuit could then be easily interfaced via either a serial
port link or parallel port link to a bog standard PC for monitoring
purposes.

IHTH.

Oz-Rod (sometime electronics tinkerer from down-under)