From 8708164ac80763c473c11f95dbf79c16f8d5adf1 Mon Sep 17 00:00:00 2001 From: Martin Braun Date: Wed, 23 Jun 2021 10:30:12 +0200 Subject: cal: Add tune-settling time This is a device-specific parameter to allow for the tune to settle before proceeding with the calibration. On X410, we set this time to 500 ms. On other devices, we leave it at 0. --- host/python/uhd/usrp/cal/usrp_calibrator.py | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'host/python') diff --git a/host/python/uhd/usrp/cal/usrp_calibrator.py b/host/python/uhd/usrp/cal/usrp_calibrator.py index bb98e045a..c129fb17d 100644 --- a/host/python/uhd/usrp/cal/usrp_calibrator.py +++ b/host/python/uhd/usrp/cal/usrp_calibrator.py @@ -91,6 +91,7 @@ class USRPCalibratorBase: lo_offset = 0.0 min_freq = None max_freq = None + tune_settling_time = 0 def __init__(self, usrp, meas_dev, direction, **kwargs): self._usrp = usrp @@ -200,6 +201,7 @@ class USRPCalibratorBase: self._noise[freq] = {} tune_req = uhd.types.TuneRequest(freq) self._usrp.set_rx_freq(tune_req, self._chan) + time.sleep(self.tune_settling_time) for gain in self._gains: self._usrp.set_rx_gain(gain, self._chan) self._noise[freq][gain] = get_usrp_power(self._streamer) @@ -401,6 +403,9 @@ class X410Calibrator(USRPCalibratorBase): default_rate = 3.84e6 min_freq = 1e6 max_freq = 8e9 + # X410 non-timed tunes are currently very poke-intensive, so we give it some + # time to clear the command queue + tune_settling_time = .5 ############################################################################### # The dispatch function -- cgit v1.2.3