179 lines
50 KiB
HTML
179 lines
50 KiB
HTML
<!doctype html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<title>MIPI DSI Flicker — Root Cause Investigation</title>
|
||
<style>
|
||
:root {
|
||
--arrive-purple: #5f016f;
|
||
--arrive-purple-dark: #3e0049;
|
||
--arrive-pink: #ff32a2;
|
||
--arrive-tint: #faf3fb;
|
||
--arrive-pink-tint: #fff0f8;
|
||
--text: #1a1a1a;
|
||
--muted: #666;
|
||
--rule: #e6dbe9;
|
||
--pass: #1a7f37;
|
||
--fail: #c62a3d;
|
||
--warn: #b58105;
|
||
}
|
||
body { font: 15px/1.55 -apple-system, BlinkMacSystemFont, "Segoe UI",
|
||
Roboto, sans-serif; max-width: 920px; margin: 0 auto;
|
||
padding: 0; color: var(--text); background: #fff; }
|
||
.page { padding: 0 28px 36px; }
|
||
.banner { background: var(--arrive-purple); padding: 18px 28px;
|
||
display: flex; align-items: center; gap: 24px;
|
||
border-bottom: 4px solid var(--arrive-pink); }
|
||
.banner img { height: 64px; width: auto; display: block;
|
||
border-radius: 4px; }
|
||
.banner .who { color: #fff; font-size: 13px; opacity: 0.9;
|
||
line-height: 1.4; }
|
||
.banner .who strong { display: block; font-size: 15px; opacity: 1;
|
||
margin-bottom: 2px; }
|
||
h1 { font-size: 26px; color: var(--arrive-purple);
|
||
border-bottom: 3px solid var(--arrive-purple); padding-bottom: 8px;
|
||
margin: 32px 0 4px; }
|
||
h2 { font-size: 19px; color: var(--arrive-purple); margin: 28px 0 8px;
|
||
border-bottom: 1px solid var(--rule); padding-bottom: 4px; }
|
||
h3 { font-size: 16px; margin: 18px 0 6px; color: var(--arrive-purple-dark); }
|
||
.meta { color: var(--muted); font-size: 13px; margin-bottom: 18px; }
|
||
.tldr { background: var(--arrive-tint); border-left: 4px solid var(--arrive-purple);
|
||
padding: 14px 18px; margin: 16px 0 24px;
|
||
border-radius: 0 6px 6px 0; }
|
||
.tldr strong { color: var(--arrive-purple); }
|
||
table { border-collapse: collapse; margin: 8px 0 16px; font-size: 14px;
|
||
width: 100%; }
|
||
th, td { padding: 7px 12px; text-align: left;
|
||
border-bottom: 1px solid var(--rule); }
|
||
th { background: var(--arrive-purple); color: #fff; font-weight: 600; }
|
||
td.num { text-align: right; font-variant-numeric: tabular-nums; }
|
||
tbody tr:nth-child(even) { background: var(--arrive-tint); }
|
||
.pass { color: var(--pass); font-weight: 600; }
|
||
.fail { color: var(--fail); font-weight: 600; }
|
||
.warn { color: var(--warn); font-weight: 600; }
|
||
code { font: 13px/1.4 "SF Mono", Menlo, Consolas, monospace;
|
||
background: var(--arrive-tint); padding: 1px 5px; border-radius: 3px;
|
||
color: var(--arrive-purple-dark); }
|
||
pre { background: var(--arrive-purple-dark); color: #f7e9f9; padding: 12px 16px;
|
||
border-radius: 4px; font: 13px/1.5 "SF Mono", Menlo, Consolas, monospace;
|
||
overflow-x: auto; }
|
||
pre.diagram { background: var(--arrive-tint); color: var(--text);
|
||
border-left: 4px solid var(--arrive-purple); }
|
||
.verdict { font-size: 18px; margin: 18px 0; padding: 16px 20px;
|
||
background: var(--arrive-pink-tint);
|
||
border: 2px solid var(--arrive-pink);
|
||
border-radius: 8px; }
|
||
.verdict strong.big { font-size: 22px; color: var(--arrive-purple); }
|
||
ul.tight li { margin-bottom: 4px; }
|
||
.footnote { color: var(--muted); font-size: 12px; margin-top: 32px;
|
||
border-top: 1px solid var(--rule); padding-top: 10px; }
|
||
</style>
|
||
</head>
|
||
<body>
|
||
|
||
<div class="banner">
|
||
<img src="data:image/png;base64,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AACQnNAKAAAAAACA5IRWAAAAAAAAJCe0AgAAAAAAIDmhFQAAAAAAAMkJrQAAAAAAAEhOaAUAAAAAAEByQisAAAAAAACSE1oBAAAAAACQnNAKAAAAAACA5IRWAAAAAAAAJCe0AgAAAAAAIDmhFQAAAAAAAMkJrQAAAAAAAEhOaAUAAAAAAEByQisAAAAAAACSE1oBAAAAAACQnNAKAAAAAACA5IRWAAAAAAAAJCe0AgAAAAAAIDmhFQAAAAAAAMkJrQAAAAAAAEhOaAUAAAAAAEByQisAAAAAAACSE1oBAAAAAACQnNAKAAAAAACA5IRWAAAAAAAAJCe0AgAAAAAAIDmhFQAAAAAAAMkJrQAAAAAAAEhOaAUAAAAAAEByQisAAAAAAACSE1oBAAAAAACQnNAKAAAAAACA5IRWAAAAAAAAJCe0AgAAAAAAIDmhFQAAAAAAAMkJrQAAAAAAAEhOaAUAAAAAAEByQisAAAAAAACSE1oBAAAAAACQnNAKAAAAAACA5IRWAAAAAAAAJCe0AgAAAAAAIDmhFQAAAAAAAMkJrQAAAAAAAEhOaAUAAAAAAEByQisAAAAAAACSE1oBAAAAAACQnNAKAAAAAACA5IRWAAAAAAAAJCe0AgAAAAAAIDmhFQAAAAAAAMkJrQAAAAAAAEhOaAUAAAAAAEByQisAAAAAAACSE1oBAAAAAACQnNAKAAAAAACA5IRWAAAAAAAAJCe0AgAAAAAAIDmhFQAAAAAAAMkJrQAAAAAAAEhOaAUAAAAAAEByQisAAAAAAACSE1oBAAAAAACQnNAKAAAAAACA5IRWAAAAAAAAJCe0AgAAAAAAIDmhFQAAAAAAAMkJrQAAAAAAAEhOaAUAAAAAAEByQisAAAAAAACSE1oBAAAAAACQnNAKAAAAAACA5IRWAAAAAAAAJCe0AgAAAAAAIDmhFQAAAAAAAMkJrQAAAAAAAEhOaAUAAAAAAEByQisAAAAAAACSE1oBAAAAAACQnNAKAAAAAACA5IRWAAAAAAAAJCe0AgAAAAAAIDmhFQAAAAAAAMkJrQAAAAAAAEhOaAUAAAAAAEByQisAAAAAAACSE1oBAAAAAACQnNAKAAAAAACA5IRWAAAAAAAAJCe0AgAAAAAAIDmhFQAAAAAAAMkJrQAAAAAAAEhOaAUAAAAAAEByQisAAAAAAACSE1oBAAAA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AAAAANIJrQAAAAAAAEgntAIAAAAAACCd0AoAAAAAAIB0QisAAAAAAADSCa0AAAAAAABIJ7QCAAAAAAAgndAKAAAAAACAdEIrAAAAAAAA0gmtAAAAAAAASCe0AgAAAAAAIJ3QCgAAAAAAgHRCKwAAAAAAANIJrQAAAAAAAEgntAIAAAAAACCd0AoAAAAAAIB0QisAAAAAAADSCa0AAAAAAABIJ7QCAAAAAAAgndAKAAAAAACAdEIrAAAAAAAA0gmtAAAAAAAASCe0AgAAAAAAIJ3QCgAAAAAAgHRCKwAAAAAAANIJrQAAAAAAAEgntAIAAAAAACCd0AoAAAAAAIB0QisAAAAAAADSCa0AAAAAAABIJ7QCAAAAAAAgndAKAAAAAACAdEIrAAAAAAAA0gmtAAAAAAAASCe0AgAAAAAAIJ3QCgAAAAAAgHRCKwAAAAAAANIJrQAAAAAAAEgntAIAAAAAACCd0AoAAAAAAIB0QisAAAAAAADSCa0AAAAAAABIJ7QCAAAAAAAgndAKAAAAAACAdEIrAAAAAAAA0gmtAAAAAAAASCe0AgAAAAAAIJ3QCgAAAAAAgHRCKwAAAAAAANIJrQAAAAAAAEgntAIAAAAAACCd0AoAAAAAAIB0QisAAAAAAADSCa0AAAAAAABIJ7QCAAAAAAAgndAKAAAAAACAdEIrAAAAAAAA0gmtAAAAAAAASCe0AgAAAAAAIJ3QCgAAAAAAgHRCKwAAAAAAANIJrQAAAAAAAEgntAIAAAAAACCd0AoAAAAAAIB0QisAAAAAAADSCa0AAAAAAABIJ7QCAAAAAAAgndAKAAAAAACAdEIrAAAAAAAA0gmtAAAAAAAASCe0AgAAAAAAIJ3QCgAAAAAAgHRCKwAAAAAAANIJrQAAAAAAAEgntAIAAAAAACCd0AoAAAAAAIB0QisAAAAAAADSCa0AAAAAAABIJ7QCAAAAAAAgndAKAAAAAACAdEIrAAAAAAAA0gmtAAAAAAAASCe0AgAAAAAAIJ3QCgAAAAAAgHRCKwAAAAAAANIJrQAAAAAAAEgntAIAAAAAACCd0AoAAAAAAIB0QisAAAAAAADSCa0AAAAAAABIJ7QCAAAAAAAgndAKAAAAAACAdEIrAAAAAAAA0gmtAAAAAAAASCe0AgAAAAAAIJ3QCgAAAAAAgHRCKwAAAAAAANIJrQAAAAAAAEgntAIAAAAAACCd0AoAAAAAAIB0/w9T1XH95rH4WQAAAABJRU5ErkJggg==" alt="Arrive">
|
||
<div class="who">
|
||
<strong>Hardware Engineering</strong>
|
||
Display interface investigation
|
||
</div>
|
||
</div>
|
||
<div class="page">
|
||
<h1>MIPI DSI Flicker — Hardware Exoneration Test</h1>
|
||
<div class="meta">Session <code>20260515_135656</code> · Report generated 2026-05-15 16:26 · 11 operator-confirmed flicker observations analysed</div>
|
||
<div class="tldr">
|
||
<strong>TL;DR</strong> Across 11 operator-confirmed flicker observations, <strong>2 (18%) produced detectable SN65 PLL unlocks</strong>; the remaining 9 (82%) showed <strong>no measurable change</strong> in SN65 register state, 1V8 supply rail, or MIPI clock signal. Both the MIPI bus and the 1V8 supply are exonerated as the root cause of the flicker. The fault is downstream of the SN65DSI83 MIPI input stage — most likely inside the bridge’s internal MIPI-to-LVDS logic.</div>
|
||
<h2>1. Method</h2>
|
||
<p>The <code>flicker_burst.py</code> tool was run alongside <code>video_cycler.py</code>. The operator watched the display while video was cycled on/off and pressed <code>f</code> the instant any visible flicker was observed. Each press triggers a synchronised capture of three independent measurement channels:</p>
|
||
<table><thead><tr><th>Channel</th><th>Instrument</th><th>What it captures</th></tr></thead><tbody>
|
||
<tr><td>SN65 PLL state & error bits</td><td>HTTP / I2C</td><td>Continuous polling at ~50 Hz from <code>f</code>-press until <code>video_cycler</code>’s next stop event</td></tr>
|
||
<tr><td>1V8 supply rail</td><td>Rigol DS1202Z-E (CH1)</td><td>12 s window (10 ms/div × 12), 100 mV/div, −1.8 V offset, DC coupling, 10× probe</td></tr>
|
||
<tr><td>MIPI CLK+ & DAT0+</td><td>Keysight DSO80204B</td><td>100 segments × 20 µs at 5 GSa/s, LP-edge triggered at line rate (~48 kHz)</td></tr>
|
||
</tbody></table>
|
||
<h2>2. Per-burst SN65 register summary</h2>
|
||
<table><thead><tr><th>Burst</th><th>Press</th><th>Window (s)</th><th>n samples</th><th>PLL unlocks</th><th>csr_0a values</th><th>csr_e5 values</th><th>Rail Vpp / mean</th></tr></thead><tbody>
|
||
<tr><td>4</td><td>14:06:15.772</td><td>2.17</td><td>103</td><td class="pass">0</td><td><code>0x85=103</code></td><td><code>0x00=103</code></td><td>120 mV / 1764.6 mV</td></tr>
|
||
<tr><td>5</td><td>14:25:13.600</td><td>13.39</td><td>627</td><td class="fail">1 (20.3 ms)</td><td><code>0x85=624, None=2, 0x05=1</code></td><td><code>0x00=622, None=3, 0x01=2</code></td><td>124 mV / 1764.0 mV</td></tr>
|
||
<tr><td>8</td><td>14:32:00.125</td><td>5.16</td><td>246</td><td class="pass">0</td><td><code>0x85=246</code></td><td><code>0x00=246</code></td><td>120 mV / 1765.4 mV</td></tr>
|
||
<tr><td>11</td><td>14:42:54.549</td><td>6.21</td><td>283</td><td class="fail">1 (35.3 ms)</td><td><code>0x85=279, None=3, 0x0a=1</code></td><td><code>0x00=278, None=3, 0x01=2</code></td><td>128 mV / 1765.1 mV</td></tr>
|
||
<tr><td>13</td><td>14:52:17.055</td><td>8.75</td><td>414</td><td class="pass">0</td><td><code>0x85=414</code></td><td><code>0x00=414</code></td><td>128 mV / 1764.8 mV</td></tr>
|
||
<tr><td>14</td><td>14:58:48.761</td><td>9.36</td><td>448</td><td class="pass">0</td><td><code>0x85=448</code></td><td><code>0x00=447, None=1</code></td><td>120 mV / 1764.8 mV</td></tr>
|
||
<tr><td>15</td><td>15:03:20.934</td><td>9.62</td><td>460</td><td class="pass">0</td><td><code>0x85=459, None=1</code></td><td><code>0x00=459, None=1</code></td><td>120 mV / 1764.3 mV</td></tr>
|
||
<tr><td>16</td><td>15:07:42.869</td><td>9.15</td><td>439</td><td class="pass">0</td><td><code>0x85=439</code></td><td><code>0x00=439</code></td><td>124 mV / 1765.5 mV</td></tr>
|
||
<tr><td>17</td><td>15:09:20.726</td><td>9.38</td><td>450</td><td class="pass">0</td><td><code>0x85=450</code></td><td><code>0x00=450</code></td><td>124 mV / 1764.9 mV</td></tr>
|
||
<tr><td>18</td><td>15:10:52.709</td><td>4.46</td><td>211</td><td class="pass">0</td><td><code>0x85=211</code></td><td><code>0x00=211</code></td><td>124 mV / 1764.3 mV</td></tr>
|
||
<tr><td>19</td><td>15:17:42.922</td><td>8.37</td><td>393</td><td class="pass">0</td><td><code>0x85=392, None=1</code></td><td><code>0x00=392, None=1</code></td><td>120 mV / 1764.3 mV</td></tr>
|
||
</tbody></table>
|
||
<p>Of the eleven observations, <span class="fail">two (18 %)</span> registered a PLL unlock at the SN65DSI83 bridge. The unlock pulse widths were <strong>20.3 ms</strong> and <strong>35.3 ms</strong> — slightly longer than the median of the historical unlock dataset (~21 ms), which is consistent with these being the events most visually salient to the operator. No SOT, LLP, ECC, LP, or CRC errors were registered at the SN65 in any burst.</p>
|
||
<h2>3. Bursts with detected PLL unlocks</h2>
|
||
<p>The following two bursts both showed a brief PLL unlock at the SN65 (<code>pll_lock</code> went False momentarily, <code>csr_e5</code> latched 0x01 for one poll cycle). The 1V8 rail and MIPI clock traces captured during each burst show no abnormality outside the SN65 itself.</p>
|
||
<h3>3.5 Burst 5 — press 14:25:13.600, unlock 14:25:22.382 (20.3 ms)</h3>
|
||
<img src="flicker_investigation_report_v2_plots/rail_burst05.png" style="max-width:100%; border:1px solid #ccc; border-radius:4px; margin:8px 0;">
|
||
<p><strong>MIPI overview (20 µs window):</strong></p>
|
||
<img src="flicker_investigation_report_v2_plots/mipi_burst05.png" style="max-width:100%; border:1px solid #ccc; border-radius:4px; margin:8px 0;">
|
||
<p><strong>Close-up: LP-11 → HS transition (SoT preamble) — shows the falling edge of CLK+ from LP-11 ~1 V down to HS common-mode ~100 mV and the start of HS oscillation:</strong></p>
|
||
<img src="flicker_investigation_report_v2_plots/mipi_burst05_zoom_edge.png" style="max-width:100%; border:1px solid #ccc; border-radius:4px; margin:8px 0;">
|
||
<p><strong>Close-up: HS clock oscillation — 50 ns window showing ~10 individual CLK+ cycles at 216 MHz. Clean square-wave-like alternation with consistent amplitude:</strong></p>
|
||
<img src="flicker_investigation_report_v2_plots/mipi_burst05_zoom_hs.png" style="max-width:100%; border:1px solid #ccc; border-radius:4px; margin:8px 0;">
|
||
<p>The rail remained centred on <strong>1764.0 mV</strong> with <strong>124 mV</strong> Vpp (within the same range as no-unlock bursts). The MIPI clock and data signal traces taken during the same window show normal LP-to-HS transitions and HS amplitudes (CLK+ Vpp median <strong>278 mV</strong>).</p>
|
||
<h3>3.11 Burst 11 — press 14:42:54.549, unlock 14:42:59.304 (35.3 ms)</h3>
|
||
<img src="flicker_investigation_report_v2_plots/rail_burst11.png" style="max-width:100%; border:1px solid #ccc; border-radius:4px; margin:8px 0;">
|
||
<p><strong>MIPI overview (20 µs window):</strong></p>
|
||
<img src="flicker_investigation_report_v2_plots/mipi_burst11.png" style="max-width:100%; border:1px solid #ccc; border-radius:4px; margin:8px 0;">
|
||
<p><strong>Close-up: LP-11 → HS transition (SoT preamble) — shows the falling edge of CLK+ from LP-11 ~1 V down to HS common-mode ~100 mV and the start of HS oscillation:</strong></p>
|
||
<img src="flicker_investigation_report_v2_plots/mipi_burst11_zoom_edge.png" style="max-width:100%; border:1px solid #ccc; border-radius:4px; margin:8px 0;">
|
||
<p><strong>Close-up: HS clock oscillation — 50 ns window showing ~10 individual CLK+ cycles at 216 MHz. Clean square-wave-like alternation with consistent amplitude:</strong></p>
|
||
<img src="flicker_investigation_report_v2_plots/mipi_burst11_zoom_hs.png" style="max-width:100%; border:1px solid #ccc; border-radius:4px; margin:8px 0;">
|
||
<p>The rail remained centred on <strong>1765.1 mV</strong> with <strong>128 mV</strong> Vpp (within the same range as no-unlock bursts). The MIPI clock and data signal traces taken during the same window show normal LP-to-HS transitions and HS amplitudes (CLK+ Vpp median <strong>277 mV</strong>).</p>
|
||
<h2>4. Bursts with no detectable SN65 state change</h2>
|
||
<p>The following <strong>9 of 11</strong> operator-confirmed flickers produced <em>no</em> measurable change in any of the three monitored signals. The SN65 reported a continuously locked PLL with no error flags; the 1V8 supply remained at its nominal level with normal ripple; and the MIPI clock signal continued at its expected amplitude and LP-to-HS profile. A representative trace pair from each measurement is shown below.</p>
|
||
<h3>4.1 1V8 supply rail — representative trace</h3>
|
||
<img src="flicker_investigation_report_v2_plots/rail_typical.png" style="max-width:100%; border:1px solid #ccc; border-radius:4px; margin:8px 0;">
|
||
<p>Across all 9 no-state-change bursts, the rail mean was <strong>1.764–1.766 V</strong> and Vpp was <strong>120–128 mV</strong> — identical to the unlock-bursts and to clean baselines from earlier sessions.</p>
|
||
<h3>4.2 MIPI clock and data signals — representative overlay</h3>
|
||
<p><strong>Wide overview (20 µs window per segment):</strong></p>
|
||
<img src="flicker_investigation_report_v2_plots/mipi_overlay_clk.png" style="max-width:100%; border:1px solid #ccc; border-radius:4px; margin:8px 0;">
|
||
<img src="flicker_investigation_report_v2_plots/mipi_overlay_dat.png" style="max-width:100%; border:1px solid #ccc; border-radius:4px; margin:8px 0;">
|
||
<p>At this time scale the HS oscillation (~216 MHz, ~4 ns period) appears as a solid band — useful for spotting gross envelope changes but uninformative about per-cycle signal integrity. Two close-ups follow.</p>
|
||
<h3>4.3 Close-up: LP-11 → HS transition (SoT preamble)</h3>
|
||
<img src="flicker_investigation_report_v2_plots/mipi_typical_zoom_edge.png" style="max-width:100%; border:1px solid #ccc; border-radius:4px; margin:8px 0;">
|
||
<p>CLK+ drops cleanly from LP-11 (~1 V) down to the HS common-mode (~100 mV) and immediately begins oscillating at 216 MHz. DAT0+ tracks the protocol-defined LP-01→LP-00→HS SoT sequence without anomalies.</p>
|
||
<h3>4.4 Close-up: individual HS clock cycles</h3>
|
||
<img src="flicker_investigation_report_v2_plots/mipi_typical_zoom_hs.png" style="max-width:100%; border:1px solid #ccc; border-radius:4px; margin:8px 0;">
|
||
<p>Zooming further in resolves the individual CLK+ cycles (period ~4.6 ns, ~10 cycles per 50 ns window). The clock oscillates cleanly around the auto-detected common-mode with consistent amplitude and no distortion.</p>
|
||
<h3>4.5 Folded eye diagram (CLK+, 20 segments × ~80 cycles)</h3>
|
||
<img src="flicker_investigation_report_v2_plots/mipi_typical_eye.png" style="max-width:100%; border:1px solid #ccc; border-radius:4px; margin:8px 0;">
|
||
<p>Slicing every CLK+ zero-crossing in a representative no-unlock burst and overlaying the ±1-UI window around each gives an eye-diagram-style view of HS clock signal integrity. A wide open eye with low jitter at the crossings is a strong indicator of clean MIPI clock signalling — no timing degradation or amplitude collapse over hundreds of overlaid cycles.</p>
|
||
<p>Across all 11 bursts, the CLK+ Vpp distribution is min 267, median 276–286, max 285–309 mV — no outliers and no degraded segments at any flicker observation.</p>
|
||
<h2>5. Conclusion (current working hypothesis)</h2>
|
||
<div class="verdict">
|
||
<strong class="big">From a hardware perspective, the measurements support the view that neither the MIPI bus nor the 1V8 supply rail is the root cause of the flicker.</strong><br><br>
|
||
<strong>MIPI signal integrity</strong> across all 11 operator-confirmed flicker observations is <strong>within nominal envelope and error-free</strong>. CLK+/DAT0+ amplitudes are consistent across bursts; LP-to-HS transitions are clean; the HS oscillation eye remains open with low jitter; and the SN65DSI83 reports <em>zero</em> protocol-level errors throughout the test (no SOT-bit, LLP, ECC, LP or CRC error flags raised at any point in any burst).<br><br>
|
||
<strong>The 1V8 supply rail</strong> shows <strong>no obvious anomalies</strong>. Mean voltage holds at 1.764–1.766 V (within 2 %) across every burst; ripple Vpp sits in the 120–128 mV range with no measurable difference between bursts that did register a PLL unlock and those that did not; and there is no brownout or DC sag coincident with any flicker event.<br><br>
|
||
On that basis, from the hardware data alone, <strong>it is suspected that the MIPI bus and the 1V8 rail are not the root cause of the fault</strong>. The remaining open question is what is happening <em>inside</em> the SN65DSI83 — its internal MIPI-to-LVDS state machine, the sequence in which its configuration registers are written over I²C by the driver, and the bridge's response to those writes. These are governed by the software / driver layer on the i.MX, which is outside the scope of the hardware measurements presented here and is recommended as the next area to investigate.<br><br>
|
||
Some PLL unlocks <em>were</em> detected during the test session (2 of 11 flicker observations). <em>Not every unlock will have been captured</em>, however — the measurement depends on the SN65 register being polled at the exact moment of the (brief, ~20–35 ms) state change, and the polling interval (~20 ms) means short events can fall between samples. The recorded unlock count is therefore a lower bound.<br><br>
|
||
<strong>The fact that we do catch ~18% of flickers as PLL unlocks (with rail and MIPI clean) makes the SN65 internal logic look the most likely culprit — something upstream of the LVDS output gets into a bad state often enough to occasionally cascade into a PLL drop, but most of the time the bad state doesn’t reach the PLL detector.</strong>
|
||
</div>
|
||
<h3>5.1 Hypotheses assessed by this test</h3>
|
||
<p>Based on the measurements taken, the following hypotheses are <em>not supported</em> by the data; absence of evidence is not absolute proof of absence, but no signature consistent with these mechanisms was observed.</p>
|
||
<table><thead><tr><th>Hypothesis</th><th>Assessment</th><th>Evidence</th></tr></thead><tbody>
|
||
<tr><td>Flicker caused by 1V8 supply brownout</td><td class="pass">Not supported</td><td>Rail mean voltage consistent across all bursts (1.764–1.766 V, within 2 %); no DC sag observed coincident with any flicker</td></tr>
|
||
<tr><td>Flicker caused by 1V8 supply ripple spike</td><td class="pass">Not supported</td><td>Vpp 120–128 mV consistent across both unlock and no-unlock bursts — no differentiation</td></tr>
|
||
<tr><td>Flicker caused by MIPI clock signal degradation</td><td class="pass">Not supported</td><td>CLK+/DAT0+ Vpp distributions consistent across all 11 bursts; folded-eye overlay shows wide open eye with low jitter; no outlier segments</td></tr>
|
||
<tr><td>Flicker caused by MIPI protocol errors at SN65 input</td><td class="pass">Not supported</td><td>Zero SOT_BIT_ERR, LLP, ECC, LP_ERR or CRC errors recorded across all bursts (csr_e5 = 0x00 throughout, except for the two pll_unlock latches)</td></tr>
|
||
<tr><td>Flicker caused by MIPI PLL unlock</td><td class="warn">Partial support — explains ~18% of cases</td><td>2 of 11 flickers produced a measurable unlock event; the remaining 9 showed no detectable SN65 state change. Caveat: poll-interval limits mean shorter unlocks could be missed (see conclusion)</td></tr>
|
||
</tbody></table>
|
||
<h2>6. Recommended next steps</h2>
|
||
<p>From a hardware engineering standpoint the data narrows the remaining candidates for the fault to areas downstream of (or inside) the SN65DSI83 bridge:</p>
|
||
<ul class="tight">
|
||
<li><strong>Driver / software configuration of the SN65DSI83.</strong> The bridge has roughly sixty I²C-accessible configuration and status registers covering MIPI input lane mapping, PLL setup, LVDS output formatting, panel timings and error handling. Only two (<code>csr_0a</code> and <code>csr_e5</code>) are exposed by the current device-side HTTP endpoint, so the bulk of the bridge's state during a flicker event is not directly observable here. Any non-deterministic behaviour in the order, timing or completeness of register writes during bridge initialisation — or any silent reaction by the bridge to a corner-case input — would not necessarily manifest on the MIPI side or on the 1V8 rail. This is the most likely location for the root cause given the current evidence, and is outside the hardware scope.</li>
|
||
<li><strong>SN65DSI83 LVDS output drivers and the LVDS differential pairs from bridge to panel.</strong> Probing the LVDS pairs during a flicker session would confirm whether the LVDS signal degrades or drops out coincident with a flicker where the MIPI side stays clean.</li>
|
||
<li><strong>Panel-side LVDS receiver / TCON.</strong> Less likely given the panel is not changing between bursts, but cannot be excluded without LVDS-side measurements.</li>
|
||
</ul>
|
||
<p>The two recommended actions are:</p>
|
||
<ol class="tight">
|
||
<li>Engage the team responsible for the SN65DSI83 driver / initialisation sequence on the i.MX to review how and when the bridge is configured, with particular attention to whether all relevant SN65DSI83 registers are being written in the order and with the timing required by the datasheet. Expanding the device-side HTTP endpoint to expose the full SN65DSI83 register set (rather than only <code>csr_0a</code>/<code>csr_e5</code>) would also give visibility of any runtime drift in those registers.</li>
|
||
<li>Add an LVDS-side probe on the spare scope during the next flicker session and re-run this capture. If the LVDS pairs visibly degrade or drop out at the moment of a flicker, the fault is on the LVDS link; if they remain clean, attention returns to the SN65DSI83 driver-configuration path above.</li>
|
||
</ol>
|
||
<div class="footnote">Generated from session <code>20260515_135656</code> by <code>make_flicker_report.py</code> on 2026-05-15 16:26. Source data: 11 burst captures with <code>burst_NNNN_*_pll_samples.json</code>, <code>burst_NNNN_*_rail.csv</code>, and <code>burst_NNNN_*_mipi_segNNN_clk/dat.csv</code> files in <code>data/flicker_bursts/20260515_135656</code>.</div>
|
||
</div></body></html> |