Maker Pro
Maker Pro

Misbehaving 74HC4051s - leakage from overvoltage on unselectedchannels

A

Al Borowski

Hi all,

I'm working on what should be a simple bit of inhouse test equipment.
Basically I have 50 or so signals I want to display on a PC screen.
The signals will be either floating, or anywhere from ground to 24
volts. I'd be happy with 5% measurement error.

Please see http://alpage.ath.cx/tester.gif for part of the schematic.
Please keep in mind that this was done in a hurry :) Some resistor
values: R2+R3 are tens of ohms, R1 is 10K, and the series resistors
for the 4051's are 47K. VCC is 5V. C7 is .1uF.

My design uses a number of 74HC4051's to funnel a selected signal into
an ADC input of a microcontroller. What I had hoped would happen is,
for each signal

1) The voltage divider would be disabled by turning the FET off.

2) The microcontroller would briefly discharge C7, wait a bit, then
see if it has been charged by an external voltage. It would then
charge C7, wait a bit, and see if a signal has discharged it. The
micro can then decide if the signal can be considered floating.

3) If not floating, turn the FET back on to enable the voltage
divider, wait a bit, then read the voltage directly.


The problem is, when I put 24V into an unselected 4051, it will go
nuts and quite happily pass a few volts to the output! This completely
messes up my floating signal detection scheme. I would have _thought_
that the static protection diodes would have clamped the signal to
~5.6V and that would be the end of it. I'm not sure why I get any
output at all, considering all channels of that 4051 should be high
impedance.

I know this is a bit of a hack of a design, but I'm only going to make
2 or 3 of them tops. The problem is I already have the PCBs made up
and would rather not respin them. I also don't really want to try
adding 50 or so 4V7 zener diodes to each PCB if I can help it.

Is there a clever solution to this problem? Does anyone know any drop-
in 74HC4051 replacements that will tolerate my abuse without putting
garbage on their output line?

Thanks a ton,

Al
 
J

Jan Panteltje


You need to do the voltage division _before_ the 4051 input.
That chip is not specified for 24 V.

Maybe you can solder some extra resistors to ground from the input pins.
 
M

MooseFET

Hi all,

I'm working on what should be a simple bit of inhouse test equipment.
Basically I have 50 or so signals I want to display on a PC screen.
The signals will be either floating, or anywhere from ground to 24
volts. I'd be happy with 5% measurement error.

Please seehttp://alpage.ath.cx/tester.giffor part of the schematic.

One method:
Move the capacitor C7 to the input side of the MUX. This means you
now will have 50 capacitors. Make sure that the time constant is long
enough that the micro can zip around all of the inputs and discharge
them before they exceed VCC. You will have to change the code a bit
too.

Another method:
Run a Schottky diode from each input to VCC so that it can't turn on
the substrate diode.

Third method:
Find someone who makes a SOS version of the 4051. In the SOS part the
protection diode isn't really the EB junction of a parasitic
transistor.
 
The problem is, when I put 24V into an unselected 4051, it will go
nuts and quite happily pass a few volts to the output! This completely

Duh. Have you read the datasheet for the 4051?
The chip is not the nut here...
 
F

Fred Bartoli

Al Borowski a écrit :
Hi all,

I'm working on what should be a simple bit of inhouse test equipment.
Basically I have 50 or so signals I want to display on a PC screen.
The signals will be either floating, or anywhere from ground to 24
volts. I'd be happy with 5% measurement error.

Please see http://alpage.ath.cx/tester.gif for part of the schematic.
Please keep in mind that this was done in a hurry :) Some resistor
values: R2+R3 are tens of ohms, R1 is 10K, and the series resistors
for the 4051's are 47K. VCC is 5V. C7 is .1uF.

My design uses a number of 74HC4051's to funnel a selected signal into
an ADC input of a microcontroller. What I had hoped would happen is,
for each signal

1) The voltage divider would be disabled by turning the FET off.

2) The microcontroller would briefly discharge C7, wait a bit, then
see if it has been charged by an external voltage. It would then
charge C7, wait a bit, and see if a signal has discharged it. The
micro can then decide if the signal can be considered floating.

3) If not floating, turn the FET back on to enable the voltage
divider, wait a bit, then read the voltage directly.


The problem is, when I put 24V into an unselected 4051, it will go
nuts and quite happily pass a few volts to the output! This completely
messes up my floating signal detection scheme. I would have _thought_
that the static protection diodes would have clamped the signal to
~5.6V and that would be the end of it. I'm not sure why I get any
output at all, considering all channels of that 4051 should be high
impedance.

I know this is a bit of a hack of a design, but I'm only going to make
2 or 3 of them tops. The problem is I already have the PCBs made up
and would rather not respin them. I also don't really want to try
adding 50 or so 4V7 zener diodes to each PCB if I can help it.

Is there a clever solution to this problem? Does anyone know any drop-
in 74HC4051 replacements that will tolerate my abuse without putting
garbage on their output line?

Thanks a ton,

That's a perfect illustration of why some of us here repeatedly say to
NOT use the clamp diodes as part of the normal circuit, even if it's
tempting.

Now for your pb look for fault protected switches. Some can swallow up
to 40 volts input.
 
J

John Larkin

Hi all,

I'm working on what should be a simple bit of inhouse test equipment.
Basically I have 50 or so signals I want to display on a PC screen.
The signals will be either floating, or anywhere from ground to 24
volts. I'd be happy with 5% measurement error.

Please see http://alpage.ath.cx/tester.gif for part of the schematic.
Please keep in mind that this was done in a hurry :) Some resistor
values: R2+R3 are tens of ohms, R1 is 10K, and the series resistors
for the 4051's are 47K. VCC is 5V. C7 is .1uF.

My design uses a number of 74HC4051's to funnel a selected signal into
an ADC input of a microcontroller. What I had hoped would happen is,
for each signal

1) The voltage divider would be disabled by turning the FET off.

2) The microcontroller would briefly discharge C7, wait a bit, then
see if it has been charged by an external voltage. It would then
charge C7, wait a bit, and see if a signal has discharged it. The
micro can then decide if the signal can be considered floating.

3) If not floating, turn the FET back on to enable the voltage
divider, wait a bit, then read the voltage directly.


The problem is, when I put 24V into an unselected 4051, it will go
nuts and quite happily pass a few volts to the output! This completely
messes up my floating signal detection scheme. I would have _thought_
that the static protection diodes would have clamped the signal to
~5.6V and that would be the end of it. I'm not sure why I get any
output at all, considering all channels of that 4051 should be high
impedance.

The esd diodes do clamp the inputs to maybe 0.7 volts past the rails.
But that's still enough to turn on the series-pass fets in common-gate
mode in some architectures; most 4051's will do this.

There are mux'es that don't do this, but they mostly have a different
(DG508-type) pinout. I think somebody makes a better mux in the 4051
pinout, Maxim maybe. But the Maxim part may have latchup issues.

A schottly clamp might help, but keep in mind it's the pin voltage
that's turning on the fets, not the conduction of the internal esd
diode. A diode clamp to Vcc-0.7 is better, or your 4.7 volt zeners.
The datasheets should point this out, as it causes repeated grief.

Clamp or divide down the inputs *before* the mux.

John
 
F

Fred Bloggs

2) The microcontroller would briefly discharge C7, wait a bit, then
see if it has been charged by an external voltage. It would then
charge C7, wait a bit, and see if a signal has discharged it. The
micro can then decide if the signal can be considered floating.

Makes no sense whatosever, and especially with C7 at 0.1u....
 
I'm working on what should be a simple bit of inhouse test equipment.
Basically I have 50 or so signals I want to display on a PC screen.
The signals will be either floating, or anywhere from ground to 24
volts. I'd be happy with 5% measurement error.

If you can tolerate so much error, you could probably just put voltage
dividers on each input to map the full DC input range into the range
of an ADC (and by extension the analog muxes before it).

Then you can do your DC offset removal in software.

Yes, it's noisier this way, but probably not too noisy to meet your
loose requirement. You may also be able to take a lot of readings and
average them in the time that you would have spent charing and
discharging capacitors.
 
A

Al Borowski

Hi John and everyone, thanks for the constructive replies. The easiest
solution seems to be ditch the 4051 and drop in a heap of 74hc4851's
instead, and forget having to mod the boards.

Cheers,

Al
 
Top