I²C Standard/Fast/Fast+/Hs Mode Rise-Time & Pull-Up Sizing
← Back to: I²C / SPI / UART — Serial Peripheral Buses
I²C speed grades are rise-time budgets: higher speed tightens the allowed tr, which tightens the (Rp × Cb) window.
This page provides a closed-loop workflow to estimate/measure Cb, compute Rp(min…max), and verify worst-node tr against numeric limits (1000/300/120 ns) for board-ready acceptance.
H2-1 · Scope & What This Page Solves (Speed grades + Rise-time compliance)
This page is a board-level guide for making I²C stable at higher speed grades by enforcing rise-time (tr) compliance and sizing pull-ups (Rp) against the total bus capacitance Cb. The outcome is a practical, measurable pass/fail loop.
Covered here
- Speed-grade ladder (Standard/Fast/Fast+/Hs) and what tightens at higher speeds (especially tr limits).
- Rise-time budgeting: translate spec limits into an Rp·Cb constraint that can be computed and verified.
- Pull-up sizing workflow: define the acceptable Rp window and validate by measurement at the worst node.
Not covered here (use sibling nodes)
| Topic (sibling page) | Why it is excluded here |
|---|---|
| 7-bit / 10-bit addressing & multi-master arbitration | Protocol/transaction correctness; not required to compute tr compliance. |
| Repeated START & page write timing | Transaction sequencing; independent of edge-rate budgeting. |
| Clock stretching policies & timeouts | System/firmware behavior; keep this page physical-layer focused. |
| Buffers / isolators / switches / long-reach extenders | These change Cb and edge behavior; treated as separate nodes to avoid overlap. |
Rule of thumb: if a topic does not directly affect tr, Rp, Cb, or how to measure pass/fail, it belongs to another node.
Key takeaway: speed grade sets tr(max); tr(max) sets the Rp·Cb budget; the budget decides compliance and stability.
Reader map (fast navigation)
Design flow
Start with the ladder (H2-2) → unify measurement definition (next chapters) → compute Rp window from tr(max) and Cb → verify at the worst node.
Bring-up flow
If 100 kHz works but 400 kHz fails, measure tr first (same definition across tools), then back-calculate Cb and tighten pull-ups or reduce capacitance contributors.
Production gating
Treat rise-time as a measurable acceptance metric: define the test node, capture tr, and enforce the mode limit with margin under worst-case loading.
H2-2 · Speed-Grade Ladder (Sm / Fm / Fm+ / Hs) — What Actually Changes
Higher I²C speed grades are not only “higher clock numbers”. The first-order change is that the allowed rise-time tr(max) becomes much tighter, which directly compresses the feasible Rp·Cb budget. When the budget is exceeded, the bus becomes non-compliant and unstable even if some tools still decode frames.
Speed-grade summary (focus on what tightens)
| Mode | Max bit rate | tr(max) | What gets stricter | Typical board fit |
|---|---|---|---|---|
| Sm (Standard) | 100 kbit/s | 1000 ns | Loose edge budget; still needs correct pull-ups | Larger Cb can be tolerated; long traces still risky |
| Fm (Fast) | 400 kbit/s | 300 ns | tr budget tightens ~3.3× vs Sm | Shorter routes, lower ESD capacitance, cleaner return paths |
| Fm+ (Fast+) | 1 Mbit/s | 120 ns | Edge budget tightens ~8.3× vs Sm | Strict Cb control; port protection must be low-C |
| Hs (High-speed) | 3.4 Mbit/s | Special timing | Different constraints and mechanisms; treat separately | Only when Cb is tightly managed and verification is rigorous |
Engineering interpretation: when moving from Sm → Fm → Fm+, the allowed tr(max) shrinks rapidly, so the same wiring, connectors, and ESD components that were “fine at 100 kHz” can become the dominant failure driver at higher grades.
What actually changes (board-level)
- Rise-time is the first-order constraint: tr(max) tightening compresses the allowable Rp·Cb product.
- Pull-up “window” becomes narrow: stronger pull-ups help tr but increase low-level current and can stress VOL/IOL margins.
- Protection and interconnect are amplified: ESD capacitance, connectors, cable stubs, and poor return paths consume the tr budget.
- Tool illusions appear: some analyzers decode with internal thresholds and filtering even when analog edges violate the mode limit.
- Hs-mode is not “Fm+ but faster”: treat it as a separate regime with special timing and validation requirements.
H2-3 · Timing Definitions & Measurement Rules (30–70% tr, thresholds, tool traps)
Rise-time compliance depends on using the same definition across tools and teams. For I²C, tr is evaluated between 0.3·VDD and 0.7·VDD (30%→70%). A waveform that “looks square” or decodes on a logic analyzer can still violate the mode limit. The pass/fail gate is tr ≤ tr(max) for the selected speed grade.
Timing glossary (minimum set for edge compliance)
| Term | Definition used here | Why it matters | Common trap |
|---|---|---|---|
| VIL / VIH | Threshold references at 0.3·VDD and 0.7·VDD | Defines the measurement window for tr; keeps results comparable across VDD. | Using a fixed voltage threshold (or default 50%) across different VDD rails. |
| tr | Rise time from 0.3·VDD → 0.7·VDD | Primary compliance metric that tightens across Sm/Fm/Fm+ speed grades. | Measuring 10–90% or “eyeballing” a square edge. |
| tf | Fall time (tool-defined window; keep consistent) | Excessive ringing/over-drive can cause multiple threshold crossings and unstable readings. | Ignoring probe grounding; long ground leads create artificial ringing. |
| tLOW / tHIGH | Low/high period portions of SCL | Helpful for locating timing margin loss; not the primary knob for tr compliance. | Mixing protocol issues with edge issues; check tr first. |
Gate rule: tr(30–70%) is measured against the speed-grade limit. The limit is a pass/fail boundary, not a recommendation.
Measurement checklist (repeatable, tool-agnostic)
- Pick nodes: capture at the controller pin neighborhood and at the farthest device pin neighborhood; use the worst node for acceptance.
- Probe discipline: minimize ground inductance (short ground spring or coax); avoid adding large probe capacitance that slows edges.
- Bandwidth & sampling: ensure the instrument does not “shape” the edge; confirm the same edge with consistent settings.
- Thresholds: set measurement levels at 0.3·VDD and 0.7·VDD for tr; avoid default 50% unless explicitly justified.
- Worst-case capture: measure under maximum loading (devices connected, longest route) and include voltage/temperature corners if relevant.
Tool trap warning
A logic analyzer can decode frames using internal thresholds and filtering even when analog tr violates the mode limit. Use oscilloscope tr(30–70%) as the compliance source of truth.
H2-4 · RC Rise-Time Model (tr ≈ 0.8473·Rp·Cb) + What Breaks It
With open-drain signaling and passive pull-ups, the rising edge is dominated by an RC charge curve. Under the same 30–70% definition used above, the rise time is approximately proportional to Rp·Cb. This turns a datasheet limit into a computable board budget.
Core engineering formulas (30–70% window)
Model: tr ≈ 0.8473 · Rp · Cb
Solve for pull-up ceiling: Rp(max) = tr(max) / (0.8473 · Cb)
Variables: Rp = effective pull-up resistance to VDD; Cb = total bus capacitance (devices + routing + connectors + protection + probe loading); tr = measured 0.3·VDD → 0.7·VDD rise time.
How to use this model (budget loop)
- Pick the target speed grade and take its tr(max) as the acceptance limit.
- Estimate or measure Cb at the worst segment of the bus.
- Compute Rp(max) and reserve margin for component spread and future attachments.
- Verify by measuring tr at the worst node; iterate by reducing Cb contributors or tightening pull-ups.
Where the constant comes from (keep the definition consistent)
- RC charge curve: V(t) follows an exponential toward VDD.
- Using 0.3·VDD and 0.7·VDD thresholds, the time difference between those crossings equals 0.8473·R·C.
- Changing the threshold window (e.g., 10–90%) changes the constant; do not mix definitions across measurements and calculations.
What breaks the simple RC assumption (and how to spot it)
- Active pull-ups / rise-time accelerators: the edge becomes piecewise (a visible “knee”); tr no longer scales linearly with Rp.
- Current-source or special Hs mechanisms: the rise is driven by controlled current rather than passive Rp.
- Distributed RC (long routes/cables): far-node edges show extra tailing; the bus is not a single lumped Cb.
- Reflections/ringing: multiple crossings at 0.3/0.7 thresholds produce unstable tr readings.
- Protection capacitance dominates: ESD/clamps add large C; computed Rp(max) collapses unexpectedly.
- Probe loading: changing probe type/grounding changes tr materially; measurement is altering the circuit.
Practical rule: when the rising edge is clearly not a single exponential (knees, plateaus, heavy ringing), use measured tr to back-calculate an effective C and treat the model as a budgeting guide rather than a precise predictor.
Next-step handoff (no expansion): use Rp(max) from this chapter together with low-level sink limits (VOL/IOL) to form the feasible pull-up window, then validate tr at the worst node.
H2-5 · Pull-Up Sizing Workflow (Rp(max) from tr, Rp(min) from VOL/IOL, then power)
Pull-up selection is an upper–lower bound problem. The upper bound comes from rise-time compliance (tr limit), while the lower bound comes from the weakest sink device on the bus (VOL/IOL). A final pass checks low-level power under realistic low-duty cycles and multi-device pull-down conditions.
Step 1–5 workflow (inputs → window → verification)
Inputs: target mode, tr(max), estimated/measured Cb, VDD, weakest device IOL(min) and target VOL(max), plus optional power/current budget (DLOW, traffic profile).
- Lock the mode gate: select Sm/Fm/Fm+ and take tr(max) as the pass/fail boundary.
- Acquire Cb: estimate or measure worst-segment bus capacitance (devices + routing + connector + protection + probe).
- Compute the ceiling: Rp(max) = tr(max) / (0.8473 · Cb) (30–70% definition).
- Compute the floor: Rp(min) = (VDD − VOL(max)) / IOL(min) using the weakest sink device on the bus.
- Choose & verify: pick Rp within the feasible window, then measure tr(30–70%) at the worst node to confirm tr ≤ tr(max).
Feasibility check
If Rp(min) > Rp(max), the window is empty. This cannot be fixed by resistor swapping alone; reduce Cb, lower the speed grade, or segment the bus (buffers/isolators/switches handled on other pages).
Margin rules (avoid “knife-edge” designs)
- Resistor tolerance: account for 1%/5% variation and parallel pull-ups (intentional or internal).
- VDD corners: higher VDD increases low-level current (and power) for a given Rp.
- Temperature: VOL/IOL capability and leakage shift across temperature; guard with the weakest corner.
- Protection & connectors: ESD arrays and connectors add C; a footprint-equivalent swap can move Cb materially.
- Future attachments: treat Cb as a budget; each added device/branch consumes margin.
- Measurement loading: probe capacitance and grounding can change the observed tr; validate with consistent method.
Quick reference: Rp(max) scale vs Cb (30–70% definition)
| Mode | tr(max) | Cb=50 pF | 100 pF | 200 pF | 400 pF |
|---|---|---|---|---|---|
| Sm | 1000 ns | ~23.6 kΩ | ~11.8 kΩ | ~5.90 kΩ | ~2.95 kΩ |
| Fm | 300 ns | ~7.08 kΩ | ~3.54 kΩ | ~1.77 kΩ | ~885 Ω |
| Fm+ | 120 ns | ~2.83 kΩ | ~1.42 kΩ | ~708 Ω | ~354 Ω |
Interpretation: as Cb rises into the hundreds of pF, Rp(max) collapses into the low-kΩ or sub-kΩ range for Fm/Fm+. This often eliminates the feasible window once VOL/IOL constraints and power are applied.
Low-level power check (why “strong pull-up” can hurt)
- Instantaneous low-level current: ILOW ≈ (VDD − VOL)/Rp.
- Average current: IAVG ≈ DLOW · ILOW, where DLOW depends on SCL duty and SDA traffic.
- Average dissipation: P ≈ VDD · IAVG. Consider the worst case when multiple devices pull low frequently (ACK-heavy traffic).
H2-6 · Bus Capacitance Budgeting (Cb) — Estimate, Measure, and Back-Calculate
Pull-up sizing is only as good as the Cb input. Cb must be treated as a budget (not a guess): estimate it from contributors, validate by measurement, and maintain a per-attachment table so speed-grade decisions stay predictable.
Cb budget template (add one line per contributor)
| Source | Estimate (pF) | Measured (pF) | Notes | Optimizable | Action |
|---|---|---|---|---|---|
| Device pins (ΣCpin) | (datasheet sum) | — | Include all attached devices on the worst segment | Partly | Reduce fanout / segment bus |
| PCB routing (trace) | (length model) | — | Long stubs inflate worst-node tr | Yes | Shorten / remove stubs |
| Connector / header | (vendor spec) | — | Can dominate at higher speed grades | Sometimes | Lower-C option |
| ESD / clamp devices | (datasheet C) | — | Often the largest hidden C contributor | Yes | Swap to low-C array |
| Cable / external module | (measured) | — | Treat as worst-case; varies with attachment | No | Reduce length / segment |
Treat Cb as a controlled budget. Each added device/branch consumes margin and reduces Rp(max), potentially forcing a speed downgrade.
Measure and back-calculate Cb (same 30–70% definition)
Back-calc: Cb ≈ tr / (0.8473 · Rp)
Procedure: use a known effective Rp, measure tr(0.3·VDD→0.7·VDD) at the worst node, then compute an effective Cb and compare to the budget table.
- Probe loading: probe capacitance and ground inductance can change the edge; use consistent probing.
- Non-passive pull-ups: active pull-ups or internal pull-ups change the effective Rp and invalidate the back-calc.
- Ringing/reflections: multiple threshold crossings make tr unstable; read tr on clean exponential segments.
- Distributed RC: different nodes show different tr; acceptance should use the worst node.
Note: tighter speed grades shrink tr(max) and therefore shrink the allowable Cb and Rp(max) window. Hs-mode typically requires much tighter per-line capacitance budgets than Sm/Fm/Fm+.
H2-7 · Edge Control & EMC (Series-R, damping, ESD capacitance, spike filters) — Without Breaking tr
Added protection can silently consume the rise-time budget: ESD arrays, RC filters, and series resistors raise the effective capacitance and/or resistance seen by the pull-up path. The result is often a bus that still “looks cleaner” on the scope yet fails at 400 kHz / 1 MHz because tr(30–70%) crosses the mode’s compliance boundary.
Card A · Series-R: placement rules and why it works
- Place near the edge aggressor: put series-R close to the node that launches the fast transition into a long trace/connector. This limits ringing and reduces EMI by lowering dI/dt at the launch point.
- Know what it costs: series-R plus downstream capacitance forms an extra RC. The bus can look “less noisy” while the downstream tr becomes slower and violates the speed-grade limit.
- Measure at the worst receiver node: verifying only near the controller can miss the slowest edge at the far device pin (after the series-R and connector stack).
- Keep it minimal and validate: start from the smallest value that damps ringing, then step up only if needed, re-checking tr(30–70%) each time.
Practical note: distributed RC means different nodes exhibit different rise times. Pass/fail should be based on the slowest compliant edge at the most heavily loaded node on the segment.
Card B · ESD arrays: the capacitance redline (why footprint swaps break 400 kHz)
Treat ESD capacitance as a first-class Cb budget line item. Any added shunt capacitance shrinks the pull-up ceiling: Rp(max) = tr(max) / (0.8473 · Cb). When Cb rises, the feasible window can disappear even if VOL/IOL are unchanged.
- Prefer low-C ESD parts on SDA/SCL, especially near connectors and test headers.
- Verify A/B by measurement: same board, same node, same 30–70% definition; compare tr before/after ESD swap.
- Budget for variants: connector/cable and ESD vendor changes can move effective Cb enough to force a speed downgrade.
Card C · “Looks clean but fails”: common misdiagnoses and first checks
Failure pattern
100 kHz stable; 400 kHz shows NACK/retries/hung-bus symptoms after adding ESD/RC/series-R.
- First check: measure tr(30–70%) at the worst receiver node and compare to the mode’s tr(max).
- If a “knee/step” appears: suspect distributed RC, stub loading, or a series-R placed between the pull-up and the dominant capacitance.
- If ringing crosses thresholds multiple times: focus on return-path continuity and connector transitions; “filtering harder” can worsen threshold dwell and timing margins.
- Fix direction: reduce effective Cb (low-C ESD, shorter stubs, fewer branches), re-position/adjust series-R, or downgrade the mode.
H2-8 · High-Speed Mode (Hs-mode) Practical Notes — Why SCL is Different (Current-source pull-up)
Hs-mode is not “just a faster I²C.” In many implementations, SCL high is assisted by a current-source pull-up to meet tighter rise-time constraints under small Cb. The practical focus remains the same: rise-time compliance, capacitance budgeting, and verification at worst transitions.
Card A · Hs-mode SCL vs SDA (mechanism → consequence → verification point)
- Mechanism: SDA typically remains dominated by the open-drain + pull-up network, while SCLH can be assisted by a current-source pull-up.
- Consequence: an apparently fast SCL edge does not guarantee SDA compliance; SDA often becomes the limiting edge when Cb rises.
- Verification: measure SCL and SDA separately and include “worst transition moments” (e.g., the first rise immediately after an ACK/release sequence).
Implementation note: Hs-mode timing parameters may be specified with explicit Cb conditions and separate limits for SCL and SDA edges. Use the correct parameter for the measured condition rather than carrying Fm/Fm+ intuition into Hs-mode.
Card B · When not to force Hs-mode (why stepping back to Fm+ is often better)
- High Cb reality: connectors, ESD, test headers, and branches make small-C budgets hard to sustain.
- Distributed loading: many devices and long stubs create node-to-node rise-time spread and harder worst-case verification.
- Always-on probing/fixtures: production or debug access can permanently add capacitance.
- Power constraints: stronger pull-up assistance can increase low-level current or complicate power budgeting.
- Margin management: if assembly or vendor variants shift Cb, a stable Fm+ design can outperform a fragile Hs-mode attempt.
Decision anchor: if the board-level Cb budget cannot be tightly controlled, prioritize Fm+ margin and repeatable compliance over Hs-mode headline speed.
H2-9 · Verification & Debug (Scope probes, analyzer traps, pass criteria, worst-case corners)
Verification must be accept/reject, not “looks OK.” Use a consistent rise-time definition (30–70%), measure at the worst receiving node, and validate across worst-case corners (low VDD, low temperature, maximum loading, and connector/cable variants).
Card A · Bring-up verification steps (baseline → load-up → corners → external links)
- Step 0 — lock the measurement definition: use tr(30–70%) with thresholds tied to the current VDD (0.3VDD / 0.7VDD). Set the scope trigger/measurement thresholds accordingly.
- Step 1 — no-external baseline: disconnect optional connectors/cables/fixtures. Measure at MCU pin and at the farthest device pin to establish intrinsic margin.
- Step 2 — progressive loading: add devices/branches one at a time. After each change, re-measure tr at the worst node and record margin to identify the dominant Cb contributor.
- Step 3 — worst-case corners: re-run the same measurements at lowest VDD, lowest temperature, and maximum loading (fully populated bus, worst connector/cable stack).
- Step 4 — external links: validate both sides of the connector (board-side and cable-side). Treat connector + cable + protection as part of the Cb budget, not “outside noise.”
Recording rule: every measurement point should produce a numeric tr, a numeric limit, and a numeric margin. “Analyzer can decode” is not an acceptance criterion.
Card B · “Protocol bug” vs “edge physics bug” (fast triage)
- Triage 1 — pass the edge first: if worst-node tr exceeds the speed-grade limit, treat it as a physical-layer compliance failure (Cb/Rp/protection) before any software discussion.
- Triage 2 — avoid measurement illusions: logic analyzers can “decode” through thresholding and digital filtering. Always cross-check with a scope using 30–70% thresholds at the correct node.
- Triage 3 — then evaluate retries/timeouts: only after rise-time compliance and measurement consistency are proven, treat remaining failures as higher-layer handling (retries, timeouts, recovery policy).
Common instrument traps to control: probe capacitance, long ground leads, bandwidth limits that “round” edges, and analyzer thresholds that hide slow rise-time violations.
Pass criteria template (accept/reject)
| Metric | Where (node) | Corner | Limit | Record |
|---|---|---|---|---|
| tr(30–70%) | MCU pin / far device pin / connector sides | Low VDD / low temp / max load | Sm ≤ 1000 ns, Fm ≤ 300 ns, Fm+ ≤ 120 ns | Measured / Margin / Pass-Fail |
| Hs edge params | SCL vs SDA (separate) | Use stated Cb condition (e.g., 100 pF / 400 pF) | Verify by trCL / trDA / trCL1 table (condition-specific) | Measured / Condition / Pass-Fail |
| Consistency | Repeatability across instruments | Probe/cable variants | No large deltas when changing probes/settings | Notes on setup |
For production reports, extend the table with measured values and margins, and keep the measurement setup identical across builds.
H2-10 · Design Pitfalls & Mitigations (The 80% failures you’ll actually see)
Most field failures reduce to a small set of repeatable mistakes: rise-time compliance not verified at the worst node, pull-up window not computed (Rp(min) vs Rp(max)), and protection capacitance silently inflating Cb. This section compresses the common failures into actionable fixes without expanding the main scope.
Card A · Failure → Root cause → Fix (quick look-up)
| Failure | Root cause | Fix |
|---|---|---|
| Fm/Fm+ unstable (NACK/retries) | Worst-node tr exceeds mode limit (Cb high / Rp too large) | Reduce Cb (stubs/ESD/connector) or lower Rp; re-verify at far node |
| VOL too high / cannot pull low | Rp too small; Rp(min) not computed from weakest IOL | Recompute Rp(min) using the weakest sink; verify VOL + tr window |
| Power too high at low level | Rp too small → low-level current grows with duty/traffic | Rebalance Rp window, reduce traffic duty, or step down mode; re-accept margins |
| Fails only after adding ESD | ESD capacitance inflates Cb (“capacitance tax”) | Use lower-C protection, shorten stubs, retune series-R; re-measure worst-node tr |
| MCU-end passes, far-end fails | Distributed loading + connector effects worsen far-node edge | Move acceptance to the far node; optimize topology/return path/series-R placement |
| Logic analyzer decodes but system fails | Thresholding/filtering hides slow edges and multiple crossings | Cross-check with scope 30–70% thresholds; validate worst-node tr numerically |
| Breaks after cable/connector change | External link adds variable capacitance and reflections | Treat link as Cb budget item; validate both connector sides under worst variant |
| Filtering “fix” made it worse | RC/spike filters slow edges and increase threshold dwell | Prefer low-C solutions and topology cleanup; re-accept tr and waveform crossings |
Table usage: start with the symptom row, confirm the root cause by measurement at the worst node, apply the fix, then re-run H2-9 acceptance.
Card B · “Compute first, then change” priority order
Priority 1 — measurement discipline
- 30–70% thresholds tied to VDD
- Worst-node measurement (far device / connector sides)
- Numeric margin recorded (not “decodes fine”)
Priority 2 — budget the window
- Estimate/measure Cb (including ESD/connector/cable)
- Compute Rp(max) from tr(max) and Cb
- Compute Rp(min) from weakest IOL/VOL
Priority 3 — structural changes
- Reduce stubs/branches; improve return path continuity
- Prefer low-C protection; adjust series-R placement/value
- Re-run acceptance under worst corners after each change
H2-11 · Engineering Checklist (Design → Bring-up → Production)
This checklist turns rise-time compliance (tr), pull-up window (Rp(min…max)), and bus capacitance (Cb) into auditable project artifacts: a budget sheet, waveform evidence, and production acceptance records.
Materials note
Part numbers below are concrete examples for BOM speed-up. Always verify package, value, voltage rating, tolerance, ESD capacitance, and availability before locking a design.
Design checklist (budget first)
- Mode target: Sm / Fm / Fm+ / Hs (Hs verified separately for SCL vs SDA).
- Rise-time limit line: tr(30–70%) ≤ 1000 / 300 / 120 ns for Sm / Fm / Fm+.
- Cb budget sheet: pin + trace + connector + ESD + cable; treat protection and connectors as explicit rows.
- Compute Rp(max): from tr(max) and Cb (window upper bound).
- Compute Rp(min): from weakest sink capability (IOL/VOL) (window lower bound).
- Window test: if Rp(min) ≥ Rp(max), fix Cb/topology/mode before firmware tuning.
Example materials (design knobs)
Pull-up resistors (Rp) — common 0402/0603 examples
- Yageo: RC0402FR-074K7L (4.7 kΩ, 1%, 0402)
- Yageo: RC0402FR-072K2L (2.2 kΩ, 1%, 0402)
- Vishay: CRCW04024K70FKED (4.7 kΩ, 1%, 0402)
Series resistors (Rs) — edge damping / EMI tuning
- Yageo: RC0402FR-0722RL (22 Ω, 1%, 0402)
- Yageo: RC0402FR-0747RL (47 Ω, 1%, 0402)
Low-capacitance ESD protection (pick “low C” as a hard constraint)
- Nexperia: PESD5V0S1UL (verify C and ratings in datasheet)
- Texas Instruments: TPD1E05U06 (verify C and ratings in datasheet)
- Semtech: RClamp0521P (verify C and ratings in datasheet)
Bring-up checklist (measure and record margin)
- Definition lock: tr uses 30–70% thresholds tied to VDD.
- Node discipline: measure at MCU pin and at the farthest device pin (worst node), plus connector sides if present.
- Sequence: baseline (no cable) → progressive loading (add branches) → worst corners (low VDD / low temp / max load).
- Pass record: always store measured tr, limit, and margin (ns) in an acceptance table.
Instrument setup must be stable across runs (probe type, ground lead, bandwidth, threshold settings). Otherwise, “margin” becomes a settings artifact.
Production checklist (repeatable go/no-go)
- Sampling plan: define batch/lot strategy and re-qualification triggers (ESD vendor, connector, cable, device count).
- Fixture points: pick at least one point representative of the worst node (or a proven equivalent point).
- Threshold line: tr(30–70%) ≤ X ns (fill X based on the selected mode and worst-case node).
- Evidence: store acceptance records (measured value, limit, margin, setup notes) for audit and correlation.
Production should validate the same physics as bring-up: rise-time at the worst electrical condition, not “protocol decode success.”
H2-12 · Applications (When to choose Sm/Fm/Fm+/Hs in real boards)
Mode choice is a rise-time budget choice. Faster modes tighten the tr limit, which tightens the (Rp × Cb) window and restricts protection, connectors, and topology options.
Card A · Selection logic (speed vs cost vs robustness)
- Short on-board bus, few devices, light protection: Fm or Fm+ is usually feasible if the worst-node tr margin is proven.
- Large Cb, heavy protection, many connectors/cables: prioritize lowering Cb, segmenting the bus, or stepping down the mode.
- Max throughput targets: consider Hs only if Cb is tightly controlled and SCL/SDA are verified separately under corner conditions.
Example ICs (segmentation / mux / rise-time assist)
- I²C mux / fanout isolation: TI TCA9548A, NXP PCA9548A
- I²C bus buffer / hot-swap style isolation: TI TCA9517, NXP PCA9515A
- Rise-time accelerator (when Cb is the limiter): NXP PCA9605, TI TCA9803 (verify behavior vs mode and bus conditions)
Guardrail: segmentation/acceleration must still pass numeric tr acceptance at the worst node (H2-9/H2-11).
Card B · What “faster” costs (and why it breaks after adding protection)
- Edge cost: smaller tr(max) pushes Rp(max) down; the window narrows and becomes sensitive to Cb drift.
- Protection cost: ESD capacitance consumes Cb budget; “low C” parts are often required for Fm+ and beyond.
- Power cost: smaller Rp increases low-level current; compute real traffic duty impact before locking values.
- Validation cost: acceptance must be proven at the worst node and worst corner; “analyzer decode” is not acceptance.
Recommended topics you might also need
Request a Quote
H2-13 · FAQs (Speed grades + tr/Rp/Cb + measurement traps)
All answers stay within this page scope: mode choice and rise-time compliance (30–70%), pull-up window (Rp(min…max)), bus capacitance (Cb), and measurement/EMC pitfalls.
1) “100 kHz is fine, but 400 kHz shows more CRC/NAK”
Likely cause: Worst-node rise time exceeds the Fast-mode limit, typically after Cb grew (more devices/ESD/connector) or Rp is too large.
Quick check: Measure tr(30–70%) at the farthest device pin (not only MCU). Compare “baseline (no external cable)” vs “full load” and record Δtr.
Fix: Reduce Cb (lower-C ESD/connector, shorten stubs, reduce fanout) or reduce Rp within the computed window; if the window does not exist, step down to Sm or segment the bus.
Pass criteria: At worst node, tr(30–70%) ≤ 300 ns (Fm), with margin ≥ 20% of the limit (≤ 240 ns) under max load and low VDD.
2) “Logic analyzer decodes, but the oscilloscope says tr is out of spec — which one to trust?”
Likely cause: Decoder success is not compliance. The analyzer’s threshold, digital filtering, or sampling hides slow edges and ringing; compliance uses 30–70% thresholds tied to VDD.
Quick check: On the scope, set thresholds to 0.3·VDD and 0.7·VDD, measure tr at the worst node, then repeat with the same probe/setup to verify repeatability (do not change bandwidth/probe type mid-test).
Fix: Use the scope result as acceptance. Bring tr into spec by adjusting Rp/Cb. Use the analyzer only to correlate retries/NAKs with measured margin.
Pass criteria: Worst-node tr(30–70%) meets mode limit (1000/300/120 ns for Sm/Fm/Fm+). Measurement repeatability: two runs differ by ≤ X ns (fixture/probe dependent).
3) “After switching to a low-capacitance ESD part, 400 kHz suddenly becomes stable — what was eating tr?”
Likely cause: The previous ESD array added enough capacitance to push Cb beyond the budget, shrinking Rp(max) and violating the rise-time limit at the worst node.
Quick check: Keep Rp unchanged and measure worst-node tr before/after the ESD swap; back-calculate ΔCb using Cb ≈ tr / (0.8473·Rp).
Fix: Treat “ESD capacitance” as a hard constraint at higher modes: choose low-C parts and minimize extra pads/stubs. If protection must be heavier, step down the mode or segment the bus.
Pass criteria: After protection is finalized, worst-node tr(30–70%) still meets the selected mode limit with ≥ 20% margin in the max-load configuration.
4) “Making Rp smaller makes it less stable — is it VOL or ringing?”
Likely cause: Two opposite failure modes: (a) Rp too small violates sink capability (VOL rises), or (b) edges become too steep and ringing causes multiple threshold crossings.
Quick check: On the scope at worst node: (1) measure VOL during a long low (compare against device VOL spec), (2) inspect if the signal crosses 0.3·VDD / 0.7·VDD more than once within a bit.
Fix: If VOL is high, increase Rp until within sink limits (recompute Rp(min)). If ringing dominates, add small series-R (e.g., 22–47 Ω near driver) while re-checking that tr still meets the limit.
Pass criteria: (a) VOL at worst sink load ≤ device VOL limit and stable, and (b) worst-node tr(30–70%) meets mode limit; no repeated threshold crossings near 0.3/0.7·VDD during valid bits.
5) “Same Rp, but changing the harness/connector breaks it — Cb or reflections?”
Likely cause: The new harness adds capacitance and/or changes impedance, pushing tr over the limit and increasing ringing near thresholds.
Quick check: Measure worst-node tr and compare against the limit. Then look for overshoot/undershoot and multiple threshold crossings around 0.3/0.7·VDD when the harness is attached.
Fix: If tr is the limiter, reduce Cb or increase pull-up strength within sink limits. If reflections dominate, reduce stubs, improve return path, and add modest series-R near the driver while verifying tr.
Pass criteria: With the harness/connector installed, worst-node tr(30–70%) meets the mode limit and margin ≥ 20%; waveform shows no repeated crossings of 0.3/0.7·VDD during valid edges.
6) “Mixing Fm+ parts with Sm-only parts — can 1 MHz work?”
Likely cause: The slowest device sets the bus electrical limit. Even if most devices can handle Fm+, the legacy part may require slower edge/rate behavior and larger timing margins.
Quick check: Under the intended 1 MHz configuration, measure worst-node tr and confirm it meets the Fm+ line; then repeat with the legacy device present vs removed (same bus) to see whether it changes the edge budget.
Fix: If the legacy device forces larger Cb or reduces margin, keep that segment at Fm/Sm or isolate it using a mux/buffer so the Fm+ segment can meet its rise-time budget independently.
Pass criteria: Fm+ segment acceptance: worst-node tr(30–70%) ≤ 120 ns with ≥ 20% margin (≤ 96 ns), and the legacy segment meets its own selected mode limit.
7) “SCL looks slower than SDA — why?”
Likely cause: SCL often has higher effective Cb (more pins/branches, longer trace, different protection/connector path), so the same pull-up yields a larger RC rise time at the worst node.
Quick check: Using the same setup, measure tr(30–70%) for SCL and SDA at the same worst node and back-calculate Cb for each line with Cb ≈ tr / (0.8473·Rp).
Fix: Reduce SCL-specific capacitance (routing/stubs/protection), or use separate pull-ups per line (if architecture permits) to equalize rise-time margins without violating sink limits.
Pass criteria: Both lines meet the selected mode limit at worst node (Sm/Fm/Fm+: 1000/300/120 ns) with documented margin; Cb(SCL) and Cb(SDA) estimates are within expected budget.
8) “Back-calculating Cb from known Rp + measured tr gives 2× the estimate — why?”
Likely cause: The estimate missed hidden capacitance (probe/fixture, connector, ESD, cable) or the waveform is not a pure RC (ringing/active pull-up/accelerator changes the edge shape).
Quick check: Repeat the measurement with a lower-capacitance probe or shorter ground lead; measure at two nodes (MCU vs far node). If Cb “grows” with distance, distributed capacitance/connector/cable is dominant.
Fix: Update the Cb budget table with the missing contributors and re-compute Rp(max). If active edge-shaping exists, accept that 0.8473·R·C is only an approximation and use measured tr as the source of truth.
Pass criteria: After updating the budget, measured worst-node tr(30–70%) meets the mode limit with ≥ 20% margin, and measurement setup is documented (probe type, bandwidth, thresholds).
9) “At lower temperature, 400 kHz gets worse — how to reserve tr margin?”
Likely cause: Corner conditions shift edge behavior (device drive, leakage, and effective load). The design passes typical but fails at the worst electrical corner when the margin is too thin.
Quick check: Build a corner matrix: low VDD × low temp × max load. Measure worst-node tr at each corner and compute margin = (limit − measured).
Fix: Tighten the design target (internal goal) to ≤ 0.8× of the spec limit at typical conditions, then re-check at corners; if still failing, reduce Cb, segment the bus, or step down the mode.
Pass criteria: For Fast-mode: worst-node tr(30–70%) ≤ 300 ns at low VDD, low temp, and max load; margin ≥ 10% of limit (≤ 270 ns).
10) “How to quickly compute Rp bounds and land on an E24 value?”
Likely cause: Pull-up selection fails when only Rp(max) is considered (rise time) and Rp(min) is ignored (sink capability / VOL), leaving no safe window after tolerances and added capacitance.
Quick check: Determine mode tr(max) and worst-case Cb. Compute Rp(max)=tr(max)/(0.8473·Cb) and Rp(min) from the weakest IOL/VOL requirement; confirm Rp(min) < Rp(max).
Fix: Pick an E24 value near the middle of the window (geometric middle is preferred), then validate by measuring worst-node tr and VOL at max load. If window is narrow, prioritize reducing Cb or segmenting.
Pass criteria: Selected E24 Rp yields (1) worst-node tr(30–70%) ≤ mode limit (1000/300/120 ns) with documented margin, and (2) VOL meets sink capability at max load (per device spec).
Scope guard: This FAQ section intentionally does not discuss addressing, arbitration, or clock stretching. All checks and fixes are limited to mode choice, rise-time compliance, pull-up window, bus capacitance, and measurement/EMC pitfalls.