123 Main Street, New York, NY 10001

Open-Drain & Pull-Up Network (I2C): Design, EMC, Debug

← Back to: I²C / SPI / UART — Serial Peripheral Buses

Open-drain is an electrical sharing topology—not a protocol. The pull-up network (R·C·V·I + leakage) sets rise-time, VOL margin, EMI behavior, and multi-rail back-powering risk, so the goal is to size a safe resistor window and validate it at the worst node.

Definition & Scope: What “Open-Drain + Pull-Up Network” Really Means

Open-drain (open-collector) is a one-sided driver: devices can actively pull the line LOW, while the HIGH level is created by the pull-up network.

What this page covers
  • Wired-AND electrical behavior: many open-drain nodes share one line safely.
  • Pull-up network design: R + C + leakage determine rise-time, static current, and noise margins.
  • Engineering deliverables: a practical Rpullup window and board-level verification hooks.
What this page does NOT cover (to avoid overlap)
  • I²C speed-mode compliance numbers (mode-specific rise-time limits): handled in the “Standard / Fast / Fast+ / Hs-Mode” subpage.
  • Topology length/fanout planning (star vs trunk, long cable strategy): handled in “Topology Planning” / “Long-Reach I²C over Cabling”.
  • Buffer/isolator/switch selection deep-dive: handled in “Buffers / Isolators / Switches”.
Engineering inputs → outputs (the “contract”)
Inputs
  • Cbus (trace + pins + connectors + test points + probe loading).
  • Vpullup (system rail / peripheral rail / isolated rail choice).
  • IOL vs VOL behavior (sink capability and low-level margin under worst-case pull-low).
  • Leakage budget (contamination, ESD drift, power-off clamp paths).
  • EMC environment (edge-rate sensitivity, coupled noise, ringing risk).
Outputs
  • Rpullup window (not a single value): bounds that satisfy rise-time, sink/VOL, and power.
  • Rail strategy: where pull-ups belong to avoid ghost-powering during sequencing.
  • Verification plan: where to probe, what to log, and pass-criteria placeholders X.
Diagram: Open-drain bus anatomy (variables live in the right physical place)
Open-Drain Bus Anatomy VIH VIL VOL SDA / SCL Vpullup Rpullup Cbus OD OD OD I_sink HIGH via pull-up

The pull-up network defines the HIGH level and the rising edge. The open-drain devices define the LOW level. All key margins map to Rpullup, Cbus, sink behavior (IOL/VOL), and leakage paths.

Why Open-Drain: Wired-AND, Multi-Drop, Arbitration-Friendly Physics

On a shared multi-drop bus, “two devices disagreeing at the same time” is not a corner case. Open-drain makes that disagreement electrically safe by removing the ability to actively drive HIGH.

Wired-AND (electrical meaning)
  • HIGH is passive: the line rises through Rpullup into Cbus.
  • LOW is active: any device can sink the line LOW, so LOW “wins” safely.
  • Conflict-safe sharing: multiple devices can pull LOW simultaneously without a high-side fight.
Why push-pull is risky on a shared bus
  • Hard contention current: one driver forces HIGH while another forces LOW → large shoot-through current.
  • System-level damage modes: local heating, supply dip/ground bounce, EMI spikes, or outright pin damage.
  • Hard to “fix in firmware”: the failure occurs at the electrical layer before protocol recovery can help.
Trade-offs (and why they remain controllable)
  • Slower rising edges: set by Rpullup × Cbus (managed with a resistor window and capacitance control).
  • Static pull-up power: mostly set by Vpullup and the fraction of time the line is LOW.
  • EMC sensitivity: edges and ringing can be shaped using safe “knobs” (resistor, placement, damping) without changing the protocol.
Diagram: Push-pull contention vs open-drain conflict-safe behavior
Push-pull contention Open-drain sharing DRV H DRV L Shoot-through current (hard contention) V R OD OD LOW wins safely (wired-AND) Current limited by R

Open-drain converts “device disagreement” into a controlled electrical outcome: the line can always be pulled LOW without a high-side fight, and the contention current is bounded by the pull-up path.

Practical takeaway for the rest of this page
  • Rpullup × Cbus sets the rising edge and noise susceptibility.
  • Sink capability sets the LOW-level margin when multiple devices pull down.
  • Rail choice determines power-sequencing safety (avoid ghost-powering).

Electrical Model: The 5 Variables That Decide Everything (R, C, V, I, Leakage)

Replace “tuning by feel” with a computable model: every open-drain success or failure maps to R, C, V, I, and leakage.

Card A — RC rising edge: Rpullup × Cbus sets tr
  • Physical meaning: the HIGH transition is a capacitor charge event through Rpullup into Cbus.
  • General workflow (no mode-specific constants here): pick the voltage window used by the system for “LOW→HIGH” recognition, then compute/estimate the time for the RC curve to cross that window.
  • What inflates Cbus in real boards: trace + device pins + connectors + test pads + probe capacitance.
  • Executable takeaway: when tr degrades after an integration step, assume Cbus increased first, then re-check the effective Rpullup.
Boundary note (avoid overlap)

Mode-specific rise-time targets and compliance numbers belong to the “Standard / Fast / Fast+ / Hs-Mode” subpage. This page focuses on the model and the resistor window method.

Card B — VOL constraint: sink capability + worst-case pull-low
  • Low level is an active sink event: the line voltage is set by the sink device behavior under current, not by an ideal switch.
  • Why “I × R” is only a starting point: real devices have an IOL–VOL curve and finite on-resistance; the target is to keep VOL margin under worst case.
  • Worst-corner thinking (required): multiple devices can pull LOW simultaneously; temperature and process corners change sink strength.
  • Executable takeaway: when VOL is “too high”, audit parallel pull-ups first (Req got smaller), then verify sink capability at the required current.
Card C — Leakage & post-ESD drift: the “silent” margin killer
  • Two simultaneous impacts: leakage can pull the HIGH level down and slow the rising edge by stealing pull-up current.
  • Common sources: contamination/moisture, connector residue, post-ESD parametric drift, and power-off clamp paths.
  • Why “still works but becomes fragile” happens: leakage increases first, reducing noise margin long before a hard short appears.
  • Executable takeaway: compare pre/post stress (ESD / humidity) using the same pull-up setting and log the change in rise behavior and static HIGH current (pass threshold X).
Diagram: Equivalent electrical model (R, C, V, I, leakage in one place)
Equivalent Circuit Model Vpullup Rpullup BUS NODE Cbus OD OD OD I_sink Leakage Rleak Ileak

This model supports both design-time prediction and bring-up correlation: R and C dominate the rise, IOL/VOL dominates LOW margin, and leakage quietly shrinks both HIGH margin and edge speed.

Pull-Up Sizing Workflow: Find the Safe Resistor Window (DC + AC + Tolerance)

The goal is not “one resistor value”. The goal is a manufacturing-safe window: Rmin avoids excessive sink current and power, while Rmax preserves edge speed and HIGH robustness.

Step A Find Rmax (do not let R be too large)
  • Constraint: rising edge becomes too slow when Rpullup × Cbus is large.
  • Hidden failure mode: HIGH level becomes “not clean” when leakage/noise steals pull-up current.
  • Bring-up action: measure tr at the worst node (largest C, farthest endpoint) and compare to the chosen system target (pass threshold X in the mode page).
Step B Find Rmin (do not let R be too small)
  • Constraint: smaller R increases LOW current, stressing sink devices and raising VOL under worst-case pull-down.
  • Power impact: pull-up loss occurs whenever the line is LOW; this matters in alert lines and busy buses.
  • Worst-corner rule: validate with multiple devices pulling LOW and with temperature corners (pass threshold X).
Step C Apply tolerance + parallel pull-ups (make it production-safe)
  • Tolerance matters: resistor tolerance/temperature changes shift both Rmin and Rmax margins.
  • Parallel pull-ups are common: multiple boards/modules may each add pull-ups, shrinking the effective Req.
  • Executable audit: enumerate every pull-up source (external resistors and any internal/optional pulls) and compute Req.
Step D Add tuning hooks (avoid a one-shot gamble)
  • Footprints: resistor-array options, DNP pads, and jumpers to select final R in bring-up.
  • Debug hooks: test points at worst nodes, and optional damping footprint (series-R) for ringing/EMC tuning.
  • Manufacturing robustness: keep the selected nominal value centered inside the computed window, not at the edge.
Output format (what this workflow produces)
  • R window: [Rmin, Rmax] after tolerance and parallel pull-up accounting.
  • Bring-up gates: measure tr and VOL at worst nodes; log rail and environment; pass threshold X.
  • If the window collapses: reduce Cbus (segmentation/topology) or add assist devices (buffers/accelerators) via the dedicated subpages.
Diagram: Resistor-window decision flow (inputs → Rmin/Rmax → exit actions)
Resistor Window Workflow Inputs Cbus Vpullup IOL / VOL Leakage EMC Compute Rmax Rise + HIGH Compute Rmin VOL + Power R Window [Rmin, Rmax] Window OK? Exit: reduce Cbus or Exit: add assist segmentation/topology buffers/accelerators

The workflow produces a bounded resistor range and a clear escalation path when physics makes the window too narrow: either reduce effective capacitance or add assist devices through the dedicated subpages.

Pull-Up to Which Rail: System vs Peripheral vs Isolated Rail (and the Ghost-Powering Trap)

Pull-up rail ownership decides more than “logic high”: it determines power-off behavior, noise margin, and whether an unpowered domain gets back-fed through I/O clamp paths.

Rail options and what they change (thresholds + power-off behavior)
Pull-up to System rail
  • Benefit: the bus HIGH is defined whenever the system is ON.
  • Risk: if a peripheral domain is OFF, the bus can still be pulled HIGH and inject current through its I/O clamp network.
  • Typical symptom: “device looks off, but standby current is high” or “bus gets fragile after power cycling”.
Pull-up to Peripheral rail
  • Benefit: when the peripheral is OFF, the bus is not forced HIGH into that unpowered domain.
  • Risk: the host may observe undefined levels during sequencing if it expects a valid HIGH before the peripheral rail is stable.
  • Typical symptom: “startup occasionally mis-detects a state” tied to power sequencing.
Pull-up to Isolated rail
  • Benefit: rail ownership is clear across an isolation boundary; common-mode noise is better controlled.
  • Risk: mismatched “power-off behavior” across the boundary can still create cross-domain backfeed if clamps exist on either side.
  • Rule: align pull-up ownership with the isolator/translator power-off model (selection details belong to the dedicated subpages).
Ghost-powering (backfeeding) — what it is electrically
  • Trigger: one domain pulls the bus HIGH while another domain’s VDD is OFF or below its clamp threshold.
  • Path: bus pin → I/O clamp / ESD structure → unpowered VDD rail → internal circuitry (partial powering).
  • Impact: increased leakage, slowed rising edges, undefined pin states, stuck-low behavior after sequencing, and abnormal standby current.
  • Correlation hint: post-ESD or humidity stress can increase clamp leakage, making backfeed easier and the bus more margin-sensitive.
Rule-based decision: “who can be OFF” + “who has clamps” decides pull-up ownership
Three questions (use as a checklist)
  1. Which domain can be powered down? (peripheral sleep, module unplug, isolated side off)
  2. Which domain must be protected from partial powering? (standby current, reliability, “must be truly off”)
  3. Which pins have pin→VDD clamp paths? (ESD/clamp behavior; power-off tolerance)
Practical rules (selection-level, not part-number-level)
  • If a peripheral domain can be OFF and its I/O is not power-off tolerant, avoid pulling the bus HIGH from an always-on rail into that domain.
  • If the host must see a valid HIGH early in sequencing, ensure the chosen rail is valid at that time or add a structural boundary (translator/isolator).
  • If an isolation boundary exists, pull-up ownership must match the boundary device’s default and power-off behavior (deep selection belongs to the dedicated subpages).
Mitigation knobs (lowest risk → higher impact)
  • Audit and unify pull-ups: ensure there is a single “owner” rail (avoid accidental parallel pull-ups across modules).
  • Small series resistor (Rs): limits injection peaks and tames ringing, but does not replace structural isolation.
  • Translator / isolator boundary: required when domains can be OFF independently or hot-plug scenarios exist (details elsewhere).
Verification gates (pass threshold X placeholder)
  • Backfeed check: with the target domain OFF, ensure its VDD rise stays below X (and decays within X time).
  • Standby current: sequencing states do not increase system Iq beyond X.
  • Bus health: after power cycling, no stuck-low longer than X and no abnormal leakage signature.
Diagram: Multi-rail pull-up ownership and the backfeed path (GOOD vs BAD)
GOOD BAD Vsys Vper Viso Host Peripheral SDA/SCL Pull-up owner: Vper Vsys Vper (OFF) Viso Host Peripheral SDA/SCL Pull-up owner: Vsys Clamp Backfeed

The failure is not “logic”: it is an electrical current path from a powered rail into an unpowered domain through an I/O clamp structure. Rail ownership must match power sequencing and clamp behavior.

Edge-Rate Shaping & EMC: Control Slew Without Breaking Logic Margins

Treat EMC as a network design problem with knobs. The goal is to reduce ringing and emissions while keeping VIH/VIL margins intact and avoiding false threshold crossings.

Start from the model: edges are already shaped by R and C
  • Rpullup × Cbus sets the rise. Excessively fast transitions mainly come from parasitic L/C creating ringing, overshoot, and coupled noise.
  • Design target: “slow enough” to reduce high-frequency energy, but not slow enough to violate timing or shrink logic margin (targets belong to the mode page).
  • Measurement discipline: probe loading changes Cbus; long ground leads create fake ringing.
Knobs (lowest risk → higher impact) and what each can break
1) Change Rpullup only (safest)
  • Changes: rise-time and static pull-up current.
  • Fixes: overly sharp edges and marginal EMI peaks.
  • Can break: too-large R reduces rise robustness (boundary values belong to the mode page).
2) Add small Rs (damping for ringing)
  • Changes: damping (reduces Q) and overshoot behavior.
  • Fixes: ringing, overshoot, and crosstalk sensitivity.
  • Can break: pull-down path voltage drop can raise the observed LOW level; must re-check VOL margin.
3) Add RC shaping (use cautiously)
  • Changes: edge shape and spectral content.
  • Fixes: some high-frequency emission spikes.
  • Can break: more slow-edge sensitivity and unexpected threshold crossings under noise; validate worst-case.
EMI ↔ false trigger mechanism (why “fake START/STOP” can happen)
  • Threshold crossings: ringing or coupled noise can cross VIL/VIH multiple times during one transition.
  • Edge sensitivity: sharper edges carry more high-frequency energy and couple more easily into adjacent nets.
  • Observed outcome: a short, valid-looking level window can be misinterpreted as a protocol event. Recovery policy belongs to the “Error Handling & Recovery” subpage; the hardware lever here is edge + ringing control.
Verification gates after any shaping change (pass threshold X placeholder)
  • Worst-node probing: measure at the far endpoint / largest-C node, not only near the host.
  • Timing: rise behavior remains within the chosen target window (pass X).
  • Margins: VOL under worst pull-down remains within margin (pass X).
  • Ringing: no multiple threshold crossings within X time; overshoot stays within X.
Diagram: Edge shaping comparison (R-only vs R+Rs vs R+RC)
Edge Shaping: Networks + Waveforms R-only R C R + Rs R Rs C R + RC R RC VIH VIL t R-only R+Rs R+RC Keep VIH/VIL margins

Use the lowest-risk knob first (R-only), then add damping (Rs) if ringing dominates, and treat RC shaping as a last resort requiring worst-case validation against logic thresholds.

Layout Rules for Open-Drain Nets: Where Pull-Ups Live and How Return Paths Bite You

These rules focus only on what is tightly coupled to open-drain + pull-up networks: pull-up ownership, accidental parallel pull-ups, defined pull-down return loops, and testability footprints.

Pull-up placement: keep a single “owner” and avoid hidden parallel pull-ups
  • Place pull-ups near the owner domain: the rail and ground reference that define the bus HIGH should be physically close to the pull-up network.
  • Avoid distributed pull-ups: pull-ups in multiple corners (modules / mezzanines / daughtercards) often create an unintended parallel Req that shrinks over time as options get populated.
  • Failure signature: the same design becomes “harder to pull LOW” or burns more power after a module change, because Req silently decreased.
  • Bring-up action: enumerate every pull-up footprint across the BOM (including optional/DNP straps) and compute the worst-case Req when all are populated.
Return paths: open-drain LOW has a defined current loop
What the layout must guarantee
  • LOW loop continuity: Vpullup → Rpullup → SDA/SCL → pull-down device → GND. This loop must stay compact and predictable.
  • No “ground-slot crossings”: routing SDA/SCL across split grounds or slots forces return currents to detour, increasing loop area and ground bounce.
  • Worst-case reference: if a connector region has a weak return reference, expect higher VOL and more false threshold crossings under noise.
Practical routing rules (open-drain specific)
  • Keep SDA/SCL over a continuous reference plane in the regions where pull-down current flows.
  • If a boundary or slot is unavoidable, provide a deliberate return bridge path near the crossing (avoid “mystery return”).
  • Prefer placing pull-ups and the main pull-down endpoint within the same reference domain to reduce common-mode surprises.
Testability footprints: measure, tune, and isolate without re-spinning boards
Test points (TP)
  • Reserve at least one TP near the owner side and one TP at the far-end/worst node.
  • Without a far-end TP, rise-time and ringing can be misread as “fine” when only the near-end is probed.
Series-R pads (Rs)
  • Place an Rs footprint near the owner side to allow damping and injection current limiting.
  • Keep Rs optional (0Ω/NC strategy) to preserve a clean baseline and enable controlled experiments.
DNP capacitor pads (C option)
  • Use only as a controlled knob for EMI edge shaping; validate worst-case thresholds after any population change.
  • Do not “fix by adding C” without a pass criterion; it can hide real signal integrity or margin issues.
Layout acceptance checklist (X placeholders)
  • Pull-up ownership: a single, documented owner rail; no hidden parallel pull-ups when options are populated.
  • Return integrity: SDA/SCL does not cross ground splits/slots without a deliberate return bridge.
  • Worst-node visibility: at least one far-end TP exists for rise-time/ringing capture.
  • Tuning footprints: Rs pad and a controlled DNP option exist; changes require a pass criterion X.
Diagram: Pull-up owner placement, test points, Rs pad, and return-path risk
Board layout abstraction Host / Owner Domain Vpullup Pull-up Rs pad Peripheral Region Worst node Split SDA / SCL Avoid slot crossing TP TP Return path

The open-drain LOW state forms a defined current loop. Routing across a split reference plane enlarges the loop and increases ground bounce risk, especially at the far-end worst node.

Measurement & Debug: How to Measure Rise-Time/VOL Without Lying to Yourself

A scope can “fix” an open-drain bus by adding capacitance, or hide failures with bandwidth/averaging choices. The workflow below removes measurement artifacts first, then maps symptoms to electrical causes.

Before trusting a waveform: eliminate three common measurement artifacts
Probe capacitance
  • Probe C adds directly to Cbus, slowing rise-time and smoothing edges.
  • If changing probe type or attenuation materially changes tr, the measurement is dominating the bus.
Bandwidth / averaging
  • Bandwidth limits can hide overshoot and ringing; averaging can erase intermittent spikes.
  • Use settings that preserve fast events when chasing false triggers or marginal edges.
Measure point selection
  • Near-end measurements often look “clean” while the far-end worst node fails.
  • For acceptance, capture tr and VOL at the far-end / highest-C / noisiest node.
Standardize the measurement: compare apples to apples (no mode numbers here)
  • Rise-time (tr): measure using a consistent voltage window tied to the system’s VIH/VIL policy; keep the definition stable across builds.
  • VOL: measure under the worst pull-down condition expected in-system (multiple devices can pull LOW; temperature corners can reduce sink strength).
  • Sequencing state: confirm rails are in the intended power state; ghost-powering can create misleading “almost powered” behavior.
Fast triage: map symptoms to the most likely electrical causes
Symptom: slow rise-time (tr)
  • Quick check: remove probe loading variables; re-measure at the far-end TP.
  • Likely causes: R too large, C too large (extra nodes/cables), increased leakage (incl. clamp leakage after stress).
  • Next step: estimate Cbus and validate that Req and leakage match expectations across power states.
Symptom: high VOL or “weak LOW”
  • Quick check: confirm Req is not smaller than planned (parallel pull-ups); measure ground bounce near the pull-down device.
  • Likely causes: R too small (too much sink current), insufficient sink capability, ground/reference issues.
  • Next step: validate VOL at the worst node and worst pull-down condition; check return path integrity.
Symptom: intermittent NACK / false event
  • Quick check: disable averaging; use event capture; probe at the far-end worst node.
  • Likely causes: ringing causes multiple threshold crossings; rail sequencing/backfeed creates undefined states; edges too sharp for the environment.
  • Next step: correlate failures with power states and noise sources; apply edge damping (Rs/R) and re-validate margins.
Diagram: Troubleshooting tree (symptom → quick check → root cause)
Observed symptom Slow rise (tr) High VOL Intermittent NACK Quick checks Measure point Rail state Probe C / BW / Avg Far-end TP first Backfeed check tr slow causes R too high C too high Leakage VOL high causes Req too low Weak sink GND bounce Intermittent causes Ringing Noise inject Sequencing

The tree forces artifact checks first (probe/settings/measure point/rail state), then converges to the electrical model variables: R, C, leakage, sink strength, return integrity, and ringing.

Failure Modes & Design Pitfalls: Leakage, Partial Shorts, ESD Drift, Brown-Out Weirdness

This section is a reusable hardware troubleshooting library for open-drain pull-up nets. It focuses on electrical failure signatures and quick checks, and avoids protocol-level recovery algorithms.

1) “Soft pulled LOW”: contamination / humidity / flux residue → leakage current
  • Electrical picture: the bus sees a parallel leakage path (Rleak / Ileak) that drags HIGH down and slows the rise.
  • Typical symptoms: idle HIGH level looks “not fully high”, sporadic NACK/false edges, and strong sensitivity to humidity/handling.
  • Fast checks:
    • Measure Idle VHIGH at the far-end node: compare to expected pull-up rail (pass X).
    • Force the line HIGH via pull-up and measure Ileak (pass X), then compare across boards and after cleaning.
    • Compare rise-time with and without attached fixtures/cables to rule out “added C” vs true leakage.
  • Design pitfall: relying on “looks clean on near-end TP” while the far-end node is the true worst case.
2) Partial shorts: damaged cable, pinched trace, solder whisker → “works sometimes”
Failure signatures
  • Bus current spike: pull-up rail current increases when the bus should idle HIGH.
  • Mode-dependent failures: slower modes “work” but higher speed margins collapse (because RC and threshold crossings get worse).
  • Mechanical correlation: movement or connector pressure changes the error rate.
Quick checks (production-friendly)
  • Resistance screen: SDA/SCL to GND and to Vpullup (pass X).
  • Idle-level screen: VHIGH at far-end node must exceed X.
  • Delta-rise test: compare measured tr against golden board (pass Δtr X).
3) Post-ESD “still works but more fragile”: leakage increases, edges slow, margin shrinks
  • Electrical picture: clamp structures can shift leakage after stress; the bus becomes more sensitive to noise and thresholds.
  • Typical symptoms: intermittent failures begin only after handling/ESD events; far-end rise-time worsens; idle VHIGH droops under temperature/humidity.
  • Do-not-skip verification: after ESD/handling events, re-measure Ileak, tr, and VHIGH at the far-end node (pass X each).
  • Design pitfall: validating only logic-level compliance at one node and missing “margin collapse” over time.
4) Brown-out / power-order weirdness: undefined clamp states and partial powering
What can happen electrically
  • A device enters an undefined I/O clamp condition during undervoltage.
  • The pull-up rail injects current into an “off” domain via clamp paths (partial powering).
  • Bus lines stick LOW or become slow/fragile until a full power cycle.
Practical validation (no protocol recovery here)
  • Sequencing sweep: test several power-down orders and brown-out profiles; observe VHIGH/VOL and stuck states (pass X).
  • Backfeed check: with a target domain OFF, ensure its rail rise remains below X and decays within X time.
  • Idle stability: after recovery, VHIGH and tr return to baseline (pass Δtr X, ΔIleak X).
Production-friendly detection library (open / short / leakage) — thresholds as X
  • Open detection: continuity to known nodes and pull-up owner verification (pass X Ω / pass X V).
  • Hard short detection: SDA/SCL to GND/Vpullup resistance screen (pass X Ω).
  • Soft leakage detection: force HIGH and measure Ileak at a controlled state (pass X µA), plus VHIGH droop (pass X).
  • Dynamic signature: simple rise-time capture vs golden board (pass Δtr X), measured at the far-end node.
Diagram: Failure library map (symptom → quick check → electrical cause)
Failure modes (hardware) Symptom Quick check Electrical cause VHIGH droop tr slower Measure Ileak Far-end TP Leakage path Rleak / Ileak Works sometimes Mode sensitive R screen Δtr vs golden Partial short Rshort (high) After stress margin shrinks Re-test Ileak Re-test tr Leakage drift Clamp shift Brown-out: clamp states / backfeed Validate sequencing + rail OFF behavior

Keep the library symptom-driven: measure at the far-end worst node, confirm rail states, then converge to leakage/partial short/clamp drift rather than chasing protocol ghosts.

Engineering Checklist: Design → Bring-Up → Production (Your “Do Not Ship” Gates)

Convert the open-drain model into acceptance gates. Every checklist item must be auditable and linked to a measurable pass criterion (X placeholders).

Design checklist (do not layout-freeze without these)
  • Resistor window documented: define Rmin/Rmax from DC+AC constraints and tolerance; pass: Req stays within XX across corners.
  • Parallel pull-up audit: list all pull-up footprints (modules/options); pass: worst-case Req ≥ X and ≤ X.
  • Rail ownership defined: pull-up owner rail is explicit for each bus segment; pass: no backfeed raising an OFF rail above X.
  • Power-off behavior checked: drop-out/brown-out sequence set; pass: no stuck-low longer than X.
  • Edge-control knobs reserved: Rs pads and controlled DNP options exist; pass: population changes require tr/VOL gates X.
  • Test visibility: near-end and far-end TP reserved; pass: far-end TP accessible in fixture X.
  • Return integrity: SDA/SCL avoids ground split/slot crossings; pass: defined return bridge if crossing is unavoidable (X).
  • Worst-node definition: identify the highest-C / noisiest node; pass: acceptance measurements use that node by default.
Bring-up checklist (prove margins at the worst node)
  • Measure at the worst node: far-end TP first, not near-end; pass: tr ≤ X, VOL ≤ X, VHIGH ≥ X.
  • Probe discipline: verify probe loading and bandwidth/averaging settings; pass: tr changes ≤ X when probe/setup changes.
  • Corner sweep: voltage and temperature corners; pass: tr/VOL stay within X across corners.
  • Option sweep: populate modules/options that add pull-ups/capacitance; pass: Req and tr do not cross gate X.
  • Sequencing/brown-out sweep: multiple power-down orders; pass: no stuck-low > X, no OFF-rail backfeed > X.
  • Post-handling re-check: after ESD/plug cycles, re-test Ileak and tr; pass: ΔIleak ≤ X, Δtr ≤ X.
  • Noise exposure check: verify ringing and threshold crossings at worst node; pass: no multi-crossing within X time.
  • Golden signature captured: record baseline tr/VOL/Ileak for production comparison; pass: baseline stored with board ID and environment.
Production checklist (fast screens + traceable logs)
Fast screens (per unit)
  • Open/short screen: resistance checks SDA/SCL↔GND and SDA/SCL↔Vpullup (pass X Ω).
  • Leakage screen: forced HIGH and measure Ileak (pass X µA), and VHIGH droop (pass X).
  • Dynamic signature: rise-time or edge-capture vs golden baseline (pass Δtr X).
  • Rail-state guard: verify pull-up owner rail is present and correct (pass X V).
Logs (for yield correlation)
  • Electrical: Vpullup actual, Req option state, Ileak, tr, VOL (pass criteria fields recorded as X).
  • Identity: board serial, PCB rev, assembly lot, fixture rev.
  • Environment: temperature, humidity, time since cleaning/handling.
Diagram: “Do Not Ship” gates (Design → Bring-Up → Production)
Open-Drain Pull-Up “Do Not Ship” Gates Design Bring-Up Production R window Req audit Rail owner TP / Rs Worst node tr / VOL Corners Sequencing Open/short Leakage Δtr vs gold Logs Pass criteria = X placeholders

A checklist is only useful when each item is measurable. Treat every gate as a “no-excuse” stop: if the measurement cannot be made at the worst node, the design is not ready to ship.

H2-11 · Applications (Board-level, Open-Drain + Pull-Up)

This section lists only the board-level uses that are defined by the pull-up network: shared lines that must remain conflict-safe and tolerant to multi-drop behavior. Each use-case is framed as what the pull-up defines (rail, window, and measurement point), not protocol logic.

A) I²C / SMBus / PMBus: SDA & SCL as pull-up-defined nets

  • Pull-up defines edge + power: rise-time is dominated by Rpull-up × Cbus; average static power is dominated by VOL × IOL during low duty.
  • Rail decision is a system decision: pull-up to the rail that defines valid VIH for all attached devices and remains stable across sequencing; avoid “mixed-domain” pull-ups without an explicit isolation/translation point.
  • Where to validate: measure rise-time and VOH at the worst physical node (farthest stub / largest local C) and VOL at the worst sink corner (max concurrent low + max temperature).

B) Open-drain interrupt / alert lines: INT# / ALERT# / SMBALERT#

  • Wired-OR aggregation: multiple devices can assert the same alert line safely; the pull-up defines recovery time after release.
  • Edge-shaping is usually the “EMC knob”: tune R (and optionally small series-R at the aggregator) to reduce ringing/overshoot without collapsing logic margins.
  • Verification focus: confirm low-level margin (VOL under worst sink) and release time (rise-time under worst C/leakage), not just functional toggling.

C) Shared alarm lines across boards (backplane / harness): “one line, many sources”

  • Cable/backplane makes Cbus + noise larger: the pull-up window must account for higher capacitance and common-mode disturbance.
  • Define the “home rail” clearly: place the pull-up at the domain that owns system interpretation; avoid multiple boards each adding a pull-up (parallel R shrink → higher sink current).
  • Observability: add test points and a DNP series-R footprint near the receiver to enable edge control and quick isolation during bring-up.
Applications map: open-drain + pull-up networks Three typical board-level use cases: I2C SDA/SCL, wired-OR interrupt lines, and shared alarms across boards. The pull-up rail and R window are the defining elements. Open-drain NET shared line: conflict-safe (wired-AND / wired-OR) Vpull-up Rpull-up A) I²C / SMBus / PMBus SDA / SCL = pull-up-defined Validate at worst node tr + VOL corners B) INT# / ALERT# wired-OR aggregation edge control = EMC knob release time matters C) Shared alarms backplane / harness higher C + noise single “home” pull-up Common acceptance focus 1) R window (Rmin..Rmax) across tolerance 2) worst-node rise-time 3) worst-corner VOL 4) rail / power-seq behavior Avoid accidental parallel pull-ups across boards; keep test points and DNP footprints for fast debug

H2-12 · IC Selection Notes (Before FAQ)

Selection here is about behaviors that change the pull-up window: sink capability, power-off I/O state, translation/isolation placement, and protection leakage. Example part numbers are included as reference; always verify value code, package, suffix, temperature grade, and availability.

1) Pull-up components: single resistor vs resistor network

  • Single resistor (simple + flexible): easiest to tune per line; preferred when each line needs a different R window.
  • Resistor network / array (layout control + BOM efficiency): reduces “pull-ups scattered everywhere”; helps keep a single effective pull-up owner.
  • Key checks: tolerance/TC, power per element (low duty vs stuck-low), and whether multiple boards accidentally add parallel pull-ups.

Concrete examples (replace value code as needed):

  • Yageo RC0603FR-074K7L (0603, 4.7 kΩ, 1%)
  • Vishay CRCW06034K70FKEA (0603, 4.7 kΩ, 1%)
  • Panasonic EXB-2HV472JV (resistor array, 4.7 kΩ class)
  • Panasonic EXB-38V472JV (resistor array, 4.7 kΩ class)
  • Vishay Dale CRA06S0834K70JTC (resistor array, 4 × 4.7 kΩ class)

2) Open-drain line drivers: when “the source” is not truly open-drain

  • Use-case: converting push-pull GPIO into open-drain for wired-OR alert lines.
  • Key checks: guaranteed sink current (IOL), VOL at that current, and partial-power-down behavior (avoid back-powering through I/O).

Concrete examples:

  • TI SN74LVC1G07 (single buffer with open-drain output)
  • Nexperia 74LVC1G07 (buffer with open-drain output)

3) Level translation: keep open-drain semantics intact

  • Goal: translate voltage domains without introducing direction-control failure modes.
  • Key checks: power-off I/O state, internal pull-ups (if any), and how translation interacts with the effective pull-up window.

Concrete examples:

  • NXP PCA9306 (dual bidirectional I²C/SMBus voltage-level translator)
  • TI TCA9406 (2-bit bidirectional I²C/SMBus voltage level translator; supports open-drain mode)

4) Bus buffering / segmentation: when Cbus breaks the pull-up window

  • Trigger conditions: required rise-time cannot be met without making sink current / VOL unacceptable, or when a single net accumulates too much capacitance.
  • Placement logic: buffer splits the bus so each side has its own pull-up and its own R window; the “home rail” becomes explicit per segment.
  • Avoid turning this into a new chapter: detailed buffer topology and corner rules belong to the dedicated Buffers/Isolators/Switches page; this section only defines the decision boundary.

Concrete examples (buffer/repeater/extender):

  • TI TCA9617A (level-translating I²C bus repeater)
  • TI TCA9509 (level translating I²C bus repeater)
  • TI TCA9517A (level-shifting I²C bus repeater)
  • NXP PCA9517 (level-translating I²C-bus repeater)
  • NXP PCA9600 (bus buffer for isolating capacitance; high-C side use case)

5) Isolation strategy: treat each isolated side as its own pull-up domain

  • Rule of thumb: isolated SDA/SCL are not “one net” anymore; each side needs its own pull-up rail and its own R window.
  • Key checks: sink current capability per side, propagation delay vs timing margin, and hot-swap / power sequencing behavior.

Concrete examples (I²C isolators):

  • TI ISO1540 (bidirectional I²C isolator)
  • TI ISO1640 (hot-swappable bidirectional I²C isolator)
  • Analog Devices ADuM1250 (hot-swappable bidirectional I²C isolator)

6) Port protection: leakage and capacitance directly reshape the pull-up window

  • Why it belongs here: ESD devices add capacitance (slower rise) and leakage (lower VOH), both of which change the safe R window.
  • Keep it disciplined: detailed IEC waveforms and placement belong to the protection page; this section only lists the pull-up-relevant knobs.

Concrete examples (ESD/TVS, low-C class):

  • TI TPD2E2U06 (dual-channel low-capacitance ESD protection; I²C use cases)
  • TI TPD2E2U06-Q1 (automotive-qualified variant)
  • Nexperia PESD5V0S1UL (single-line ESD protection diode)
Selection flow: open-drain pull-up networks A decision flow that starts from Cbus/rail/IO behavior and ends with pull-up element choice, translation/buffering/isolation, and protection leakage checks. Includes example part numbers. Start: define the pull-up domain Vpull-up rail + power sequence + worst node Compute R window (DC + AC + tolerance) If no overlap: segment / buffer / accelerate Pick pull-up element single R vs array / network Examples: RC0603FR-074K7L · CRCW06034K70FKEA Need translation / buffering? mixed rails / too much C / long routing Examples: PCA9306 · TCA9406 · TCA9617A · PCA9600 Need isolation? each side gets its own pull-up Examples: ISO1540 · ISO1640 · ADuM1250 Check protection leakage + capacitance ESD parts reshape VOH and rise-time Examples: TPD2E2U06 · TPD2E2U06-Q1 · PESD5V0S1UL

Output of this flow is not “one resistor value”, but a validated window plus a clear boundary: if the window collapses, the design needs segmentation / translation / isolation rather than forcing an unsafe pull-up.

Practical rule: treat “pull-up rail ownership” as a first-class spec. If a line crosses rails, power domains, or isolation, the pull-up must be re-owned at the boundary (translator/buffer/isolator), not left implicit.

Request a Quote

Accepted Formats

pdf, csv, xls, xlsx, zip

Attachment

Drag & drop files here or use the button below.

H2-13 · FAQs (Open-Drain + Pull-Up Network)

Long-tail troubleshooting only. Answers stay strictly within: R/C/V/I/leakage, EMC edge shaping, and multi-rail power/clamper behavior. All thresholds are placeholders (X) for project-specific gates.

Rise time meets spec on the bench, but fails on the assembled system—what’s the first C/leakage check?

Likely cause: Cbus increased (harness/connector/added ESD) or new leakage path (assembly residue) that drags VOH and slows the edge.

Quick check: measure tr@worst_node and VHIGH@worst_node; estimate ΔCeff from the rise-time change using known R; measure Ileak@idle (compare vs golden bench setup).

Fix: remove/replace the added capacitance source (ESD/connector option), clean the net (flux/humidity), or segment the net (buffer/isolator boundary) instead of forcing a risky pull-up.

Pass criteria: tr@worst_node ≤ X; VHIGH@worst_node ≥ X; Ileak@idle ≤ X; ΔCeff vs baseline ≤ X.

VOL looks too high when multiple devices pull low—how to spot “parallel pull-ups” accidentally added?

Likely cause: effective pull-up resistance collapsed (multiple pull-ups populated in parallel), raising required sink current and pushing VOL out of margin.

Quick check: inventory all pull-up footprints/options and compute Req; measure Ipullup@LOW and VOL@max_sink with the worst-case number of devices asserting LOW.

Fix: enforce a single pull-up owner (DNP/0Ω gating), increase R to restore the window, or split segments so each segment’s Req remains auditable.

Pass criteria: Req within X…X; VOL@max_sink ≤ X at IOL = X; Ipullup@LOW ≤ X.

Works at room temp, fails in humidity—how to confirm flux residue leakage vs real device failure?

Likely cause: surface contamination creates a humidity-dependent leakage path that pulls the line toward mid-level and slows the rise.

Quick check: log Ileak@idle and VHIGH@worst_node vs RH%; repeat after targeted cleaning/bake; compare against a controlled “dry” condition.

Fix: improve cleaning process/inspection, add conformal coat where appropriate, or redesign spacing/guarding for the net; avoid masking the issue by simply lowering R.

Pass criteria: Ileak@idle ≤ X at RH = X; VHIGH@worst_node ≥ X; ΔIleak after clean ≤ X.

After ESD test it still works, but becomes flaky—what leakage metric changes first?

Likely cause: leakage increases (ESD clamp drift) before functional failure, reducing VOH margin and slowing the edge under noise.

Quick check: compare Ileak@idle, VHIGH droop, and tr@worst_node against pre-ESD baseline on the same board and the same measurement setup.

Fix: replace/upgrade the stressed protection path, improve return/ESD routing, and re-validate the pull-up window; do not “hide” drift by tightening pull-up without re-checking VOL.

Pass criteria: ΔIleak ≤ X; Δtr ≤ X; VHIGH@worst_node ≥ X; post-ESD repeatability within X.

Bus works when powered, but fails during power sequencing—how to detect ghost-powering from pull-up rail choice?

Likely cause: pull-up rail backfeeds an “OFF” domain through I/O clamp paths, creating undefined I/O states and sequencing-dependent failures.

Quick check: power the pull-up rail ON while the target domain is OFF; measure Voff_rail rise and Ibackfeed; verify line levels (stuck LOW / mid-level) at worst node during transitions.

Fix: re-own pull-up to a compatible always-valid rail, add an isolation/translation boundary, or enforce sequencing so the pulled-up domain is never OFF while the bus is active.

Pass criteria: Voff_rail ≤ X; Ibackfeed ≤ X; no stuck state longer than X during sequencing.

Changing pull-up rail fixed logic level, but introduced resets—what clamp path is likely?

Likely cause: injected current flows through input clamp diodes into a sensitive rail, disturbing reset/brown-out thresholds during bus activity.

Quick check: monitor the affected rail during repeated LOW asserts; measure ΔVrail and Iinj (injection current) while toggling; confirm the path by isolating the line (lift pull-up / remove module) and observing reset disappearance.

Fix: move pull-up ownership to the correct domain boundary, add a translator/isolator with defined power-off behavior, or add series resistance to limit injection (while re-checking VOL margin).

Pass criteria: ΔVrail ≤ X; Iinj ≤ X; resets = 0 across X cycles and X sequencing profiles.

Slowing edges reduced EMI, but now occasional false START/STOP—what’s the safest edge-shaping knob?

Likely cause: edge shaping pushed rise-time too slow or created long threshold-crossing windows, making the line more susceptible to coupled noise and false transitions.

Quick check: measure threshold-crossing duration at the worst node; check for multi-crossings/ringing after releases; compare “R-only” vs “R+extra C” to identify which knob introduced vulnerability.

Fix: safest knob is tuning Rpull-up within the window; if damping is needed, use a small series R (placed near the driver/receiver) rather than adding large shunt capacitance.

Pass criteria: tr@worst_node within X…X; no multi-crossings within X; EMI improvement achieved without false transitions across X hours.

Scope shows clean edges, yet devices NACK—what probe loading or measurement setup lies most often?

Likely cause: probe capacitance/ground lead inductance distorts the net, or measurement is taken at a “good” node instead of the worst node.

Quick check: repeat measurement with a low-C probe and short ground spring; measure at worst_node; disable heavy averaging; confirm bandwidth/sample settings reproduce edge details.

Fix: standardize measurement setup (probe type, bandwidth, TP location) and baseline against a golden board before concluding electrical non-compliance.

Pass criteria: probe-induced Δtr ≤ X; worst_node waveform matches golden within X; NACK rate = 0 across X transactions under the same setup.

One board revision needs smaller pull-ups—how to locate the added capacitance quickly?

Likely cause: new capacitance was introduced (connector option, ESD part change, longer trace/stub, added device input C), collapsing the original rise-time margin.

Quick check: with identical pull-up, compare tr@worst_node between revs; estimate ΔCeff from Δtr; isolate by depopulating optional loads/connectors one at a time and re-measuring.

Fix: remove the unintended C source, choose lower-C protection, or segment the bus; only then retune R within the validated window (do not blindly “go smaller”).

Pass criteria: ΔCeff ≤ X; tr@worst_node ≤ X with target R; functional stability across X configuration options.

Adding a series resistor improved ringing but broke low-level margin—what’s the first VOL sanity check?

Likely cause: series R introduced additional voltage drop under sink current, effectively raising the observed VOL at the receiver.

Quick check: measure VOL@receiver while forcing worst-case sink current; compute expected ΔV = IOL × Rseries and compare; confirm Rseries placement (near driver vs distributed).

Fix: reduce Rseries, move it to the correct location, or increase pull-up R (lower sink current) while re-validating rise-time; do not keep Rseries if it breaks VOL margin.

Pass criteria: VOL@max_sink ≤ X at IOL = X; Rseries-induced ΔV ≤ X; tr@worst_node ≤ X.

Why does placing pull-ups at multiple connectors make things worse even if each value seems “reasonable”?

Likely cause: parallel pull-ups shrink Req and raise sink current/ground bounce; connector stubs also add capacitance and ringing at the worst node.

Quick check: compute Req from populated pull-ups; measure Ipullup@LOW and VOL; compare tr/VHIGH with only the “owner” pull-up populated vs multiple connectors populated.

Fix: enforce a single pull-up owner near the receiving/defining domain; make other connector pull-ups DNP by default and keep a controlled “option” population plan.

Pass criteria: Req within X…X; Ipullup@LOW ≤ X; VOL@max_sink ≤ X; worst_node ringing within X.

I pulled up to an isolated rail and got random behavior—what “power-off I/O state” should be verified first?

Likely cause: when one side is OFF, the isolator/translator or device pins clamp or partially power through I/O, turning a clean open-drain net into an undefined mid-level net.

Quick check: with the isolated rail OFF, measure line level and Ileak@idle; verify whether the OFF-side pins are Hi-Z or clamped; check for OFF-rail rise (backfeed) during pull-up assertion.

Fix: treat each side as its own pull-up domain (pull up locally per side), choose a boundary device with defined power-off behavior, and enforce rail sequencing so the bus is not driven into an OFF domain.

Pass criteria: OFF-side pins = Hi-Z (per design intent); Vbackfeed on OFF-rail ≤ X; Ileak@idle ≤ X; no random mid-level states across X cycles.