A multiplexer (mux) is an electronic switch that routes one of several input signals to a single output line based on the binary state of its select pins. In practical circuit design, a mux fundamentally changes your hardware architecture by allowing a single microcontroller ADC or GPIO pin to sequentially read dozens of sensors, dramatically reducing board space, connector pin counts, and overall component cost. However, reading a mux schematic correctly requires understanding whether the component passes raw analog voltages or strictly digital logic levels—a distinction that routinely ruins prototypes when overlooked.
Anatomy of a Mux Schematic: Pins, Logic, and Signal Flow
When you open a datasheet or look at a schematic capture, the mux is typically represented as a rectangular block with a distinct array of inputs and a single output. Think of it like a railroad switchyard: multiple tracks (inputs) converge, and the switch operator (select pins) dictates which single track connects to the main line (output).
To read the schematic accurately, you must identify four distinct pin groups:
- Data Inputs (D0-Dn or X0-Xn): The signals waiting to be routed. A 16-channel mux will have pins labeled X0 through X15.
- Select Lines (S0-Sn or A0-An): The binary address pins. For a 16-channel mux, you need 4 select lines ($2^4 = 16$). Pulling S0 HIGH and S1-S3 LOW routes X1 to the output.
- Enable / Strobe (E, EN, or ST): Often active-low (indicated by a bubble on the schematic or a bar over the text like $\overline{E}$). If this pin is held in the disabled state, the output goes high-impedance (Hi-Z) or LOW, regardless of the select lines.
- Output (Z, Y, or OUT): The single pin carrying the selected signal to the rest of your circuit.
The Great Confusion: Analog vs. Digital Muxes
The most common mistake hobbyists and junior engineers make when interpreting a mux schematic is confusing an analog multiplexer with a digital multiplexer. The schematic symbols often look identical, but their internal silicon behaves completely differently.
- Digital Mux (e.g., 74HC151): Contains logic gates. It reads the voltage on the selected input, determines if it is a logic HIGH or LOW, and outputs a fresh, clean logic level. It destroys analog voltage information. If you feed 1.65V into a digital mux powered at 5V, the output will snap to 5V (HIGH).
- Analog Mux (e.g., CD4051B, 74HC4067): Contains MOSFET transmission gates. It acts as a physical resistor connecting the input to the output. It passes the exact continuous voltage (e.g., 1.65V remains 1.65V), but it introduces an On-Resistance ($R_{ON}$) typically between 50Ω and 120Ω.
If your schematic shows a mux feeding a microcontroller's ADC pin to read a temperature sensor, it must be an analog mux. If it routes I2C or SPI chip-select lines, it should be a digital mux (or a specialized bus multiplexer like the PCA9548A).
Worked Numeric Example: Expanding ESP32 ADC Channels
Let’s look at the math and pin savings when using a mux schematic to solve a common GPIO shortage. Suppose you are building a battery thermal monitoring system and need to read 16 separate NTC thermistors using an ESP32 DevKit v1.
The ESP32 has a maximum of 15 usable ADC1 pins, and they are notoriously noisy. Reading 16 sensors directly is impossible without external hardware.
| Architecture | Components Required | Microcontroller Pins Used | Estimated BOM Cost |
|---|---|---|---|
| Direct Wiring | 16x NTC, 16x Pull-up Resistors | 16 ADC pins (Impossible on single ESP32) | $4.50 |
| External ADC (ADS1115) | 4x ADS1115 (I2C) | 4 GPIO (I2C bus) | $18.00 |
| 16-Ch Analog Mux (74HC4067) | 1x 74HC4067, 16x NTC, 16x Pull-ups | 5 pins (1 ADC + 4 Select) | $6.20 |
By implementing the 74HC4067 mux schematic, you trade 16 analog pins for just 5 digital/analog pins. You write a simple loop in your firmware to toggle the 4 select pins (0000 to 1111), pause for a few microseconds, and read the single ADC pin. You save $11.80 in BOM cost and free up the ESP32's internal ADC channels for other critical tasks.
Where You Meet This in Practice
Multiplexers are hidden in plain sight across professional and hobbyist electronics. You will frequently encounter a mux schematic in:
- Battery Management Systems (BMS): High-cell-count LiFePO4 packs use cascaded analog muxes to route 16+ individual cell voltages into a single high-precision ADC inside the BMS IC.
- Oscilloscope Front-Ends: Bench scopes use high-speed, low-capacitance analog muxes to switch between 50Ω and 1MΩ input impedance paths, or to route the signal to different trigger comparators.
- Audio Mixing Consoles: Analog muxes route line-level audio signals to different effects buses or monitoring outputs without converting the signal to digital.
- Capacitive Touch Matrices: Instead of reading a 10x10 grid of touch pads with 100 pins, a mux schematic allows a touch controller to scan the grid using just a handful of drive and sense lines.
Bench Walkthrough: The Settling Time Trap
Schematics show ideal connections, but physics dictates real-world behavior. Here is a real-world scenario where a perfectly valid mux schematic failed on the bench.
The Setup: We built a 16-channel soil moisture sensor array using an ESP32, a 74HC4067 analog mux, and 16 resistive soil probes wired as voltage dividers. The schematic connected the probe mid-points to X0-X15, the select lines to GPIOs 25-28, and the Z output to GPIO 34 (ADC).
The Numbers: The 74HC4067 has an $R_{ON}$ of roughly 120Ω. The dry soil probes measured up to 50kΩ. The ESP32’s internal ADC sampling capacitor is approximately 10pF.
The Outcome: When cycling through the channels, sensors X0 through X5 read perfectly. However, sensors X10 through X15 returned wildly jittery, artificially low moisture readings. The values seemed to "bleed" from the previous channel.
What Went Wrong: The schematic didn't account for the RC time constant. When the mux switched from a low-resistance wet probe (2kΩ) to a high-resistance dry probe (50kΩ), the ESP32's internal 10pF sampling capacitor had to charge through the combined resistance of the mux ($120Ω$) and the probe ($50kΩ$). The firmware was reading the ADC immediately after toggling the select pins. The capacitor hadn't finished charging to the new voltage level, resulting in a crosstalk error.
delayMicroseconds(50); in the firmware immediately after updating the select pins and before calling analogRead(). For high-impedance sources, you must either add a software settling delay or place a 100nF buffer capacitor on the mux output pin to act as a local charge reservoir.
Frequently Asked Questions
Can I cascade multiple muxes to get 32 or 64 channels?
Yes. You can wire the outputs (Z pins) of four 16-channel muxes into a fifth 4-channel mux. However, cascading adds the $R_{ON}$ of each stage together. Two stages of a 74HC4067 will yield roughly 240Ω of series resistance, which will severely impact settling times on high-impedance analog sensor circuits.
What is "charge injection" in a mux schematic?
When the internal MOSFETs of an analog mux switch OFF, a tiny amount of charge from the gate driver leaks into the signal path. In precision audio or high-speed data acquisition, this causes a voltage "kick" or pop. If your application is highly sensitive, look for muxes specifically rated for low charge injection (like the ADG708 series from Analog Devices).
Do I need pull-down resistors on the select lines?
If your microcontroller GPIOs are in a high-impedance state during boot-up, the mux select lines can float, causing the output to randomly switch between inputs and potentially shorting two outputs together if the downstream circuit has feedback. Always use 10kΩ pull-down resistors on the select lines or ensure your firmware sets them as OUTPUTs immediately in the setup() block.






