ethercat-linux/vendor/ethercrab/dc-align.plot
Tony Cao 21b2d3bf99 J1900 <-> TwinCAT 1 kHz verification over EL6695 bridge
Re-implementation of rustbootd's ecat_el6695_* examples as a single binary
with fixes found in review and on hardware:

- DC-follow PLL hardened against period-2 hunting: slew-limited anchor
  (+/-50us/cycle), bistable-trap snap re-anchor, re-prime on stale deadline
- drift-free absolute-grid ticker mode; probe mode for timestamp forensics
- bounded-memory online stats (histograms), graceful SIGINT/SIGTERM shutdown
  with full report, error-streak abort
- timestamp plausibility filter comparing against the previous raw sample
  (avoids the deadlock after a startup outlier)
- XFC scope waveform options: --el2202 (with --el2202-dual), --el2262,
  --el1252 latch timestamp readback with per-channel edge statistics
- register access unified in regs.rs: named bit constants everywhere,
  read-modify-write for enable/activation bytes
- vendored patched ethercrab 0.7.1 (sdo_write_complete, send_raw_coe)

Verified on J1900 (PREEMPT_RT 6.6.135): 600k cycles/600s exact 1 kHz,
tx/rx zero errors, phase_err p50=164us std=5us; EL2202<->EL1252 loopback
edge interval mean 2000.24us std=24.65us.
2026-07-22 08:55:41 +08:00

20 lines
633 B
Gnuplot

set datafile separator comma
set term wxt size 1920,1080
set key autotitle columnhead
plot \
'dc-align.csv' using 1:4 with lines, \
'dc-align.csv' using 1:5 with lines dashtype 2, \
'dc-align.csv' using 1:6 with lines, \
'dc-align.csv' using 1:7 with lines dashtype 2, \
'dc-align.csv' using 1:8 with lines, \
'dc-align.csv' using 1:9 with lines dashtype 2, \
'dc-align.csv' using 1:10 with lines, \
'dc-align.csv' using 1:11 with lines dashtype 2, \
'dc-align.csv' using 1:12 with lines, \
'dc-align.csv' using 1:13 with lines dashtype 2, \
'dc-align.csv' using 1:14 with lines, \
'dc-align.csv' using 1:15 with lines dashtype 2