

The 74LVC138AD is a low-voltage, high-speed 3-to-8 line decoder/demultiplexer. It takes three binary inputs (A, B, and C) and activates one of the eight outputs (Y0 to Y7) based on the input combination. The device also features three enable inputs (G1, G2A, and G2B), which allow for flexible control of the decoding operation. The outputs are active low, meaning the selected output will be pulled low while the others remain high.
This component is widely used in digital circuits for:








The 74LVC138AD is designed for high-speed operation and low power consumption. Below are its key technical details:
| Parameter | Value |
|---|---|
| Supply Voltage (Vcc) | 1.65 V to 3.6 V |
| Input Voltage Range | 0 V to 5.5 V |
| Output Voltage Range | 0 V to Vcc |
| Maximum Output Current | ±24 mA |
| Propagation Delay | 4.5 ns (typical at 3.3 V) |
| Operating Temperature | -40°C to +125°C |
| Package Type | SOIC-16 (Surface Mount) |
The 74LVC138AD comes in a 16-pin SOIC package. The pinout and descriptions are as follows:
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | G1 | Enable input (active high) |
| 2 | A | Address input A (LSB) |
| 3 | B | Address input B |
| 4 | C | Address input C (MSB) |
| 5 | G2A | Enable input (active low) |
| 6 | G2B | Enable input (active low) |
| 7 | Y7 | Output 7 (active low) |
| 8 | GND | Ground |
| 9 | Y6 | Output 6 (active low) |
| 10 | Y5 | Output 5 (active low) |
| 11 | Y4 | Output 4 (active low) |
| 12 | Y3 | Output 3 (active low) |
| 13 | Y2 | Output 2 (active low) |
| 14 | Y1 | Output 1 (active low) |
| 15 | Y0 | Output 0 (active low) |
| 16 | Vcc | Positive supply voltage |
Below is an example of how to connect the 74LVC138AD to an Arduino UNO for address decoding:
// Arduino UNO example for controlling the 74LVC138AD
// Connect the 74LVC138AD pins as follows:
// A -> Pin 2, B -> Pin 3, C -> Pin 4
// G1 -> Pin 5 (HIGH), G2A -> GND, G2B -> GND
// Y0 to Y7 can be connected to LEDs or other devices
const int pinA = 2; // Address input A
const int pinB = 3; // Address input B
const int pinC = 4; // Address input C
void setup() {
// Set address pins as outputs
pinMode(pinA, OUTPUT);
pinMode(pinB, OUTPUT);
pinMode(pinC, OUTPUT);
}
void loop() {
// Example: Cycle through all outputs (Y0 to Y7)
for (int i = 0; i < 8; i++) {
digitalWrite(pinA, i & 0x01); // Set LSB (A)
digitalWrite(pinB, (i >> 1) & 0x01); // Set middle bit (B)
digitalWrite(pinC, (i >> 2) & 0x01); // Set MSB (C)
delay(500); // Wait 500 ms before changing output
}
}
No Output Activation:
Incorrect Output Activation:
Device Overheating:
Q: Can the 74LVC138AD operate at 5 V?
A: No, the maximum supply voltage for the 74LVC138AD is 3.6 V. Operating it at 5 V may damage the device.
Q: What happens if multiple enable inputs are active simultaneously?
A: The decoder will only function correctly if G1 is high and both G2A and G2B are low. Any other combination will disable the outputs.
Q: Can I use the 74LVC138AD for driving LEDs directly?
A: Yes, but ensure that the current through each output does not exceed ±24 mA. Use current-limiting resistors for the LEDs.