Updates
This commit is contained in:
@@ -59,7 +59,13 @@ CLK_LP_LOW_MIN_NS = 300.0
|
||||
# On this hardware normal HS = 105–122 mV; confirmed flicker = 14–32 mV (DC / LP-11 recovery).
|
||||
# Captures where LP-01/LP-00 completed normally but the bridge never entered HS mode show
|
||||
# essentially zero amplitude (the burst window is DC LP-11), so lp_low alone cannot detect this.
|
||||
HS_BURST_AMPLITUDE_MIN_MV = 50.0 # mV — below this, no real HS burst is present
|
||||
HS_BURST_AMPLITUDE_MIN_MV = 40.0 # mV — below this, no real HS burst is present
|
||||
# Lowered from 50 mV: 48 mV capture (0001) was a false alarm; true flicker (0008) at 34 mV.
|
||||
|
||||
# Mode A minimum amplitude: LP-11-return edge artifacts produce near-zero amplitude in the
|
||||
# burst window (burst is pure LP-low DC between two LP-11 regions). Require ≥ this to
|
||||
# distinguish a genuine weak-HS attempt from a false rolling-std trigger on LP-11 return.
|
||||
HS_MODE_A_MIN_MV = 10.0 # mV
|
||||
|
||||
|
||||
@dataclass
|
||||
@@ -969,13 +975,20 @@ def analyze_lp_file(path: Path) -> "LPMetrics":
|
||||
f"(TCLK_PREPARE+TCLK_ZERO minimum) — SN65DSI83 may fail to lock CLK lane"
|
||||
)
|
||||
|
||||
# Flicker suspect: three confirmed failure modes on this hardware:
|
||||
# Flicker suspect: four confirmed failure modes on this hardware:
|
||||
#
|
||||
# A) Normal LP-low (~342–380 ns) → bridge misses SoT → returns to LP-11
|
||||
# Signature: lp11_to_hs fires at real LP-low end (~347 ns), hs_amplitude ≈ 15–30 mV.
|
||||
# Guard: lp11_to_hs >= LP_LOW_DUR_MIN_NS prevents DC-content false positives
|
||||
# where the ~3 ns noise spike fires the gate but HS IS present.
|
||||
#
|
||||
# A2) LP-11 present, HS attempt made but amplitude too weak for rolling-std to fire
|
||||
# Signature: lp11_to_hs is None (rolling-std < HS_OSC_STD_V throughout 500 ns
|
||||
# lookahead), hs_amplitude < 50 mV, LP-11 returns ~500 ns later.
|
||||
# Root cause: marginal VDD_DSI (LP-11 sags to ~1.0 V vs 1.2 V nominal), reducing
|
||||
# HS drive strength below the detection threshold.
|
||||
# Confirmed: capture 0010 (lp11_to_hs=None, amp≈32 mV, LP-11 returned at +513 ns).
|
||||
#
|
||||
# B) Short LP-low (50–200 ns, vs nominal ~342–380 ns) → marginal SoT timing
|
||||
# → HS burst starts but is weak, hs_amplitude ≈ 40–60 mV (vs normal 100–122 mV).
|
||||
# Signature: lp_low anomalously short, lp11_to_hs fires at noise spike (~3 ns).
|
||||
@@ -997,8 +1010,16 @@ def analyze_lp_file(path: Path) -> "LPMetrics":
|
||||
hs_amplitude_mv is not None
|
||||
and hs_amplitude_mv < HS_BURST_AMPLITUDE_MIN_MV
|
||||
and (
|
||||
# Mode A: LP-low normal, HS never started (rolling-std confirms it)
|
||||
(lp11_to_hs_ns is not None and lp11_to_hs_ns >= LP_LOW_DUR_MIN_NS)
|
||||
# Mode A: LP-low normal, rolling-std fired but HS amplitude is sub-threshold.
|
||||
# Require amp ≥ HS_MODE_A_MIN_MV to exclude LP-11-return artifacts: when LP-11
|
||||
# returns after LP-low without any HS attempt the burst window is pure DC ~0 V
|
||||
# (two LP-11 regions straddling a clean LP-low), giving amp ≈ 0–3 mV. A genuine
|
||||
# weak HS attempt leaves measurable oscillations well above this floor.
|
||||
(lp11_to_hs_ns is not None and lp11_to_hs_ns >= LP_LOW_DUR_MIN_NS
|
||||
and hs_amplitude_mv >= HS_MODE_A_MIN_MV)
|
||||
# Mode A2: rolling-std never fired — HS absent or amplitude below HS_OSC_STD_V;
|
||||
# weak oscillations are misclassified as LP-low, masking the true HS failure
|
||||
or lp11_to_hs_ns is None
|
||||
# Mode B: LP-low anomalously short + low amplitude = marginal HS launch
|
||||
or _lp_low_short
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user