Logic levels and level shifting
Check whether one chip's output can drive another's input — noise margins and over-voltage across TTL, HC/HCT, LVC, LVCMOS, ESP32, RP2040, STM32, and AVR — pick a level shifter by speed and bus type, design a divider and see its speed limit, and size open-drain pull-ups by rise time.
Added
How to use it
-
Compatibility — a driver’s guaranteed output levels (VOH min, VOL max) against a receiver’s thresholds (VIH min, VIL max): the high noise margin is VOH − VIH and the low margin VIL − VOL, and both must be positive. The tool also flags over-voltage when the driver swings above the receiver’s maximum input. The matrix shows every pairing at once. Figures are datasheet guarantees under light-to-moderate load (JEDEC JESD8 for the LVCMOS families); on a bench a 3.3 V signal often works into a 5 V AVR, but it is not guaranteed over temperature.
-
Level shifters — for two supply voltages, a data rate, and whether the line is bidirectional or open-drain, the options that work: a resistor divider (down only), the BSS138 MOSFET shifter (I²C, 1-Wire), PCA9306-style I²C translators, the TXS0108E and TXB0108 auto-direction parts (the TXB cannot drive pull-ups or open-drain buses), direction-pin translators such as the 74LVC1T45, and a 74AHCT buffer at 5 V for 3.3 V → 5 V (WS2812 data).
-
Divider — R2 = R1·Vout/(Vin − Vout); its output impedance R1‖R2 and the receiver’s input capacitance set a bandwidth 1/(2π·(R1‖R2)·C), which limits the data rate.
-
Open-drain pull-ups — a pulled-up line rises along an RC curve: t = R·C·ln1 − V1/VDD)/(1 − V2/VDD, 0.8473·R·C from 30% to 70% (the I²C definition, NXP UM10204). The tool gives the rise time, the time to reach VIH, the sink current against the pins' IOL, and the largest pull-up for a target rise time.
For I²C’s per-mode pull-up range and an address directory, see the MCU timing tool.
Feedback is a gift. Something to improve, a feature to add, or a bug? Tell me.
Runs entirely in your browser; nothing you type leaves this page.