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