1
\$\begingroup\$

I have 40 x 5V inputs that I want to read using 3V GPIO pins on the beaglebone black. I am planning on using 5 multiplexers (such as the 74HC151 or 74HC251) that will be sharing the 3 select lines.

I'm not sure what the best strategy for level shifting would be:

  1. Power the multiplexer with 3V VCC and hope it'll work with 5V inputs
  2. Throw in a level shifter / buffer before each multiplexer, something like 74LV245.
  3. Use a series resistor to limit current on each of the inputs since I just need unidirectional 5V->3V shifting (Yes, I know this won't change the voltage but perhaps it'll protect the multiplexer from the 5V signal by reducing current?)
  4. Is there a different multiplexer I should be looking at that will be tolerant of the different voltages?

I'm really hoping I can do (1). The datasheet says input voltage should be between GND and VCC. How bad will it be to power it with 3V and leave the inputs 5V?

Thanks!

\$\endgroup\$
  • \$\begingroup\$ You can't do that. The inputs should remain in the 0V~Vcc range only. You'll have to refer to the document pointed at in the datasheet to see for yourself. \$\endgroup\$ – Spehro Pefhany Jun 30 '15 at 19:59
2
\$\begingroup\$

Why not just use an open collector multiplexer powered by 5V and pulled up to 3, like the 74LS156?

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

You can use a voltage divider on each signal. For example 18K + 33K will give you about 3.2V out for 5V in.

That will slow the signals somewhat, but if you are not concerned with MHz frequencies it won't make much difference.

If you have high frequencies, by all means use a level shifter chip.

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

Another option is to use CMOS buffers/inverters of the LVC family. They can be powered at 3.3V, but their input are 5V tolerant, i.e. they will handle and recognize TTL logic levels on their inputs. Sadly they are only provided in SMT packages, so no through hole parts in that family.

For example see 74LVC04 inverter datasheet (NXP) or 74LVC244 line buffer datasheet (NXP).

An excerpt from the front page (yellow emphasis mine):

enter image description here

\$\endgroup\$
  • \$\begingroup\$ Thanks! This is basically option #2. I don't mind the SMT package but I was hoping to avoid additional ICs \$\endgroup\$ – Shlomo Zippel Jul 1 '15 at 0:36
0
\$\begingroup\$

Thanks for the answers!

I am going to end up using a single octal buffer (74LV245) to shift the 3 shared select lines and the 5 individual data lines. A single additional IC is easier and faster than 40 voltage dividers, and it'll also be better to fan out the 3 shared select lines to the 5 multiplexers when going through a buffer instead of directly from the GPIO pins.

\$\endgroup\$

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.