Electronic – Deciphering Mux/Demux/Switch Nomenclature: AxB:C

multiplexerswitchesterminology

I'm looking through Digikey's Interface – Switches, Multiplexers, Demultiplexers section (and, thanks to W5VO, the Logic – Signal Switches, Multiplexers, Decoders section as well), and I'm having trouble deciphering what circuit/topology I need.

I've got a processor with a 32-bit coprocessor interface, and I'd like to interface it with a parallel Flash or RAM chip. Ideally, I would have both, and could swap between the two in software. I imagined (wrongly, it appears) that this would be a fairly common need, and that I could buy a pair of ICs that would each break out 16 inputs into 2 banks of 16 outputs, with power, ground, a single channel select pin, maybe an enable/high impedance pin. This would ideally come in a 54-pin TSSOP or 64-pin QFP or something of that size. A 32-switch chip would also work, but I imagine that two switches would make routing the a bit easier. The interface would be digital (I don't really need an analog switch), and I'd like to keep up with the 150MHz maximum speed grade of my processor (but will settle for 72MHz or so of actual performance). I am confident that I don't need some of the $200+ crosspoint switches!

I imagined that this would be a simple task, but it seems that my idea of what AxB:C should mean is different from Digikey's idea. I thought that the options would include 1×16:32 or 16×1:2, but (1) these options are not available at reasonable prices (I don't see why this device should cost $70 or $234!), and the other options (like 8×2:1, which seems popular) are designed for analog switching of Ethernet signals.

  1. Where can I learn about the mux nomenclature? (An answer on this site would be ideal 🙂 Also, where can I learn about the various functions listed, like AV/crosspoint/Ethernet/USB?
  2. What topology or function should I use for to do this task (digital, ~100MHz, 32 or 16 lines)?
  3. If all else fails, how can I build a switch out of discrete components or transistor arrays?

Best Answer

There's a few questions in there, so I'll address them one by one.

What does A x B : C Mean?

Read this as A instances of a B number of inputs to C number of outputs. What you are looking for, if I understand correctly, is a 16x2:1 or a 32x2:1 chip. If C is more than 1, then your chip is significantly more complicated - you would no longer be selecting one input and connecting it to the output. Which leads well into the next sub-question -

Why are there $200+ chips for this simple function?

The specific part you linked is a 1x32:16 wide-bandwidth, DC coupled, buffered, video MUX, which can select any of it's 32 video inputs and output them simultaneously on it's 16 buffered outputs, with a gain of 1-2x. You could sorta think of it as a 16x32:1 with a lot of features. It's got quite a bit more inside than just CMOS switches. It isn't really designed for your function, which is...

How do I connect two memories to a master CPU

The most common method for hooking up multiple memory chips to a driver/controller/cpu is to use a tri-state bus. The address lines drive both chips, and the data bus is shared between all chips. Both chips should have a pin like "output enable", which can be controlled by the CPU. I found this article discussing memory buses at a rudimentary level - it has descriptive images. See Figure 8 for the gist of what I think you want. It is the simplest way of hooking things up, and the way I would recommend if the chips support it.

How would I make one?

Well, I think you were on the right track. CPU buses can be bi-directional, so intercepting the right output enable signal may be risky. The part you were probably looking for was a digital switch, something like this 16x2:1 FET mux. This is the cheapest one at $1.75 each. Wide bidirectional buses are best handled by ICs.

Note

I would check with the maker of your CPU to look for app notes and reference designs regarding memory buses. That will be the easiest way to see if you're on track.