123 Main Street, New York, NY 10001

I2C / I3C Buffers & Switches for Bus Segmentation & Timing

← Back to:Interfaces, PHY & SerDes

I²C / I³C buffers, switches, and hubs are used to keep the trunk healthy: reduce effective bus capacitance, segment branches, preserve arbitration/clock-stretch semantics, and contain faults so one bad device cannot stall the whole system.

This page provides a copyable playbook—from root-cause RC modeling to segmentation topologies, timing shaping, and validation gates—to make improvements measurable and sign-off ready.

H2-1 · Scope & boundaries

This page is an engineering playbook for rescuing I²C/I³C buses that collapse under capacitance, branch coupling, or fault propagation. It focuses on segmentation, semantics-safe buffering, and measurable timing shaping—without drifting into protocol tutorials or unrelated component classes.

This page covers (what gets fixed here)
  • Cap loading relief: reduce effective bus capacitance, restore rise-time, and protect VOL margin using buffers and smart segmentation. (Outcome: tr meets the target class; low-level stays within sink margin.)
  • Segmentation architectures: isolate stubs/branches into controllable segments (static or selectable attachment) to prevent one branch from dragging the whole bus. (Outcome: main trunk waveform improves when branches are detached.)
  • Semantics safety: preserve arbitration, clock stretching, and “hold” behavior across segments—so a “clean waveform” does not secretly break bus meaning. (Outcome: multi-master and stretch tests remain deterministic.)
  • Fault containment: detect and isolate stuck-low, hot-plug transients, and leakage-driven “half-low” states so failures stay local to one segment. (Outcome: only one segment is impacted; main bus remains operational.)
Not in scope (explicitly out of bounds)
  • Voltage translation / multi-rail level shifting → belongs to Level Translators. (Only a one-line pointer appears here when needed.)
  • ESD / surge / EMI deep design → belongs to Protection & Compliance.
  • I²C protocol fundamentals (addressing, frames, register reads/writes) → belongs to I²C Fundamentals.
  • Firmware driver stacks (retries, timing policies, recovery sequences) → belongs to Protocol SoC/Bridge.
  • High-speed differential SI (eyes, equalization, retimers) → belongs to SerDes pages (PCIe/USB/DP/HDMI classes).
  • Full I³C CCC/DAA details → belongs to an I³C protocol/system canonical page (when published).
What buffers/switches fix—and what they don’t Block diagram showing three problem types on the left, three device classes on the right, and a red out-of-scope boundary bar. Fix domain vs out-of-scope boundary Keep this page focused on bus physics, segmentation, semantics safety, and fault containment. Problem signatures (what breaks the bus) Cap loading: slow rise-time / threshold dithering Branches: stubs, long runs, hot-plug coupling Fault coupling: stuck-low / leakage “half-low” Device classes (what is used to fix it) Buffer RC relief / edge conditioning Switch / Mux topology control / isolation Hub / Bridge legacy islands / management Not in scope boundary Level shift ESD/EMI deep Protocol basics
Diagram: this page targets bus capacitance, segmentation/topology, semantics safety, and fault containment—while explicitly excluding level shifting and deep compliance topics.

H2-2 · Taxonomy: Buffer vs Switch/Mux vs Hub/Bridge

The fastest way to avoid mis-selection is to separate three “domains”: buffers primarily repair the electrical domain (RC and edges), switches/muxes primarily control the topology/attachment domain (who joins the arbitration domain), and hubs/bridges primarily manage the protocol/legacy domain (system architecture and mixed I³C/I²C islands).

Buffer
RC relief / edge conditioning

Use a buffer when the dominant failure mode is rise-time and threshold margin (bus RC), and when isolating downstream capacitance materially improves the trunk waveform. Treat it as an electrical-domain tool that may require explicit checks for semantics transparency.

Fits (3)
  • Main bus rise-time fails because total C is too large (many devices, long harness, heavy probing).
  • One “heavy” branch should be isolated so the trunk stays within the timing class.
  • Edge shaping is needed (accelerate rise or control slew) while keeping wiring the same.
Does not fit (3)
  • Problems are dominated by multi-rail translation (that is level shifting, not buffering).
  • Failures originate from hot-plug branch coupling where “default disconnect” is required.
  • Multi-master arbitration/clock stretching is critical but the buffer is not transparent.
Must verify (2)
  • Semantics transparency: arbitration visibility and clock stretching behavior remain correct under stress.
  • Waveform improvement is real: trunk rise-time improves when the branch is isolated (baseline vs after).
Switch / Mux
topology control / attach & isolate

Use a switch/mux when the core problem is topology: too many branches, long stubs, hot-plug segments, or the need to detach a suspect branch to keep the trunk stable. Treat it as an attachment-domain tool where Coff and leakage determine how “detached” a branch truly is.

Fits (3)
  • Multiple stubs/ports must be selectively connected (debug ports, modular bays, field-replaceable nodes).
  • Hot-plug or “unknown device” branches should be disconnected by default and attached only after validation.
  • Isolation is required to locate a bad segment quickly (detach-and-measure workflow).
Does not fit (3)
  • Total bus C is so large that even the trunk needs active edge conditioning (buffer may be required).
  • System demands protocol-level management (mixed I³C/I²C islands, events, enumeration orchestration).
  • “Detached” branches still degrade the trunk because Coff/leakage is not compatible with the bus timing budget.
Must verify (2)
  • True detach: trunk waveform improves when the branch is off (Coff/leakage acceptable).
  • Attach safety: hot-plug/attach does not inject glitches that mimic edges or trigger false transitions.
Hub / Bridge
legacy islands / management

Use a hub/bridge when the system needs architecture-level management: mixed I³C main bus with legacy I²C islands, many endpoints, event aggregation, and controlled attachment policies. Treat it as a protocol/management tool whose primary risks are compatibility scope and validation complexity.

Fits (3)
  • I³C performance is desired, but legacy I²C devices must remain supported as isolated islands.
  • System requires event/interrupt aggregation or centralized endpoint management.
  • Scaling endpoints demands controlled attachment rules beyond pure electrical fixes.
Does not fit (3)
  • Problem is purely RC/rise-time on a simple I²C bus (buffer is usually simpler and lower risk).
  • Topology-only branch selection is needed without protocol management (switch/mux is usually sufficient).
  • Validation budget cannot support a larger compatibility matrix.
Must verify (2)
  • Legacy island integrity: the I²C island timing and pull-up strategy remain stable without dragging the I³C trunk.
  • Compatibility scope: the required subset of I³C management behaviors matches the system use case.
Common mis-selections (fast reality checks)
  • Using a level shifter as a “buffer”: voltage may translate, but RC/semantics issues remain or worsen. First check: does trunk rise-time improve when the branch is isolated?
  • Switch/mux with large Coff: “detached” branches still degrade trunk timing. First check: compare tr with branch off vs physically unplugged.
  • Buffer not transparent to stretching/arbitration: bench passes, system shows sporadic NACK/timeout under load. First check: run multi-master + stretching stress tests across temperature.
  • Aggressive rise-time acceleration: rise-time “passes,” but overshoot/glitches mimic edges. First check: look for sub-threshold spikes near the receiver threshold.
3 device classes, 3 problem targets Three columns for Buffer, Switch/Mux, and Hub/Bridge with suitability indicators for capacitance relief, branch control, and fault containment. Selection matrix (what each class is best at) Indicators: ✓ primary win · ◐ conditional (verify) · ⛔ not a good fit Targets Cap loading Rise-time / RC Branches Stubs / attach Fault coupling Containment Buffer Switch/Mux Hub/Bridge Coff matters scope-dependent needs rules architectural feature check Rule of thumb Choose by dominant failure mode: RC → Buffer · topology/hot-plug → Switch/Mux · mixed I³C+legacy management → Hub/Bridge
Diagram: selection is driven by the dominant failure mode (RC vs topology vs management), with conditional cases requiring explicit verification.

H2-3 · Root cause model: why an I²C/I³C bus collapses

Bus failures that look like “random protocol errors” often originate from a simple electrical reality: pull-up resistance and total bus capacitance set rise-time, while device sink capability sets low-level margin. Once edges linger near the receiver threshold, small noise or measurement artifacts can be interpreted as logic events.

Approx #1 — Rise-time is an RC budget (no mystery)
tr(30–70%) ≈ 0.85 · Rp · Cbus
Use: if a target rise-time is known, Rp·Cbus has a hard upper bound → segmentation or buffering becomes mandatory when exceeded.
Common trap: rise-time depends on the measurement definition; keep 30–70% consistent when comparing setups.
Approx #2 — Lower Rp speeds edges but increases sink stress
Ipulldown demand ≈ (VDD − VOL) / Rp
Use: shrinking Rp can fix rise-time but may violate VOL margin when a weaker device (or a hot corner) cannot sink the increased pull-up current.
Common trap: “faster edge” does not guarantee “clean logic”; low-level margin can collapse and look like sporadic NACK/timeout.
Approx #3 — Cbus is the sum of what is connected (including probes)
Cbus ≈ Ccable + ΣCpin + Cparts + Cprobe
Use: if disconnecting one branch or removing a measurement clip changes rise-time, that removed element was a real part of Cbus.
Common trap: a “helpful” probe can create a failure that disappears when the probe is removed.
Typical rise-time levels (avoid “400 kHz intuition” at 1 MHz)
  • Standard-mode: rise-time is typically in the ~1000 ns class (30–70%).
  • Fast-mode: rise-time is typically in the ~300 ns class (30–70%).
  • Fast-mode Plus: rise-time is typically in the ~120 ns class (30–70%).

Note: exact limits depend on the timing class definition; treat these as engineering scale markers for budgeting and segmentation decisions.

When buffering/segmentation is the right first move
RC-dominant signature → buffering/segmentation usually works
  • Rise-time is slow and strongly sensitive to cable length, device count, or branch attachment.
  • Detaching one branch produces a clear improvement on the trunk waveform (tr drops noticeably).
  • Errors increase when edges linger near the receiver threshold (small noise causes “logic ambiguity”).
Non-RC dominant signature → buffering may not solve the real issue
  • Waveform looks “fast enough,” yet failures correlate with ground/reference disturbances or external coupling.
  • Touching/moving harness changes logic interpretation without meaningful RC change.
  • Different instruments disagree because thresholds or sampling behavior dominate the observation.

Only a brief reminder is provided here: faster edges can trade for overshoot/EMI and must be balanced by the system budget.

Symptom → likely cause → quick check → next action
Slow rise, threshold “dither” near logic level
Likely cause: RC budget exceeded (Rp·Cbus too large).
Quick check: detach a heavy branch; confirm trunk tr improves immediately.
Next action: segment the bus; consider buffering that isolates branch capacitance.
Edges look faster after lowering Rp, but VOL margin collapses
Likely cause: pull-up current demand exceeds a device’s sink capability (corner/temperature sensitive).
Quick check: measure VOL under worst-case load and temperature; compare to receiver threshold.
Next action: rebalance Rp; use segmentation/buffering instead of forcing Rp lower.
Instrument A “passes,” instrument B flags errors
Likely cause: threshold/sampling artifact (logic analyzer thresholds vs analog view).
Quick check: adjust digital threshold; confirm whether “errors” track threshold position.
Next action: validate with consistent threshold definition and a known-good reference capture.
Failures appear only when probing/clipping
Likely cause: probe capacitance becomes part of Cbus (measurement creates a failure).
Quick check: repeat with a lower-C probe or shorter ground lead; compare tr and ringing.
Next action: reserve a dedicated test pad; avoid high-C clips on the trunk when budgeting rise-time.
Branch “off” still drags the trunk
Likely cause: off-capacitance/leakage keeps a “detached” branch electrically present (Coff/leak).
Quick check: compare “branch off” versus physically unplugged; quantify the delta in tr.
Next action: use a lower-Coff switch or re-architect segmentation boundaries.
RC rise-time + sink margin (why bus collapses) Left shows Rp and Cbus model with C sources and sink block. Right shows slow rising edge near threshold and added probe capacitance slowing the edge. RC model + margins (timing and low-level) Rp and Cbus set rise-time; sink capability sets VOL margin. Probing can add C and change the result. Electrical equivalent VDD Rp SDA/SCL Cbus Ccable ΣCpin Cparts Sink (VOL) Probe +C Waveform view (threshold sensitivity) time V threshold band slow rise → ambiguity 30% 70%
Diagram: RC sets edge speed; lingering near the threshold band increases sensitivity to noise and measurement artifacts (probe capacitance included).

H2-4 · Segmentation architectures: 4 reusable topologies

Segmentation is not primarily about “going faster.” Its real objectives are to reduce per-segment capacitance, minimize stubs, and contain faults to a local segment. The four topologies below form a reusable library that can be adapted without duplicating content across sibling pages.

Topology A — Trunk + selectable branches (Switch/Mux attach)
When to use
  • Many stubs/ports must be connected selectively (modular bays, debug/service ports, field nodes).
  • Hot-plug is expected and “default disconnect” is required for trunk stability.
  • Fast isolation is needed to locate a bad branch by detach-and-measure.
Risks to manage
  • Coff/leakage can keep an “off” branch electrically present.
  • Attach transients can inject glitches that resemble edges near thresholds.
  • Branch boundaries must be defined so faults stay local.
Verify gates
  • Branch OFF improves trunk rise-time. Pass: tr_main < X.
  • Attach/detach does not create false transitions. Pass: glitch < X.
  • Stuck-low in one branch can be isolated. Pass: isolate < X ms.
Topology B — Trunk + fan-out buffers (capacitance partitioning)
When to use
  • Total device count and harness length push Cbus beyond the rise-time budget.
  • Trunk must stay stable while multiple downstream segments exist.
  • Edge conditioning is needed without requiring dynamic attach policies.
Risks to manage
  • Semantics transparency must be verified for arbitration and clock stretching.
  • Over-aggressive edge acceleration can trade for overshoot/glitches (budget-dependent).
  • Per-segment pull-up strategy must be consistent with the segmentation boundary.
Verify gates
  • Trunk and each segment meet rise-time budget. Pass: tr_trunk/seg < X.
  • Arbitration + stretching behave deterministically. Pass: no unexpected NACK/timeout.
  • Low-level margin remains valid across corners. Pass: VOL < X.
Topology C — Cascaded segmentation (long cable / multi-board chains)
When to use
  • The bus spans multiple physical zones (backplanes, chassis partitions, remote sensor pods).
  • Far-end capacitance must be kept from dominating the trunk edge budget.
  • Isolation must be “progressive” so the system degrades gracefully.
Risks to manage
  • Each stage changes waveform shape; cumulative effects must be measured per stage.
  • Fault isolation policy must be explicit (which stage detaches first and how diagnosis is done).
  • Corner cases across temperature/voltage amplify stage-to-stage differences.
Verify gates
  • Each stage meets local rise-time and VOL margin. Pass: stage tr/VOL < X.
  • Detaching one stage restores upstream stability. Pass: recovery is repeatable.
  • Diagnosis can identify the failing segment. Pass: isolate step is deterministic.
Topology D — I³C hub + I²C legacy island (mixed system boundary)
When to use
  • I³C trunk performance is needed while legacy I²C devices must remain supported.
  • Legacy segments are heavy in capacitance and should not drag the trunk timing budget.
  • System benefits from managed attachment and event aggregation.
Risks to manage
  • Compatibility scope expands; validation matrix grows (keep requirements explicit).
  • Legacy island pull-up and timing must be stable without impacting the trunk.
  • Protocol details (CCC/DAA) remain out of scope here; only boundary behavior matters.
Verify gates
  • Legacy island does not drag trunk timing. Pass: trunk tr < X with island attached.
  • Required management behavior exists. Pass: required features present.
  • Faults remain local to the island. Pass: isolate without trunk reset.
Critical note for multi-master systems

After segmentation, explicitly define which endpoints remain in the same arbitration domain. If the arbitration domain is split, semantics checks (arbitration visibility, clock stretching, and “hold” behavior) become mandatory in the next section.

4 segmentation topologies Four-quadrant block diagram showing switch-attached branches, buffered fan-out, cascaded segmentation, and I3C hub with a legacy I2C island. Reusable segmentation topologies Trunk (thick) · Branch (thin) · Isolation point (module) · Fault stays local (red tag) A) Switch/Mux branches B) Fan-out buffers C) Cascaded segments D) I³C hub + legacy island MUX DEV DEV OFF FAULT BUF BUF SEG SEG SEG SEG SEG SEG LOAD FAULT HUB Legacy I²C DEV DEV
Diagram: four topologies provide different isolation boundaries—choose based on whether the dominant problem is RC, topology/hot-plug, distance, or mixed I³C + legacy integration.

H2-5 · Arbitration hold & clock stretching (segmentation pitfalls)

After segmentation, a bus can look electrically “alive” while protocol semantics silently break. The most expensive failures are caused by arbitration visibility, clock stretching transparency, and whether upstream logic can hold line states when the downstream domain is unresolved.

Incident #1 — “Ghost ACK / random address collisions” in multi-master
Symptom: sporadic writes go to the wrong target; captures show no “clean” contention.
Root cause: segmentation split the arbitration domain, so wired-AND conflicts become invisible upstream.
Quick proof: inject a controlled conflict on one side; confirm whether the other side sees the same line level change (within < X).
Design lesson: arbitration requires a single electrical domain; buffering can “hide” conflicts unless explicitly supported.
Incident #2 — Downstream stretches SCL, upstream continues (byte misalignment)
Symptom: intermittent “shifted bytes,” state machines drift, or repeated NACKs after a stretch event.
Root cause: missing/insufficient arbitration hold; upstream produces edges while downstream still holds or is unresolved.
Quick proof: force a known stretch (device busy); verify upstream SCL remains low and no additional clocks are emitted (hold works).
Design lesson: “hold” is semantic consistency, not just propagation delay.
Incident #3 — One stuck-low device kills the whole system
Symptom: SDA/SCL stays low; even “healthy” branches become unreachable.
Root cause: segmentation boundary cannot isolate a stuck segment (no isolate/timeout path or boundary is placed incorrectly).
Quick proof: short SDA low in a branch and verify whether the trunk can still operate other branches (recovery < X ms).
Design lesson: “fault containment per segment” must be validated as a gate, not assumed.
Six yes/no questions to ask before committing a segmented design
1) Do all potential arbiters remain in the same electrical arbitration domain?
Why: wired-AND arbitration only works when all contenders share the same line state.
Verify: simultaneous START + forced conflict; Pass: contention is visible to both sides within < X.
2) Does segmentation preserve “line-level truth” (no hidden conflicts) across the boundary?
Why: a hidden LOW can turn into a “ghost ACK” or misdirected write.
Verify: assert LOW on one side; Pass: the other side reports the same level (delay < X).
3) Is clock stretching transparent across the boundary (SCL held LOW means upstream pauses)?
Why: stretching is a timing contract; “accelerating” SCL can break byte framing.
Verify: force downstream stretch; Pass: upstream SCL remains LOW and no extra clocks appear.
4) When downstream is unresolved, can upstream hold the required line states (arbitration hold)?
Why: without hold, upstream may “walk forward” while downstream is still holding or arbitrating.
Verify: induce unresolved window; Pass: upstream stays consistent (no state advance) until release.
5) Can a stuck-low segment be isolated (timeout/isolate path exists)?
Why: one bad device must not keep the entire system down.
Verify: force stuck-low in a branch; Pass: trunk recovers and other segments remain reachable within < X ms.
6) Is the pull-up strategy aligned with segmentation boundaries (no “local fast / global slow” mismatch)?
Why: line-state holding and stretching behavior can become inconsistent when pull-ups fight the boundary.
Verify: measure rise-time per segment with a consistent method; Pass: worst segment still meets budget (< X).
Arbitration: wired-AND requires one electrical domain

I²C arbitration is a physical property of an open-drain line: if any contender drives LOW, the line is LOW. Segmentation that creates separate upstream/downstream electrical domains can make a conflict invisible on one side, causing “no-arbitration” behavior even when two masters overlap in time.

Arbitration hold: semantic consistency when downstream is unresolved

Arbitration hold is the behavior that prevents upstream progression when downstream arbitration or timing is not resolved. When a downstream segment is stretching or holding a state, upstream must preserve consistent line levels and avoid emitting new edges that would fragment the transaction timeline across domains.

Clock stretching pitfalls: “SCL shaping” can be harmful

Some buffering or shaping behaviors effectively “clean up” or accelerate SCL edges. If such behavior masks a legitimate stretch (SCL held LOW by a device), the upstream master can advance clocks prematurely. Treat stretching transparency as a mandatory validation gate for any segmented architecture.

Stuck-bus containment: isolate/timeout entry points

In a segmented bus, a stuck-low endpoint should be containable to its segment. The architecture should include an isolate or timeout mechanism so the trunk can recover without a full system reset. Firmware recovery pulse details are intentionally out of scope; only the presence of a recovery entry point is required here.

Scope guard (kept out of this page)
  • Protocol fundamentals, register-level configuration, and firmware state-machine details.
  • Exact “recovery clock pulse” sequences (only the need for a recovery entry point is stated here).
  • Deep EMI theory (only engineering-facing reminders appear in the timing shaping section).
Arbitration domain vs segmented domains Left: single domain wired-AND arbitration. Right: segmented domains where lack of hold causes upstream edges while downstream remains held low. Arbitration domain vs segmented domains Wired-AND arbitration needs one electrical domain. Segmentation requires hold to keep semantics aligned. Single arbitration domain M1 M2 SDA SCL wired-AND contention visible Segmented domains (hold required) M BUF/SW HOLD SDA SCL DOMAIN DEV STRETCH without hold → misaligned edges downstream held LOW
Diagram: arbitration needs one electrical domain; segmentation requires hold so upstream does not advance while downstream is stretching or unresolved.

H2-6 · Timing shaping toolkit (accelerator · slew control · spike filter)

Timing shaping is a set of practical knobs that change edge behavior and error susceptibility. Each knob must be tied to a measurable goal and a validation gate. Shaping must also align with the pull-up strategy and segmentation boundary, otherwise local improvements fail to fix the global worst segment.

Quick selector (choose the knob by waveform signature)
  • Slow rise / threshold dither → consider rise-time accelerator or segmentation.
  • Overshoot / ringing / strong coupling → consider slew-rate control (trade speed for stability).
  • Short spikes causing false triggers → consider spike/glitch filter (avoid over-filtering).
Tool #1 — Rise-time accelerator
ACCEL
Purpose

Reduce slow rising edges caused by Rp·Cbus so the signal crosses thresholds decisively.

Primary win
  • Faster threshold crossing reduces ambiguity and intermittent sampling disagreements.
  • Less dependency on aggressive Rp reduction (protects VOL margin).
Risk
  • Can increase overshoot/ringing on long lines or stub-heavy topologies.
  • May create fast transients that resemble spikes if the boundary is poorly placed.
  • Edge-rate changes correlate with EMI risk (engineering reminder only).
Verify gates
  • Rise-time meets budget. Pass: tr(30–70%) < X.
  • Overshoot/ringing is controlled. Pass: overshoot < X mV (or no false transitions).
  • Worst branch remains stable. Pass: no timeouts/NACK in stress run.
Tool #2 — Slew-rate control
SLEW
Purpose

Reduce edge aggressiveness to improve stability in long harnesses or strongly coupled environments.

Primary win
  • Lower ringing/overshoot reduces false edge interpretations and cross-coupling sensitivity.
  • Improves robustness when topology cannot be easily simplified.
Risk
  • Too much slew reduction consumes timing margin and reintroduces threshold dwell.
  • Can shift the “worst segment” from one branch to another if pull-ups are inconsistent.
Verify gates
  • Rise-time still meets class budget. Pass: tr < X.
  • Ringing/overshoot reduced. Pass: no false transitions under stress.
  • Across temperature/voltage, behavior stays deterministic. Pass: no intermittent retries/timeouts.
Tool #3 — Spike / glitch filter
FILTER
Purpose

Suppress short spikes that should not be interpreted as real edges (false triggers).

Primary win
  • Improves robustness in noisy environments where spikes cluster around thresholds.
  • Reduces susceptibility to attach transients and short coupling bursts.
Risk
  • Over-filtering can swallow valid edges or add delay that breaks corner timing.
  • Filters must be validated alongside stretching/hold behavior (avoid semantic side-effects).
Verify gates
  • Spikes below a window are rejected. Pass: < X ns does not toggle logic.
  • Valid edges are preserved. Pass: functional tests pass across corners.
  • Added delay remains budgeted. Pass: propagation < X.
Hard reminder: shaping must align with pull-ups and the segmentation boundary

Shaping changes local edges, but system reliability is set by the worst segment. If pull-up placement/resistance does not match the segmentation boundary, “local fast / global slow” behavior can appear.

Quick check: measure rise-time per segment using the same method and threshold; the slowest segment defines the global constraint.

Three shaping knobs, three waveform signatures Three-row waveform comparison: slow rise, accelerated rise with overshoot, and spike filtering removing short glitches. Three shaping knobs, three waveform signatures ACCEL speeds threshold crossing · SLEW trades speed for stability · FILTER removes short spikes (avoid over-filter) slow rise ACCEL FILTER threshold threshold threshold dwell near threshold → ambiguity faster crossing → watch overshoot/ringing short spike → reject spike removed SLEW trade speed for stability
Diagram: choose shaping by waveform signature; validate with rise-time, overshoot/glitch behavior, and corner stress gates.

H2-7 · I³C-specific considerations (I³C main bus + legacy I²C island)

A common real-world topology is an I³C controller on the main bus with legacy I²C devices attached as an island. The engineering goal is not “maximum speed everywhere,” but containment: keep legacy capacitance and slow edges inside the island while preserving a high-performance trunk.

Only the I³C differences that matter for mixed systems
1) More “active” physical behavior (push-pull phases exist)
Impact: main-bus edges can be tighter and faster, but the legacy island remains open-drain + pull-up dominated.
Meaning: clearly separate the high-performance trunk from the legacy island boundary.
2) Higher speed tightens timing and edge budgets
Impact: dragging large Cbus/stubs into the trunk collapses performance and increases corner sensitivity.
Meaning: the trunk must not be defined by the slowest legacy branch.
3) Mixed systems depend on an explicit compatibility boundary
Impact: shaping/filtering/segmentation can unintentionally change semantics (stretching/hold behavior).
Meaning: treat boundary behavior as a validation gate (tie to arbitration/hold checks).
4) System manageability often drives hub/bridge selection
Impact: events/interrupts and legacy device groups must remain diagnosable and containable.
Meaning: prefer architectures that keep island-level observability (port/island attribution).
Five rules for a stable I³C trunk with a legacy I²C island
Rule 1 — Treat legacy I²C as an island, not as an extension of the main bus
Why: legacy Cbus and slow edges should not set trunk timing.
Quick check: measure rise-time at trunk vs island (same method/threshold).
Pass criteria: trunk tr < X and remains unchanged when island load varies.
Rule 2 — Make the isolation boundary explicit (who is in the high-performance domain)
Why: ambiguous boundaries produce “sometimes-fast, sometimes-legacy” behavior across corners.
Quick check: disconnect/disable the island path and re-run trunk stability.
Pass criteria: trunk error rate / retries do not change beyond X%.
Rule 3 — Hub/bridge must support legacy on a dedicated port (hard requirement)
Why: “I³C capable” is not equivalent to “mixed system safe.”
Quick check: create a legacy stretch/busy condition and observe trunk behavior.
Pass criteria: trunk remains semantically correct (no upstream advance; hold behavior meets X).
Rule 4 — Prefer island-level observability (events/interrupt attribution)
Why: mixed systems fail in ways that require “which island/port caused it” diagnostics.
Quick check: trigger events from legacy endpoints and confirm attribution.
Pass criteria: event source is attributable within X (port/island granularity).
Rule 5 — Apply shaping with “trunk first” logic (do not force one waveform everywhere)
Why: a stable trunk can coexist with a slow island; global shaping often optimizes the wrong segment.
Quick check: A/B test shaping enable/disable while varying island load.
Pass criteria: trunk stability improves and island behavior does not create new semantic failures (< X).
Scope guard (intentionally not expanded here)
  • Full DAA / CCC step-by-step details (only the need for hub/bridge support is stated).
  • Register-level programming and firmware transaction scripts.
  • Deep EMI theory (kept as engineering reminders only).
I³C main bus + I²C legacy island Main I3C trunk with high performance devices. A hub/bridge isolates a legacy I2C island that contains large capacitance and many endpoints. I³C main bus + I²C legacy island Keep legacy capacitance inside the island; preserve a high-performance trunk. I³C MAIN BUS (FAST) I³C MASTER SDA SCL I³C DEV I³C DEV I³C DEV HUB / BRIDGE isolation BOUNDARY I²C ISLAND CAP-HEAVY SDA SCL I²C DEV I²C DEV I²C DEV Cbus Segmentation meaning in I³C: Keep slow edges and large C inside the island Trunk stays high-performance and predictable
Diagram: isolate legacy load inside an island; validate that trunk behavior remains stable as island load varies.

H2-8 · Layout & SI rules (pull-ups, stubs, return path, test points)

These rules focus on “enough SI” for I²C/I³C segmentation: pull-up placement, stub control, reference/return path awareness for cross-board or harness links, and test-point strategy to quickly identify which segment is dragging the bus down.

Do
  • Place pull-ups on the core arbitration segment. Why: avoids a floating trunk when a branch is disconnected.
  • Treat long branches as selectable (use a switch to disconnect by default). Why: stubs and cable capacitance should not load the trunk when unused.
  • Keep stubs short and route SDA/SCL with a consistent reference. Why: long stubs increase ringing and threshold ambiguity.
  • Add simple damping only when needed (e.g., small series R near the source of the problematic segment). Why: reduces overshoot/coupling without turning into a high-speed SI exercise.
  • If the system crosses boards/harnesses, plan the return path explicitly. Why: ground bounce/common-mode shifts can cause false threshold decisions even at low speed.
  • Reserve both TP_main and TP_branch test points. Why: enables one-shot comparison to locate the segment that collapses rise-time.
  • Use a consistent measurement method across segments (same threshold, probe loading, and capture settings). Why: inconsistent probing can manufacture “differences” that are not real.
Don’t
  • Don’t assume “slow bus” means SI does not matter. Why: cross-board/harness links can turn ground shifts into false edges.
  • Don’t place the only pull-up inside a branch that can be disconnected. Why: the trunk can become undefined and fail intermittently.
  • Don’t allow a long, always-connected stub to define the trunk behavior. Why: the worst stub becomes the global constraint.
  • Don’t “fix” everything with aggressive pull-up reduction without checking VOL margin. Why: stronger pull-ups can overload sink capability and create low-level violations.
  • Don’t mix measurement points and conclude a segment is bad without a trunk/branch A/B. Why: probe capacitance and thresholds can distort comparisons.
  • Don’t borrow high-speed differential SI rules here. Why: this section stays on single-ended I²C/I³C “enough SI” practices.
Quick verification gates (layout + segmentation)
  • Compare tr at TP_main vs TP_branch. Pass: worst segment tr < X and is identifiable in one comparison.
  • Disconnect the long branch (switch open) and re-check trunk. Pass: trunk tr and stability do not degrade beyond X.
  • Apply a large di/dt event (system load step) and observe thresholds. Pass: no false transitions / no added retries under stress.
Main trunk vs stubs vs test points A trunk with pull-ups on the core arbitration segment, two branches (short and long), a switch for the long branch, and test points TP_main and TP_branch. Main trunk vs stubs vs test points Pull-ups on the core segment · Keep stubs short · Switch long branches · TP_main + TP_branch for fast diagnosis CORE TRUNK (ARBITRATION) SDA SCL PULL-UP TP_main SHORT BRANCH A SWITCH LONG BRANCH B cable/stub TP_branch REF GND / RETURN PATH cross-board/harness → avoid threshold misreads from ground shifts
Diagram: keep pull-ups on the core segment, control stubs with switching, and instrument both trunk and branches for fast root-cause isolation.
Scope guard
  • No high-speed differential SI (eye diagrams, S-parameters, impedance targets).
  • No register-level tuning sequences for specific parts.
  • Only “enough SI” rules for single-ended I²C/I³C segments and bring-up diagnostics.

H2-9 · Fault containment & bus recovery (stuck-low, hot-plug, leakage)

The most expensive failure mode is not “a slower bus,” but a single bad endpoint pulling SDA/SCL into an unrecoverable state. Segmentation is most valuable when it can contain faults to one segment, keep the trunk alive, and provide a deterministic recovery path.

Practical containment principle
  • Contain first: isolate the suspect branch so the trunk stays functional.
  • Recover second: attempt recovery on the isolated segment (timeouts / recovery pulses / re-attach gating).
  • Re-attach only after pass: re-enable a segment only when it meets the pass gate (X).
Scenario A — stuck-low (SDA/SCL held low)
Symptom signature
  • SDA or SCL remains low beyond X ms (X = system-defined timeout).
  • All transactions time out; enumeration or polling stalls.
  • TP_main vs TP_branch comparison shows whether the fault is global or segment-local.
Fast triage points
  • TP_main: confirm trunk line state and pull-up behavior.
  • TP_branch: identify the dragging segment without moving probes repeatedly.
  • Segment health flag (if supported): stuck detect / timeout indication (no register details here).
Containment & recovery
  • Isolate the suspect segment (switch open / isolate mode) to restore trunk service.
  • Recover within the isolated segment using timeout and recovery pulses capability (implementation details omitted).
  • Re-attach gating: reconnect only after the segment passes the gate.
Pass criteria (placeholders): trunk restores high level within X ms; trunk tr < X; isolated segment completes N clean transactions without re-stall.
Scenario B — hot-plug transient (insertion / cable attach)
Symptom signature
  • Narrow spikes/glitches at insertion cause false START/STOP or state-machine confusion.
  • After insertion, trunk tr slows due to added capacitance or new stub geometry.
  • Failure is rate-dependent (insert speed, cable length, connector type).
Fast triage points
  • Single-shot capture at TP_main and TP_branch during insertion.
  • Quantify glitch width/amplitude using a consistent threshold (avoid “it looks fine” judgment).
  • A/B: branch disconnected vs connected to confirm the transient origin segment.
Containment & recovery
  • Default-disconnect long branches: connect only after insertion settles.
  • Use staged attach: connect branch first, then enable endpoint group (if topology allows).
  • Verify trunk remains stable when branches are toggled.
Pass criteria (placeholders): insertion produces 0 false events on trunk; glitch < X ns (or filtered safely); trunk tr change < X% after attach.
Scenario C — partial short / leakage (mid-level “never reaches high”)
Symptom signature
  • VOH plateaus at an intermediate level (not low, but not reliably high).
  • Slow rise with threshold “chatter” around VIL/VIH causes random NACK / arbitration anomalies.
  • Different thresholds (logic analyzer vs MCU input) produce inconsistent bit decisions.
Fast triage points
  • Compare TP_main vs TP_branch: mid-level behavior localizes to a segment if containment is effective.
  • Use consistent VOH / rise-time extraction method across segments to avoid false conclusions.
  • Log environment correlation (humidity/contamination exposure) as a diagnostic field.
Containment & recovery
  • Isolate the suspect segment to keep the trunk within valid thresholds.
  • Binary search within the segment: disconnect sub-branches or endpoint groups to find the leakage source.
  • Re-attach only after VOH and threshold crossings return to stable behavior.
Pass criteria (placeholders): trunk VOH > X with stable crossings; segment VOH plateau disappears; tr returns below X under the same probe loading.
Scope guard
  • ESD/surge component selection is not expanded here (handled by the protection page).
  • Firmware scripts for recovery pulses are not detailed (only capability and gating are described).
  • Production ATE flow is not covered (handled by the test topic pages).
Contain the fault to one segment Left panel shows a single fault pulling the entire bus down without segmentation. Right panel shows segmentation isolating the faulty segment while trunk remains operational. Contain the fault to one segment Left: no segmentation → whole bus down · Right: segmentation → isolate the bad segment NO SEGMENTATION WITH SEGMENTATION CTRL SDA SCL DEV DEV FAULT SYSTEM DOWN ✕ CTRL TRUNK ISO ISO SEG-A SEG-FAULT SEG-B ISOLATE TRUNK RUNNING ✓
Diagram: segmentation enables isolate/timeout/recover behaviors so a single bad endpoint does not collapse the entire system.

H2-10 · Validation & measurement (SOP + pass gates)

Validation must prove two outcomes: (1) segmentation improves the trunk without hiding semantic failures, and (2) the improvement is real (not an instrument artifact). The SOP below provides a repeatable before/after workflow with explicit pass gates (X).

Validation SOP (Steps 1–7)
Step 1 — lock measurement points & method
Action: define TP_main / TP_branch and a single rise-time and threshold method.
Record: probe type, bandwidth/limit, threshold reference, capture settings.
Pass criteria: repeatability error < X% under identical setup.
Step 2 — baseline without segmentation
Action: measure trunk tr, VOL margin, glitch activity, stretching/hold behavior (if applicable).
Record: tr_main, VOL_main, glitch_main, retries/timeouts count.
Pass criteria: baseline is quantified (e.g., tr_main > X or glitch > X ns).
Step 3 — enable segmentation (branches default-disconnected)
Action: open/disable branches and verify trunk health with minimal loading.
Record: tr_main_after, retries/timeouts_after.
Pass criteria: trunk improves to tr < X and stability change > X.
Step 4 — attach segments one by one (impact mapping)
Action: connect one segment at a time; measure TP_branch and the delta impact on TP_main.
Record: tr_branch, Δtr_main per segment, error deltas per segment.
Pass criteria: no single segment drives trunk beyond X (or Δtr_main < X).
Step 5 — semantic gates (arbitration / stretching / hold)
Action: run conflict and stretch scenarios if the system supports multi-master or stretching.
Record: hold correctness events, stretch timing, “upstream advance” violations count.
Pass criteria: hold behavior meets X; no semantic violations under stress.
Step 6 — system stress (corners that matter here)
Action: temperature corners, supply ramp behavior, hot-plug (if present) with TP_main/branch monitoring.
Record: failures per corner, trigger conditions, waveform snapshots.
Pass criteria: failures ≤ X; hot-plug false events = 0 (if required).
Step 7 — sign-off & logging completeness
Action: freeze topology/config versions and archive measurement artifacts with consistent naming.
Record: topology revision, segmentation settings, key metrics summary, stress results.
Pass criteria: data completeness = 100%; results reproducible by a second operator.
Instrumentation pitfalls (avoid false “improvement”)
  • Probe capacitance changes rise-time → use the same probe and loading for all A/B comparisons.
  • Different thresholds create different “bit decisions” → standardize a threshold method per project.
  • Insufficient sampling/bandwidth hides narrow glitches → set minimum capture capability (X).
  • Inconsistent triggering misses insertion transients → use single-shot with insertion trigger strategy.
  • Changing measurement definition (10–90 vs fixed threshold) changes numbers → lock the definition in Step 1.
Before/After measurement points + pass gates Flowchart showing baseline measurement, enabling segmentation, measuring main and branch points, semantics validation, stress testing, and final sign-off with pass gates. Before/After measurement points + pass gates Baseline → Segment → Measure main → Measure branch → Semantics → Stress → Sign-off BASELINE measure SEGMENT enable MEASURE TP_main MEASURE TP_branch SEMANTICS hold/stretch STRESS TESTS temp / ramp / plug SIGN-OFF archive + freeze tr < X Δtr < X hold OK glitch < X ns retries < X TP_main TP_branch
Diagram: standardize measurement first, then validate trunk improvement, segment impact mapping, semantic correctness, stress resilience, and sign-off artifacts.
Scope guard
  • Not a full production ATE flow (only engineering validation and sign-off artifacts).
  • No deep EMI theory; only observable waveform gates and repeatable setup guidance.
  • No register-level scripts; the focus is measurable outcomes and pass gates.

Engineering checklist (copy/paste sign-off)

Use this as a design gate to prevent “segmentation works on bench but fails in system” regressions. Each item is phrased as an action and maps to a measurable pass gate.

Gate 1 · Topology
  • Verify the arbitration domain boundary (who shares the same wired-AND).
  • Ensure the trunk keeps valid pull-ups when branches are disconnected.
  • Confirm the “default state” (power-up deselect / isolate) matches hot-plug needs.
  • Decide whether address conflicts are solved by switch/mux or by isolation topology.
Gate 2 · Timing
  • Measure tr/tf on trunk and each branch (same probe method).
  • Check VIL/VIH margin at the real receiver threshold (not only at scope 50%).
  • Validate clock stretching transparency (no “SCL acceleration” side-effects).
  • Stress worst-case: max devices + longest branch + lowest pull-up effective.
Gate 3 · Fault
  • Ensure stuck-bus detect + timeout exists for any “field-recoverable” system.
  • Isolate a failing branch without collapsing the trunk (segment containment).
  • Confirm recovery capability (disconnect + recovery pulses strategy).
  • Verify Ioff / powered-off behavior (no back-power via SDA/SCL).
Gate 4 · Layout
  • Place pull-ups on the “core arbitration” segment (avoid orphaned pull-ups on gated branches).
  • Minimize stub length; use switch gating for long branches / removable modules.
  • Reserve TP_main + TP_branch test points (same reference ground).
  • Review return paths across connectors/cables (ground bounce → threshold errors).
Gate 5 · Test
  • Log temperature / VDD / cable length / device count / pull-up values.
  • Record probe type and loading (scope C can dominate tr).
  • Run multi-master arbitration + clock stretching scenarios (if applicable).
  • Validate hot-plug transient and post-plug bus health (if applicable).

Sign-off artifacts (keep these with the design package)

  • Before/after waveforms: TP_main + TP_branch (same measurement method).
  • Pass table (single page): tr/tf margin, VIL/VIH margin, stretching behavior, stuck-bus isolation result.
  • Topology snapshot: segment boundaries, pull-up locations, default states, hot-plug policy.
  • Fault drill result: one “stuck-low” reproduction and recovery confirmation.
Checklist gates (what to sign off) Five sequential gates: topology, timing, fault, layout, and test, each with key keywords to confirm before release. Checklist gates (sign-off flow) Gate-by-gate: confirm → measure → isolate → layout → record Topology Arbitration domain Pull-up location Default isolate Timing tr/tf margins Stretching OK Threshold check Fault Stuck detect Isolate segment Recovery pulses Layout Short stubs TP_main/TP_branch Return path
Diagram: sign-off gates that keep segmentation, arbitration, and recovery behavior aligned with system requirements.

Applications & IC selection notes (with example material numbers)

Focus on selection logic for bus segmentation, cap-loading relief, arbitration safety, timing shaping, and fault containment. Material numbers below are reference candidates (non-exhaustive).

Long trunk / multi-board / cable-like runs

  • Pain point: large effective C and noise pickup collapse rise-time and margins.
  • Best-fit: buffer/repeater; consider differential extension when noisy.
  • Must-check: supported bus speed class, clock-stretch transparency, segment C limit, Ioff.
  • Must-verify: TP_main vs TP_remote tr/tf delta; worst-case sink margin; probe loading.
  • Example material numbers:
    NXP P82B96 · bus buffer/extender (long-run friendly)
    NXP PCA9615DP / PCA9615DPZ · differential I²C buffer
    TI TCA9617A · FM+ repeater/buffer

Hot-plug modules / removable branches

  • Pain point: plug-in capacitance + transients can hang the bus or corrupt frames.
  • Best-fit: hot-swap buffers and/or default-off switches per branch.
  • Must-check: power-up default isolation, idle/STOP detect, stuck-bus timeout behavior.
  • Must-verify: hot-plug transient at TP_main; post-plug stuck-low drill; recovery success criteria.
  • Example material numbers:
    TI TCA4307 · hot-swappable buffer with stuck-bus recovery
    NXP PCA9511A · hot-swappable I²C/SMBus buffer
    ADI (Linear) LTC4300A-1 / LTC4300A-2 / LTC4300A-3 · hot-swap 2-wire buffers

Sensor-dense boards / address conflicts

  • Pain point: many targets increase C; identical sensors create address conflicts.
  • Best-fit: switch/mux to segment branches and select one island at a time.
  • Must-check: channel count, power-up deselect behavior, reset pin, Ron/Coff impact.
  • Must-verify: trunk waveform improvement with branches deselected; fault isolation per channel.
  • Example material numbers:
    NXP PCA9548A · 8-channel I²C switch (RESET)
    TI TCA9548A / TCA9548A-Q1 · 8-channel switch (RESET)
    NXP PCA9546A / TI TCA9546A · 4-channel switch (RESET)
    NXP PCA9544A · 4-channel mux with interrupt aggregation

Dual-controller / reliability arbitration

  • Pain point: two controllers contend; segmentation may break the “same arbitration domain” assumption.
  • Best-fit: controller arbiter/demux ahead of the shared downstream bus.
  • Must-check: arbitration semantics, handoff behavior, transparency to downstream timing.
  • Must-verify: forced contention test; winner/loser handover without bus corruption.
  • Example material numbers:
    NXP PCA9641 · 2-channel I²C master arbiter
    TI TCA9803 · buffer/repeater family that supports clock stretching and multi-master arbitration methods (verify fit vs system rails)

Fault containment / stuck-bus recovery priority

  • Pain point: one bad device holds SDA/SCL low → system-wide lockup.
  • Best-fit: devices with disconnect + recovery support; combine with switch isolation.
  • Must-check: stuck detect threshold/time, disconnect behavior, recovery pulse policy, reset pins.
  • Must-verify: reproducible stuck-low drill (at least one target forced low); trunk stays alive.
  • Example material numbers:
    TI TCA4307 · disconnect + recovery pulses
    ADI (Linear) LTC4313-1/-2/-3 · stuck-bus disconnect/recovery (family variants)
    NXP PCA9548A · per-channel isolation + RESET assist (when the fault is on a branch)

I³C main bus + legacy I²C islands

  • Pain point: legacy islands add heavy C/slow edges; main I³C trunk needs performance.
  • Best-fit: I³C hub for aggregation + segmentation boundaries; keep legacy on isolated ports.
  • Must-check: number of controller/target ports, legacy I²C support path, default isolation and diagnostics.
  • Must-verify: main trunk stays within timing budget when islands are populated; island faults do not propagate.
  • Example material numbers:
    NXP P3H2840HN · I³C hub (2 controller ports + 8 target ports)
    NXP P3H2440HN · I³C hub (2 controller ports + 4 target ports)

Quick selection logic (text version)

  1. If the main failure is too much capacitance / slow rise-time, start from a buffer/repeater and re-check multi-master + stretching behavior.
  2. If the main failure is too many branches / address conflicts / removable modules, start from a switch/mux with power-up deselect and reset policy.
  3. If the system must survive stuck-bus faults, require disconnect + recovery and prove segment containment by drill.
  4. If the system is dual-controller, arbitrate at the controller boundary (avoid “hidden contention” across segments).
  5. If the system is I³C + legacy I²C, keep legacy as isolated islands; use a hub boundary to protect trunk performance.

Note: if mixed-voltage translation is the primary problem, treat it as a Level Translators decision (handled in the sibling page).

Selection flow: buffer vs switch vs hub A decision tree that maps common constraints to the recommended device class: buffer/repeater, switch/mux, I3C hub, or I2C arbiter. Selection flow (device class output) Keep the trunk healthy · keep arbitration semantics · contain faults Input constraints C too high / many branches / hot-plug / dual master / I³C+legacy Primary symptom Pick the dominant failure mode first Switch / Mux Many branches / address conflicts Key specs: power-up deselect · reset · Ron/Coff Buffer / Repeater Cap-load / rise-time limited Key specs: stretching · multi-master · C limit Fault / Hub / Arbiter Stuck-bus · I³C+legacy · dual master Key specs: disconnect · recovery · diagnostics Always prove TP_main vs TP_branch
Diagram: decision tree that outputs the first device class to evaluate, based on the dominant failure mode and system constraints.

Request a Quote

Accepted Formats

pdf, csv, xls, xlsx, zip

Attachment

Drag & drop files here or use the button below.

FAQs (troubleshooting without bloating the main text)

Each answer is fixed to four executable lines: Likely cause / Quick check / Fix / Pass criteria (thresholds use X placeholders to be filled by your system budget).

Same devices, different harness length → why does rise-time suddenly fail? What’s the first check? RC
Likely cause: Harness length increased effective C/RC and pushed SDA/SCL crossings into the receiver threshold “gray zone”.
Quick check: A/B compare TP_main rise-time with short vs long harness using the same probe/loading; confirm Δtr tracks harness length.
Fix: Segment the long branch (default-off switch/mux) or add a buffer/repeater on the boundary; re-evaluate pull-up placement on the core arbitration segment.
Pass criteria: tr_main < X and VIL/VIH margin > X at the real receiver threshold, with the longest harness installed.
Adding a buffer “fixed” rise-time but broke multi-master arbitration—why? ARB
Likely cause: The buffer segmented the bus into different electrical domains, so wired-AND contention was no longer “visible” to both masters.
Quick check: Force a controlled contention (two masters drive opposite bits) and observe whether both sides see the same SDA level at the same time (TP_main vs TP_branch).
Fix: Keep multi-master devices within the same arbitration domain, or use an explicit master arbiter upstream; require arbitration-hold / stretch transparency if segmentation is unavoidable.
Pass criteria: Under forced contention, the losing master detects arbitration loss within X bit times and no corrupted START/STOP is observed.
Clock stretching works on bench but fails with segmentation—what’s the first suspect? STRETCH
Likely cause: The segment device is not stretch-transparent (it “re-times” or accelerates SCL), so downstream stretch does not propagate upstream correctly.
Quick check: Trigger on SCL-low extension and compare SCL low width at TP_branch vs TP_main; any mismatch indicates stretch not being honored.
Fix: Select a buffer/switch explicitly specified to support clock stretching across the boundary, or relocate segmentation so the stretching target stays inside the same domain.
Pass criteria: For the maximum expected stretch, TP_main SCL-low width matches TP_branch within X% and no upstream protocol advance occurs.
Bus occasionally “stuck low” after hot-plug—how to isolate the guilty segment fast? FAULT
Likely cause: A hot-plug transient or a newly inserted device holds SDA/SCL low (hard short or latch-up), dragging the entire bus.
Quick check: Disable/isolated branches one-by-one (switch/mux deselect) while watching TP_main; the guilty segment is the one that restores TP_main first.
Fix: Use default-off branches for hot-plug, add timeout/isolation on segments, and only re-attach a branch after the trunk is confirmed healthy.
Pass criteria: Any single-branch stuck-low is contained; isolating the branch restores trunk idle-high within X ms.
Why does a logic analyzer show errors but the scope looks fine (threshold artifact)? MEAS
Likely cause: The logic analyzer input threshold or sampling behavior mis-classifies slow edges or ringing as extra transitions.
Quick check: Repeat capture with two different LA thresholds (or compare LA vs scope decode); correlate errors with crossings near the threshold band.
Fix: Use a threshold aligned to the real receiver, increase margin by reducing tr (segmentation/buffer) or damping overshoot (slew/series-R) rather than “trusting the tool”.
Pass criteria: With the agreed threshold method, decode mismatch rate is 0 across X frames under worst-case loading.
Rise-time accelerator reduces errors but causes sporadic NACK—how to detect overshoot/glitch? SHAPE
Likely cause: Edge acceleration improved tr but introduced overshoot/ringing that creates false edges or violates input filtering assumptions.
Quick check: Use a higher bandwidth scope setting (consistent probe) and trigger on small pulses; compare waveform at TP_main and at the far-end branch.
Fix: Add damping (series-R / slew control), shorten stubs or gate long branches; avoid accelerating edges on the “noisiest” segments.
Pass criteria: Overshoot < X mV and any glitch width < X ns at the receiver node, with NACK rate = 0 over X transactions.
With switch/mux, why does an “inactive branch” still affect the main bus (Coff/leakage)? SEG
Likely cause: “OFF” is not an open circuit; Coff and leakage still load the trunk, especially at higher speeds or with weak pull-ups.
Quick check: Measure tr_main with the branch physically removed vs mux-off; if improvement only occurs when removed, Coff/leakage dominates.
Fix: Choose lower Coff/leakage switches, reduce trunk pull-up impedance cautiously, or move segmentation boundary closer to the trunk to minimize stub capacitance.
Pass criteria: With all inactive branches OFF, Δtr_main < X compared to the “no-branch” baseline; leakage < X at temperature corners.
Why does increasing pull-up strength help edges but worsen low-level margin? RC
Likely cause: Stronger pull-ups increase sink current demand; weak devices or long returns cannot pull SDA/SCL low enough (VOL rises).
Quick check: Measure VOL at worst-case sink device during low; compare against VIL spec margin (not just “it looks low”).
Fix: Segment to reduce effective C (so pull-ups can be weaker), or ensure sink capability margin; avoid “brute-force pull-up” as a universal fix.
Pass criteria: VOL < X at IOL = X (worst-case) while tr_main < X under max loading.
How to choose pull-up placement in segmented buses (per-segment vs main-only)? LAYOUT
Likely cause: Pull-ups placed on a gated branch can disappear when the branch is OFF, leaving the trunk weak or floating.
Quick check: With all branches OFF, confirm the trunk still idles high cleanly and meets tr_main; if not, pull-ups are misplaced.
Fix: Place the primary pull-ups on the core arbitration segment; add local pull-ups only when a segment is electrically isolated and requires its own rise-time control.
Pass criteria: Trunk idle-high is stable with all branches OFF; tr_main < X and no false START/STOP observed during branch toggling.
I³C main + I²C legacy devices: first compatibility check when failures appear? I3C
Likely cause: Legacy I²C islands inject heavy C/slow edges or violate mode expectations if not properly isolated from the I³C-performance trunk.
Quick check: Isolate the legacy island and confirm the I³C trunk stabilizes; then re-attach and see whether failures correlate with island population.
Fix: Keep legacy devices behind a hub/bridge port designed for legacy behavior; ensure segmentation boundaries prevent island C from dominating the trunk.
Pass criteria: With legacy island attached, trunk timing margins remain within X of the trunk-only baseline; island faults do not propagate to the trunk.
Why does enabling a spike filter hide a real timing issue (masking vs fixing)? FILTER
Likely cause: The filter rejects short disturbances but does not improve true rise-time/margin; it can make the bus “look stable” until corner cases fail.
Quick check: Compare tr_main and threshold margin with filter ON vs OFF; if tr/margins don’t improve, the filter is only masking symptoms.
Fix: Address the root cause first (segmentation, pull-up strategy, damping/edge control), then use filtering only as an additional robustness layer.
Pass criteria: With filter OFF, tr_main < X and VIL/VIH margin > X; with filter ON, no valid edges are suppressed (pulse > X).
Production only: Monday failures—what environmental/log field is often missing for I²C buses? PROD
Likely cause: The real driver is an unlogged condition change (humidity/condensation, fixture/harness swap, probe setup drift, cleaning residue) that shifts RC/leakage/threshold behavior.
Quick check: Add A/B logging: harness ID/length, fixture revision, probe type, ambient RH/temperature, and device count; correlate failures to a single factor.
Fix: Freeze fixture/harness configuration or segment the sensitive branch; introduce a “bus health” gate measurement at TP_main before functional test.
Pass criteria: With the new log fields, root-cause correlation reaches > X% and Monday/weekday yield delta < X over X lots.