# Interfacing tri-state logic across 3v3/5v. Do buffers mirror all three logic states?

(This is just learning/hobby stuff...)

I have a 5v (tri-state TTL, ZX Spectrum) bus and I want to interface some non-5v tolerant 3v3 chips to it.

I think I need buffers or transceivers for the level conversion. (Is a buffer just a latching transceiver?)

Will a buffer or transceiver send all three logic states (high, low and tristate/high-Z) across the level change?

Could anyone recommend suitable ICs, either 8 or 16 bits wide, in DIP or DIY-solderable surface mount packages?

The 5V-to-3V conversion problem is pretty easy to solve. There are lots of buffer chips that can be powered with 3.3V, but have 5V tolerant inputs. There is a de facto standard for various types of logic chips called the 7400 series. Many IC manufacturer makes chips that use similar part numbering conventions (and are usually pin compatible with each other). The part number convention is: $$\color{black}{74}\color{red}{XXX}\color{green}{nnn}$$ where,
$\color{red}{XXX}$ - one, two, or three letters representing the technology used
$\color{green}{nnn}$ - numbers representing type of logic

Conveniently, wikipedia's page on the 7400 series details which technologies are 5V tolerant. So, for example, any logic chip with a part number that contains "74LV" should work for you. Use digikey or mouser (or similar) to filter on DIP packages and cost. Of course, always check the datasheet to verify voltage tolerances.

Digital buffers can not detect high impedance inputs. Stray electric fields in the local proximity to the input pin will cause the input to swing high and/or low, which will erroneously drive the buffer's output. It may even flicker between high and low rapidly, which can cause all kinds of bad things to happen downstream in your circuit. This is the same reason you can never leave the input pins of a buffer unconnected (floating).

Many buffer chips include Output Enable (OE) pins that allow you to individually turn off buffer circuits on the chip. If you know the input is going high-impedance, you can disable the buffer which effectively causes its output to go high-impedance as well.

No, typical buffers can't detect a high-Z input and put their own outputs in high-Z in response.

If there is a buffer that can do that, I am unaware of its existence.

If you want your buffer to have high-Z outputs, a separate EN (often active-low) input pin is usually used.

If a buffer is enabled for output and has a high-Z input, there is a high risk the input will be detected as switching intermittently between high and low, causing the output to "chatter". This can cause undesired power draw, EMI, or cause whatever circuit is receiving the signal to go into an undesired state. Pull-ups or pull-downs should be used with high-Z outputs to avoid this kind of behavior.