Digital Logic – Finding a Pass-Through Demultiplexer with Latch/Register

arduinodigital-logiclatchmicrocontrollermultiplexer

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?

Best Answer

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

Related Topic