Any alternative to 4067BE multiplexer?

Status
Not open for further replies.

A. Williams

Well-known member
Long story short, the 4067BE multiplexer has proven impossible for me to use without errors. Does anyone know of a good multiplexer alternative? I need something that can take 8+ analog inputs (i'm inputting potentiometers) and read at least 2 pots at once. Does anyone have any good suggestions?

Thanks again for your time!
 
What aspect of it doesn't work for you ? I think you are making the long story too short !
 
Last edited:
At least with two 74HC4051 chips it would become possible to read two channels genuinely simultaneously, with certain caveats including needing a Teensy 3.1

Even after multiple reads per channel for averaging and such like a single ADC stepping through a list of sources to sample (whether pin by pin on the processor or through a de/multiplexer) can do it so quickly as to be as if simultaneous

I've a suspicion the trouble you are having with the 4067BE will probably transfer to the 74HC4051 easily enough if you do.

More information about how the 4067BE is failing you will get you better help imho.
 
My main issue with the 4067BE is that it reads pots moving without me even touching them. Without touching anything, pots come alive and the variables attached to them jump around seemingly randomly. I am guessing this is a power issue? I have grounded all pins that are not in use.
 
Are you picking up interference ?

How long are the wires between components ? between the pots and the 4067 ? and between it and the Teensy ?

ICs like that usually don't do random things unless they are designed to :p
 
The pots are all wired (ground and v++) in series, then connected (ground and v++) to the multiplexer and to the teensy board. None of the wires are more than 4 in.

I've never been able to use a 4067 without it reading random signals :p
 
Don't wire them in series -- connect each pot to GND and V++ (in parallel). Each middle pin (wiper) should then connect to one pin of the MUX.

Wiring in series would dramatically reduce the range of signal available, as well as make signals somewhat interdependent.
 
I've wired the 4067 in parallel to the pots.
As in there are separate ground and v++ lines for the series of pots and the multiplexer chip. Was that what you meant? That was how i wired it.
 
Each pot has 3 terminals -- two end terminals and a (usually in the middle) wiper terminal. Connect one end terminal of each pot to your Ground, connect the other end terminal of each pot to your V++ supply (3.3 V on the Teensy); Wire VSS and VDD of the mux to ground and V++ (3.3) respectively. Connect the wiper of each pot to a separate input of the mux (pins 2-9 or 16-23). Connect the output of the mux to the ADC port. Drive the 'inhibit' pin of the mux low (just connect it to ground), and drive the select pins A,B,C,D appropriately.

If Inhibit isn't low, it won't work for you. If you connect the mux to a supply higher than 3.3 V that the Teensy uses, it won't work well.
 
Yup. I have done all of those things. Including driving the inhibit pin low. I've done all of those things as of the first post in this thread. The multiplexer still reads random values occasionally.

The only thing i can think of is that, since I've been using teensy 2.0 with it, The v++ 3.3 you're suggesting is actually v++ 5. Would that raise in voltage make any difference?


Sorry, my problem with the 4067be is rather strange, it tends to just pop up occasionally every now and then. I've done all of those things and I thought I had removed the error, then I use the very same circuit again in a couple weeks and the error pops up again out of nowhere. This is about the 4th time I've had the very same problem with the 4067be chip, hence why I'm looking for an alternative.
 
If the 4067 would be so strange, nobody could use it. It was built a million times.....

If you're really sure that the wiring is ok: could it be a bug in your code ?
 
I really don't know what to say, I've been using code that no one has claimed to have any problems with before. I really appreciate the help and concern, but I'm looking only for an alternative to the 4067be at this point. My only requirement is that the multiplexer chip can read multiple inputting pots at once.
 
I really don't know what to say, I've been using code that no one has claimed to have any problems with before. I really appreciate the help and concern, but I'm looking only for an alternative to the 4067be at this point. My only requirement is that the multiplexer chip can read multiple inputting pots at once.

Please post the schematic and the code.

Edit:
- Which potentiometers are you using ? 1k? 10k? 100k?
- cheap potentiometers sometimes have contact problems. Are they ok ?
 
Last edited:
There are no problems with the mux -- it works as designed in others' applications. Random errors sound like something to do with wiring (or software ?). What types of errors do you get ? Do you have capacitors (10 nF) from each pot's wiper to gnd ? Do you have a cap at the output of the MUX ? if so, you'll have to wait ~ 1 ms between reading two pots on the same mux (cap is charged to 1 pot's value; takes some time to charge to the new pot's value).

What types of errors do you get ? readings of close to 0 or the supply ? could it be RF interference ? AC line interference ?

Don't constrain yourself to reading multiple pots at once -- 1) your ADC can't do that, and 2) pots don't change faster than the ADC can read.
 
Hello,
I have a weird undocumented problem with a HC4067M made by TI.
The 16 channels of the MUX (P2-9 & P16-23) each connect to ground via a variable resistance sensor (say 0 to 100R).
The common (P1) is pulled up via a 1K resistor, then series 10K into an OpAmp configured for non-inverting gain.
Enable (P15) and GND (P12) both connect to ground.
Vss (P24) to 5V
Data select pins all connected to MCU and always driven.
The whole circuit works fine, EXCEPT the MUX does not connect I2-3, I6-7, I10-11, I14-15.
Sounds like a problem with the S1 data line, but only when this line is HIGH.
Checked with scope all data lines, even hard wired data lines to GND and 5V manually selecting one of the problem channels, still can not get MUX to connect.
Can not find anything online to even hint at this problem... and these chips are dam easy to use... this has me stumped for now..
Any suggestions ?
 
If you are using a Teensy 3.0 or 3.1, they only put out 3.3 V on their output pins. Operating the MUX from a 5 V supply (p.s. it's VDD on P24, not VSS) probably mean that the 3.3 V isn't high enough to generate a logic '1'. Some inputs may be different than others, that's why you get some signals, not others.

1) Do you need 5 V (are you working with 5 V signals ?) -- if not, just power it from 3.3 V.
2) Which specific 4067 are you using -- while the HC4067 operates from 2-6 V, the input thresholds are 70 % of VCC (i.e. 3.3 V for 5 V) -- probably your problem. He HCT4067 has a more restricted supply range (5 V +/-), but the input thresholds are 2 V -- can be driven directly by T3.

Note the T3's ADC can't convert an input signal over 3.3 V.
 
All voltage rails are 5V, the input voltages on the data lines reach 5V and 0V checked with scope, so no problem there.
P24 Vdd IS connected to 5V, typo above.
The specific part i'm using is TI - CD74HC4067M96
Schem.jpg
Attached schematic to help.
The problem seems related to D1 input on 4067 only. All other inputs work (when D1 = 0) so I can access 50% of the channels.
If I try to tie D1 to 5V I don't get any channels switching through.
This is an interesting one. BTW I have tried two 4067 chips, but they are from the same batch though...
Going to order some from different manufactures to try.
But still any further input or suggestions will be much appreciated.
it is almost like D1 and ENABLE is back to front ??? if i did it i would understand,, but the wiring has been checked MANY times...
 
I don't see anything wrong with this schematic. Have you tried to measure the voltage on the P0..P15 nodes themselves as the channel is selected ?

However you should note that each MUX channel has a resistance of ~ 70 ohm (and varies with temperature, channel, supply V) and this may swamp your 100ohm variable resistors. If you can afford the supply current, it's better to have individual 1 k pull-up resistors on each P0-P15, and use the MUX to route the selected junction to the opamp...
 
The change in resistance through the MUX is ok for this application. We are measuring the relative change in signal. As long as there isn't much drift and the supply voltages are steady it should be ok.

I will try individual pull-ups, was hoping not to, but it may make the circuit more stable...

At the moment the enable input is floating and seems to be more reliable, when the enable input is connected to 5V it pulls a high current, which is weird.
I'm suspecting a latch-up or similar may be happening...
Will post with more info after more testing..
 
Long story short, the 4067BE multiplexer has proven impossible for me to use without errors. Does anyone know of a good multiplexer alternative? I need something that can take 8+ analog inputs (i'm inputting potentiometers) and read at least 2 pots at once. Does anyone have any good suggestions?

Not all multiplexers are created equally. I had good luck with the Analog Devices ADG706 series which multiplexes 16 in/out connections. The 707 series does the same thing with 8 pairs of differential channels. In particular, they offer a low, consistent resistance from channel to channel, making it that much easier to get consistent results.

At higher resistances (i.e. anything over 1kOhm) , I would consider the use of a differential op-amp to act as a buffer for the Teensy ADC. You might be able to get away with using just a capacitor for slow-moving signals, but I would not count on it. FWIW, Freescale advocates in section 6.6.1 to use a 0.01uF cap between any analog pin and AGND.

A differential input should help reduce noise issues. You could set up three resistors in series with two reference resistors on the ends and the resistor under investigation in the middle. A differential reading is hence possible, the two reference resistors can be characterized, etc. Then use the MUX to 'swap' resistors as needed.
 
I can assure you that these types of ICs don't behave in a non-standard way when used appropriately. Are you possibly applying the D0-D3 signals before applying the 5 V supply ? Are they driven from the same supply as the 5 V ?

Leaving Enable floating is bad -- the pins will probably drift low, but you can't be sure.

I suspect you have damaged your IC, or you have solder shorts on your board or opens in your socket if you used one.
 
You don't mention (or I missed) if you are using a plug-in proto board;

I've had enough trouble with these over the years that they're on the

list of usual suspects when a circuit acts differently than expected.

I had a brand new one, from a reputable supplier, fail spectacularly

a few years ago, the 1st time power was applied power to the rails.


Since then I test them, and regularly find boards that exhibit anamolous

behavior.

Just saying...
 
My main issue with the 4067BE is that it reads pots moving without me even touching them. Without touching anything, pots come alive and the variables attached to them jump around seemingly randomly. I am guessing this is a power issue? I have grounded all pins that are not in use.

I've had the same issues of pots sending information without being touched so i changed the "THRESHOLD" in the coding and it was all sorted. IF you need that code just holler. (FYI it wasn't with a mux so i don't know if it makes a difference. That definitely sounds like coding to me.
 
Status
Not open for further replies.
Back
Top