Those who work with microcontrollers probably know about data buses. Only one device(memory, peripherals) connected to the bus can work at one moment. Only one unit can directly connect to the bus beside the CPU, which usually is a host. So decoding circuit determines the desired unit and connects it to the bus. Other devices are effectively disconnected so that they wouldn’t have any effect on bus operations. Tri-state buffers carry them out.
Tristate buffers allow isolating circuits from the data bus. This means that circuit is switched to a high impedance state. Usually, we know dual state circuits with two logical levels, “0” and “1”. But there is also widely used tristate logic, where it can switch I/O to a high impedance state.
Tristate logic can simply be made by two transistors:
Using such a circuit we can have the following output results according to input variations:
Q1 Q2 Output
OFF OFF High Impedance
OFF ON 0V
ON OFF +5V
Simply speaking when the output pin is in a high impedance state it is physically disconnected from the circuit.