1
\$\begingroup\$

I'm currently working on an Arduino project with lots of digital IO (21 outputs, 8 inputs) and no analog IO. This is more than the number of digital pins on an Arduino Nano, so I started looking at muxes to expand the number of output pins. I quickly came across the HC4067 with 16 outputs which seemed perfect, except for the fact that it (and most muxes) are non-latching, ie only one output can be active at a time. If I was controlling an array of lights that might work, but alas I'm controlling a variety of things that need to be constantly on.

Thus, I began looking for a mux with a register or latch, or just a transparent 16-bit register/latch I could plop down after the mux. Most that I've found seem to not work well for me because of my requirements:

  • Hand solderable by someone (me) with rather basic soldering skills
  • Not an absurd number of pins. Goes hand in hand with the previous. I've seen a few transparent latches that I think may work, but they had 48 pins for an 8 bit latch.
  • I must be able to toggle an arbitrary pin without affecting the others (ie, Not a shift register, unless I'm misunderstanding how shift registers work)
  • Transparent when selected/No clock required - most outputs will change on human scales, but I did have to stick a 2400 baud software serial RX on this mux, and I'm not sure how to add a clock pin into SoftwareSerial.
  • Selected pins hold the last values. ie: I could set all outputs on at a time, or half, etc (manual latching is fine)
  • Digital 5V logic compatible, current on the order of an Arduino (20-40mA) (Output-only is fine)

So is there either a 16-output demux with a latch/register (preferred), or a latch that I can plop down after the mux above that meet the above requirements? I'm fine with two 8 bit ones, though I'd prefer avoiding smaller ones.

Second, I think most of my failure googling these bits stems from my lack of knowledge of the proper terminology and if I want latches, registers, buffers, multiplexer, transparent, inverting, etc. What would be the proper names for what I'm looking for?

\$\endgroup\$
2
  • \$\begingroup\$ a mux has a number of inputs and only one output ... when you refer to multiple outputs, you are talking about a de-multiplexer ( demux ) ... only one output active at a time is the nature of a demux ... what you are looking for is an addressable latch \$\endgroup\$
    – jsotola
    Jan 15 at 6:20
  • \$\begingroup\$ The 74xx259 is an addressable latch and can be got with open drain mosfet outputs with the tpic6b259. Available in thru hole and SMT. Also note you could use devices like the 74xx573/4 which are 8 bit and you manage the bit addressability in code. \$\endgroup\$
    – Kartman
    Jan 15 at 6:42

1 Answer 1

2
\$\begingroup\$

Sounds like "addressable latch", 74LS259 is one example (PDF link)

\$\endgroup\$
2
  • \$\begingroup\$ Ah, addressable latches are exactly what I was looking for! Given I'm driving this from an Arduino Nano (ATmega328), is the LS variant the "best" variant? I'm very new to picking parts, and this post seems to suggest that LS is the worst choice: avrfreaks.net/comment/913649#comment-913649 Is that true? Would I be better served with an HC variant? \$\endgroup\$
    – byteit101
    Jan 15 at 22:16
  • \$\begingroup\$ As a beginner you might want to learn to read data sheets. Look at output voltages and currents of your Arduino, and input voltages and currents of the external part. Each of these values is given as maximum or minimum, respectively. For example, an input current is given as a maximum, which should be less than the minimum output current of the controlling output. -- Concretely, I'd say you can use the LS type, if the voltages match, but you can also use the HCT type (with LS compatible voltages) or the HC type. I'd use the part that I can get at all or by the best price. \$\endgroup\$ Jan 16 at 9:24

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.