I have two distinct set of lines where one is an input, and one is an output. I want to hook them up to a shared set of lines that will connect to shared I/O pins, with a signal to switch between the input and output lines.

Basically, I want an IC that will let me split pins on a device that act as both inputs and outputs, and have a signal line to swap between them.

I know I can accomplish this with a bunch of tri-state buffers, but I'm hoping a more concise package exists for this.

  • \$\begingroup\$ Analog muxes? But I'm not sure I understand your description correctly. \$\endgroup\$ – dim lost faith in SE Oct 29 '19 at 15:27
  • \$\begingroup\$ Analog muxes look like they might be what I'm looking for. I'm going to look more closely. \$\endgroup\$ – Tim Morris Oct 29 '19 at 15:42
  • \$\begingroup\$ Can you share a block diagram of what you want your system to look like? How could any solution be more "concise" than tri-state buffers? That solution is going to have 2 pins for each line being switched plus OE, power and ground. How would you reduce it further? \$\endgroup\$ – The Photon Oct 29 '19 at 16:24

You're probably going to want to use analog switches, for example the TS5A3159A from Texas Instruments (not a product recommendation, just an example):


It has an enable pin which connects the common side of the "switch" to either the NO pin or the NC pin. The switch is bidirectional, so it doesn't matter if the signals on the pins are inputs or outputs.

enter image description here

You can also find other analog switches with multiple circuits, such as the ADG1434 from Analog Devices:


enter image description here

  • \$\begingroup\$ I have since redesigned my circuit to avoid this mess in the first place, but this would have been exactly what I was looking for. Thank you! \$\endgroup\$ – Tim Morris Oct 30 '19 at 16:08

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.