Chris Collins

Tools · electronics

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.

Sharing

Share link copies a URL that opens this tool with your current settings — every value it remembers between visits, packed into ?s=. Opening a link replaces your saved settings for this tool.

Runs entirely in your browser; nothing you type leaves this page.