diff options
author | Martin Braun <martin.braun@ettus.com> | 2021-06-23 10:30:12 +0200 |
---|---|---|
committer | Aaron Rossetto <aaron.rossetto@ni.com> | 2021-06-24 12:05:49 -0500 |
commit | 8708164ac80763c473c11f95dbf79c16f8d5adf1 (patch) | |
tree | 2c81289bdab2a819ea076614a1c725612afe390d /host | |
parent | 7044fcdca577c798b60370d988337d6a113cb639 (diff) | |
download | uhd-8708164ac80763c473c11f95dbf79c16f8d5adf1.tar.gz uhd-8708164ac80763c473c11f95dbf79c16f8d5adf1.tar.bz2 uhd-8708164ac80763c473c11f95dbf79c16f8d5adf1.zip |
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.
Diffstat (limited to 'host')
-rw-r--r-- | host/python/uhd/usrp/cal/usrp_calibrator.py | 5 | ||||
-rw-r--r-- | host/utils/uhd_power_cal.py | 2 |
2 files changed, 7 insertions, 0 deletions
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 diff --git a/host/utils/uhd_power_cal.py b/host/utils/uhd_power_cal.py index b9029cc60..70fcbbde6 100644 --- a/host/utils/uhd_power_cal.py +++ b/host/utils/uhd_power_cal.py @@ -9,6 +9,7 @@ Utility to run power calibrations with USRPs """ import sys +import time import math import pickle import argparse @@ -180,6 +181,7 @@ class CalRunner: print("=== Running calibration at frequency {:.3f} MHz...".format(freq / 1e6)) tune_req = uhd.types.TuneRequest(freq, self.lo_offset) getattr(self.usrp, 'set_{}_freq'.format(self.dir))(tune_req, chan) + time.sleep(self.usrp_cal.tune_settling_time) actual_freq = getattr(self.usrp, 'get_{}_freq'.format(self.dir))(chan) if abs(actual_freq - freq) > 1.0: print("WARNING: Frequency was coerced from {:.2f} MHz to {:.2f} MHz!" |