Skip to main content

v2n-gd32-bridge-hil-soak

Pass/fail soak of the whole GD32 bridge command set over the 25 MHz SPI fast path. Where v2n-gd32-bridge-ping proves the link, this proves the opcodes: every command the bridge firmware implements round-trips each cycle with a self-contained verification — no external instruments needed.

Source: examples/v2n/v2n-gd32-bridge-hil-soak/.

What it exercises per cycle

TestOpcodesSelf-verification
ping / get_version / get_build_id / reset_reason0x000x03status OK, version matches init, build-id constant, cause in-range
gpio0x10/0x11full-mask read OK; mask=0 write (provable no-op)
pwm set/get + single-pulse + capture0x200x261 kHz / 25 % readback within 1 %; parked at 0 % after
adc read + stream0x30, 0x330x354 samples ≤ VREF; > 0 stream samples after 50 ms @ 1 kHz (the stream-DMA regression test)
dac0x50/0x511650 mV readback ± 16 mV; parked at 0 after
qenc / counter0x60/0x61, 0x70reset → position exactly 0; counter strictly increasing
trng / tmu0x80, 0x90two 16-byte pulls non-constant + distinct; sqrt(4)=2, sin(0)=0 within 1e-3
timer_sync / power_mode0x27/0x28link TIMER0→TIMER7 then unlink; mode 0 ("run") no-op
da9292 sentinel0x40must answer 0xFF — no DA9292 net reaches the GD32 on this HW rev
ota_get_state0xF5NOSUPPORT on an unarmed build, or a sane state snapshot

Verification checks are self-contained: readback compares (PWM, DAC), range sanity (ADC, reset-reason), monotonicity (counter), entropy (TRNG), exact math (TMU), and documented-sentinel asserts. Instrument-grade checks (scope on PWM, precision source on ADC) remain separate HIL-plan rows.

The soak is silicon-validated — the v0.6.0 release recorded a 253/253 clean bench run on firmware v0.2.8/v0.2.9.

See also

Questions about this page? Discuss in Community Forum