Source code for pyccapt.control.devices.signal_generator

import time

import pyvisa


[docs] def initialize_signal_generator(variables, freq): """ Initialize the signal generator. Args: variables: Instance of variables class. freq: Frequency at which signal needs to be generated. Returns: None """ resources = pyvisa.ResourceManager() freq1_command = 'C1:BSWV FRQ,%s' % (freq * 1000) freq2_command = 'C2:BSWV FRQ,%s' % (freq * 1000) device_resource = variables.COM_PORT_signal_generator wave_generator = resources.open_resource(device_resource) wave_generator.write('C1:OUTP OFF') # Turn off channel 1 time.sleep(0.01) wave_generator.write(freq1_command) # Set output frequency on channel 1 time.sleep(0.01) wave_generator.write('C1:BSWV DUTY,1') # Set 30% duty cycle on channel 1 time.sleep(0.01) wave_generator.write('C1:BSWV RISE,0.000000002') # Set 0.2ns rising edge on channel 1 time.sleep(0.01) wave_generator.write('C1:BSWV DLY,0') # Set 0 second delay on channel 1 time.sleep(0.01) wave_generator.write('C1:BSWV HLEV,5') # Set 5v high level on channel 1 time.sleep(0.01) wave_generator.write('C1:BSWV LLEV,0') # Set 0v low level on channel 1 time.sleep(0.01) wave_generator.write('C1:OUTP LOAD,50') # Set 50 ohm load on channel 1 time.sleep(0.01) wave_generator.write('C1:OUTP ON') # Turn on channel 1 wave_generator.write('C2:OUTP OFF') # Turn off channel 2 time.sleep(0.01) wave_generator.write(freq2_command) # Set output frequency on channel 2 time.sleep(0.01) wave_generator.write('C2:BSWV DUTY,1') # Set 30% duty cycle on channel 2 time.sleep(0.01) wave_generator.write('C2:BSWV RISE,0.000000002') # Set 0.2ns rising edge on channel 2 time.sleep(0.01) wave_generator.write('C2:BSWV DLY,0') # Set 0 second delay on channel 2 time.sleep(0.01) wave_generator.write('C2:BSWV HLEV,5') # Set 5v high level on channel 2 time.sleep(0.01) wave_generator.write('C2:BSWV LLEV,0') # Set 0v low level on channel 2 time.sleep(0.01) wave_generator.write('C2:OUTP LOAD,50') # Set 50 ohm load on channel 2 time.sleep(0.01) wave_generator.write('C2:OUTP ON') # Turn on channel 2
[docs] def change_frequency_signal_generator(variables, freq): """ Change the frequency of the signal generator. Args: variables: Instance of variables class. freq: Frequency at which signal needs to be generated. Returns: None """ resources = pyvisa.ResourceManager() freq1_command = 'C1:BSWV FRQ,%s' % (freq * 1000) freq2_command = 'C2:BSWV FRQ,%s' % (freq * 1000) device_resource = variables.COM_PORT_signal_generator wave_generator = resources.open_resource(device_resource) wave_generator.write(freq1_command) # Set output frequency on channel 1 time.sleep(0.01) wave_generator.write(freq2_command) # Set output frequency on channel 2 time.sleep(0.01) print(f"Frequency changed to {freq} kHz")
[docs] def turn_off_signal_generator(): """ Turn off the signal generator. Returns: None """ resources = pyvisa.ResourceManager() device_resource = "USB0::0xF4EC::0x1101::SDG6XBAD2R0601::INSTR" wave_generator = resources.open_resource(device_resource) wave_generator.write('C2:OUTP OFF') # Turn off channel 2 time.sleep(0.01) wave_generator.write('C1:OUTP OFF') # Turn off channel 1 time.sleep(0.01)