

The HCF4067B, manufactured by STMicroelectronics, is a versatile 16-channel analog multiplexer/demultiplexer. It allows the selection of one of 16 input signals to be routed to a single output, or vice versa. This component supports both analog and digital signals, making it ideal for signal routing, data acquisition systems, and sensor multiplexing.








The HCF4067B is designed for high-performance signal switching and routing. Below are its key technical details:
The HCF4067B is housed in a 24-pin DIP package. Below is the pinout and description:
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | S0 | Address select input (Least Significant Bit - LSB) |
| 2 | S1 | Address select input |
| 3 | S2 | Address select input |
| 4 | S3 | Address select input (Most Significant Bit - MSB) |
| 5 | Z | Common output/input (multiplexer/demultiplexer shared terminal) |
| 6-21 | Y0-Y15 | Channel inputs/outputs (Y0 to Y15) |
| 22 | INH | Inhibit control (active HIGH, disables all channels when HIGH) |
| 23 | VSS | Ground (0V reference) |
| 24 | VDD | Positive supply voltage |
The HCF4067B is straightforward to use in both analog and digital circuits. Below are the steps and considerations for integrating it into your design.
Power Supply:
Address Selection:
S3 S2 S1 S0 = 0000 selects channel Y0, and 1111 selects channel Y15.Signal Routing:
Inhibit Control:
Analog Signal Handling:
The HCF4067B can be easily interfaced with an Arduino UNO for channel selection. Below is an example code snippet:
// Define address pins connected to Arduino
const int S0 = 2; // Connect S0 to Arduino pin 2
const int S1 = 3; // Connect S1 to Arduino pin 3
const int S2 = 4; // Connect S2 to Arduino pin 4
const int S3 = 5; // Connect S3 to Arduino pin 5
// Define the common I/O pin
const int Z = A0; // Connect Z to Arduino analog pin A0
void setup() {
// Set address pins as outputs
pinMode(S0, OUTPUT);
pinMode(S1, OUTPUT);
pinMode(S2, OUTPUT);
pinMode(S3, OUTPUT);
// Initialize serial communication for debugging
Serial.begin(9600);
}
void loop() {
for (int channel = 0; channel < 16; channel++) {
// Set the address pins to select the channel
digitalWrite(S0, channel & 0x01); // LSB
digitalWrite(S1, (channel >> 1) & 0x01);
digitalWrite(S2, (channel >> 2) & 0x01);
digitalWrite(S3, (channel >> 3) & 0x01);
// Read the signal from the selected channel
int signal = analogRead(Z);
// Print the channel and signal value
Serial.print("Channel ");
Serial.print(channel);
Serial.print(": ");
Serial.println(signal);
delay(500); // Wait for 500ms before switching to the next channel
}
}
No Signal on Output (Z):
Signal Distortion:
High On-Resistance:
Floating Inputs:
Q: Can the HCF4067B handle bi-directional signals?
A: Yes, the HCF4067B supports bi-directional signal routing, making it suitable for both multiplexing and demultiplexing.
Q: What is the maximum frequency the HCF4067B can handle?
A: The maximum frequency depends on the supply voltage and load conditions. For typical applications, it can handle signals up to a few MHz.
Q: Can I use the HCF4067B with 5V logic systems?
A: Yes, the HCF4067B is compatible with 5V logic systems when VDD is set to 5V.
Q: How do I disable all channels?
A: Set the INH pin HIGH to disable all channels and disconnect the Z pin from any input/output.