From fd2dddc470f144b4f837c10f8d4d7dc691fd72eb Mon Sep 17 00:00:00 2001 From: Sander de Snoo <59472150+sldesnoo-Delft@users.noreply.github.com> Date: Wed, 19 Jul 2023 15:31:42 +0200 Subject: [PATCH] Fixed setting of digitizer demodulation frequency and resonator drive amplitude for Qblox --- .../test_rf_qblox_fast_sweep_frequency.py | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 pulse_lib/tests/rf_source/test_rf_qblox_fast_sweep_frequency.py diff --git a/pulse_lib/tests/rf_source/test_rf_qblox_fast_sweep_frequency.py b/pulse_lib/tests/rf_source/test_rf_qblox_fast_sweep_frequency.py new file mode 100644 index 00000000..0c1b87aa --- /dev/null +++ b/pulse_lib/tests/rf_source/test_rf_qblox_fast_sweep_frequency.py @@ -0,0 +1,75 @@ +from pulse_lib.tests.configurations.test_configuration import context + +#%% +from qcodes import Parameter +from pulse_lib.fast_scan.qblox_fast_scans import fast_scan1D_param, fast_scan2D_param +from core_tools.sweeps.sweeps import do1D + +class RfParameter(Parameter): + def __init__(self, pulselib, digitizer_channel_name): + super().__init__( + name=f'{digitizer_channel_name}_RF', + label=f'{digitizer_channel_name} resonator frequency', + unit='Hz') + self.channel = pulselib.digitizer_channels[digitizer_channel_name] + + def get_raw(self): + return self.channel.frequency + + def set_raw(self, value): + self.channel.frequency = value + + +class RfAmplitudeParameter(Parameter): + def __init__(self, pulselib, digitizer_channel_name): + super().__init__( + name=f'{digitizer_channel_name}_amplitude', + label=f'{digitizer_channel_name} resonator drive amplitude', + unit='mV') + self.channel = pulselib.digitizer_channels[digitizer_channel_name] + + def get_raw(self): + return self.channel.rf_source.amplitude + + def set_raw(self, value): + self.channel.rf_source.amplitude = value + + +class PhaseParameter(Parameter): + def __init__(self, pulselib, digitizer_channel_name): + super().__init__( + name=f'{digitizer_channel_name} phase', + label=f'{digitizer_channel_name} phasey', + unit='degrees') + self.channel = pulselib.digitizer_channels[digitizer_channel_name] + + def get_raw(self): + return self.channel.phase + + def set_raw(self, value): + self.channel.phase = value + + +def test_freq(): + pulse = context.init_pulselib(n_gates=2, n_sensors=2, rf_sources=True) + + rf_frequency = RfParameter(pulse, 'SD2') + fast_scan_param = fast_scan1D_param(pulse, 'P1', 50.0, 21, 2_000, iq_mode='I+Q') + ds = do1D(rf_frequency, 80e6, 120e6, 21, 0.0, fast_scan_param, name='frequency_search', reset_param=True).run() + + return ds + +def test_ampl(): + pulse = context.init_pulselib(n_gates=2, n_sensors=2, rf_sources=True) + + rf_amplitude = RfAmplitudeParameter(pulse, 'SD2') + fast_scan_param = fast_scan1D_param(pulse, 'P1', 50.0, 21, 2_000, iq_mode='I+Q') + ds = do1D(rf_amplitude, 20.0, 200.0, 10, 0.0, fast_scan_param, name='amplitude_sweep', reset_param=True).run() + + return ds + +#%% +if __name__ == '__main__': + context.init_coretools() + ds1 = test_freq() + ds2 = test_ampl() -- GitLab