diff --git a/tests/test_alignment.py b/tests/test_alignment.py index 8ee76f3..c0b4c90 100644 --- a/tests/test_alignment.py +++ b/tests/test_alignment.py @@ -6,6 +6,7 @@ from pathlib import Path import pytest from common.config_loader import load_jig_registers +from drivers.eload import Eload from drivers.jig import Jig, Position from drivers.rpu import Rpu from drivers.tpu import Tpu @@ -33,6 +34,7 @@ FREQ_CAL_POLL_INTERVAL_S = 1 TARGET_CURRENT_A = 30.0 ALIGNMENT_RAMP_MA_PER_SEC = 20000 +SWEEP_VELOADS = [50.0, 60.0] # "BLE Conn mode" (TPU: Debug dataset addr 5, RPU: sec_flash addr 142) selects # which frequency-calibration handshake the firmware expects @@ -58,16 +60,18 @@ class AlignmentContext: jig: Jig tpu: Tpu rpu: Rpu + eload: Eload @pytest.fixture(scope="module") -def alignment(jig_port, tpu_port, rpu_port): +def alignment(jig_port, tpu_port, rpu_port, eload_resource): jig_registers = load_jig_registers() jig = Jig(jig_port, jig_registers) tpu = Tpu(tpu_port, extra_datasets=["frequency_calibration"]) rpu = Rpu(rpu_port) + eload = Eload(eload_resource) - ctx = AlignmentContext(jig=jig, tpu=tpu, rpu=rpu) + ctx = AlignmentContext(jig=jig, tpu=tpu, rpu=rpu, eload=eload) rpu.set_charging(False) rpu.wait_until_config_writable() @@ -95,6 +99,7 @@ def alignment(jig_port, tpu_port, rpu_port): jig.close() tpu.close() rpu.close() + eload.disconnect() def _wait_for_freq_cal_done(tpu, position_name, timeout_s=FREQ_CAL_TIMEOUT_S): @@ -185,17 +190,24 @@ def test_frequency_calibration(alignment): f"f2 (far-border) = {freq_high:.2f} kHz") -def test_alignment_sweep(alignment): +@pytest.mark.parametrize("veload", SWEEP_VELOADS) +def test_alignment_sweep(alignment, veload): jig = alignment.jig tpu = alignment.tpu rpu = alignment.rpu + eload = alignment.eload RESULTS_DIR.mkdir(exist_ok=True) - csv_path = RESULTS_DIR / f"alignment_sweep_{time.strftime('%Y%m%d_%H%M%S')}.csv" + csv_path = RESULTS_DIR / f"alignment_sweep_{veload:.0f}V_{time.strftime('%Y%m%d_%H%M%S')}.csv" rpu.set_charging(False) jig.move_to_position(DEFAULT_POSITION, wait_time=DEFAULT_MOVE_WAIT_S) + eload.set_remote() + eload.set_mode_cv() + eload.set_voltage(veload) + eload.output_on() + try: with open(csv_path, "w", newline="", encoding="utf-8") as f: writer = csv.writer(f) @@ -236,6 +248,8 @@ def test_alignment_sweep(alignment): finally: rpu.set_charging(False) + eload.output_off() + eload.set_local() jig.move_to_position(DEFAULT_POSITION, wait_time=DEFAULT_MOVE_WAIT_S) print(f"Saved to {csv_path}")