''' Initializing the devices ''' # initial configuration of the Lock-in apilevel_example = 6 # The API level supported by this example. (daq, device, props) = zhinst.utils.create_api_session(device_id, apilevel_example, required_devtype='.*LI|.*IA|.*IS') zhinst.utils.api_server_version_check(daq) zhinst.utils.disable_everything(daq, device) out_mixer_channel = zhinst.utils.default_output_mixer_channel(props) ## Temperature readout mytriton = TritonWrapper() # resetting the IVVI dev = IVVI_DAC('COM5') # IVVI dev.RampAllZero() # initializing the Keithley for gate current measurement vmeasure = stlab.adi('TCPIP::192.168.1.161::INSTR',read_termination='\n') # with Keithley DMM6500 # vmeasure=stlab.adi("ASRL1::INSTR") #with Keithley 2000 vmeasure.write('SENS:VOLT:DC:RANG:AUTO 0') vmeasure.write('SENS:VOLT:DC:RANGE 2') vmeasure.write(':INIT:CONT 0') vmeasure.write('VOLT:NPLC 1') vmeasure.write('TRIG:SOUR IMM') vmeasure.write(":SYST:AZER:STAT OFF") vmeasure.write(":TRIG:COUN 1") gate_leakage_v_I_conversion = 1e-6 # conversion factor of the measured voltage on S1h 'Current monitor' to leakage current
idstring = '_at{:.2f}mK'.format(T).replace('.','p') colnames = ['Vmeas (V)', 'Iset (A)', 'Rmeas (Ohm)', 'Vgate (V)', 'T (mK)', 'Time (s)', 'Ileakage (nA)'] myfile = stlab.newfile(prefix, idstring, colnames, autoindex=True) Vglist = np.linspace(Vgmax, Vgmin, (Vgmax-Vgmin)/deltaVg+1) Vg_ini = Vglist[0] END = False total_count = Vglist.shape[0] resistance_array = np.array([]) applied_gate_array = np.array([]) I_leakage_array = np.array([]) ##Inititalizing the devices ivvi = IVVI_DAC(addr='COM5', verb=True) ivvi.RampAllZero(tt=2.) vmeas = stlab.adi(addr='TCPIP::192.168.1.105::INSTR') #for measuring the voltage accross the sample v_gateleakage = stlab.adi(addr='TCPIP::192.168.1.162::INSTR') #for measuring the leakage current ## Estimating for the internal resistances print ('#### Calibration for the internal resistances ####') input ('Short the S3b_output and M1b_input (pin #4), Press Enter to continue...') ivvi.RampVoltage(S3b_dac,V_bias/S3b_range*1e3,tt=0.5, steps = 5) ##ramping this voltage in 20seconds I_cal_p = float(vmeas.query('READ?')) / M1b_total_gain ivvi.RampVoltage(S3b_dac,-V_bias/S3b_range*1e3,tt=1, steps = 5) ##ramping this voltage in 20seconds I_cal_n = float(vmeas.query('READ?')) / M1b_total_gain
M1b_mode = 'Low-Noise' # 'Low-Noise' or 'Low-Rin' S1h_gain = 45. #V/V gain for the applied gate, set on S1h S3b_range = 100e-6 #Full range of the applied current, set on S4c M1b_total_gain = M1b_gain * M1b_postgain_switch prefix = prefix + str(V_bias) + 'uV' V_bias *= 1e-6 initial_calibration = True ########################################################## ''' Initializing the devices ''' ##Inititalizing the IVVI ivvi = IVVI_DAC(addr='COM4', verb=True) ivvi.RampAllZero(tt=2., steps=10) ## Temperature readout tempdev = He7Temperature(addr='145.94.39.138', verb=False) vmeas = stlab.adi(addr='TCPIP::192.168.1.105::INSTR' ) #for measuring the voltage accross the sample # IO settings pygame.init() pygame.display.set_mode((100, 100)) ############################################################# ''' MEASUREMENT'''
idstring = '_at{:.2f}mK'.format(T).replace('.','p') colnames = ['Vset (V)', 'Imeas (A)', 'Vgate (V)', 'T (mK)', 'Time (s)', 'Ileakage (nA)'] myfile = stlab.newfile(prefix, idstring, colnames, autoindex=True) Vglist = np.linspace(Vgmax, Vgmin, (Vgmax-Vgmin)/deltaVg+1) if Vgmax ==Vgmin == 0: gate_it =False else: gate_it =True if gate_it: ##Inititalizing the devices ivvi = IVVI_DAC(addr='COM5', verb=True) ivvi.RampAllZero(tt=2., steps = 20) v_gateleakage = stlab.adi(addr='TCPIP::192.168.1.162::INSTR') #for measuring the leakage current Vg_ini = Vglist[0] V_bias_list = np.linspace(V_bias_max, V_bias_min, (V_bias_max-V_bias_min)/delta_V_bias+1) END = False plt.rcParams["figure.figsize"] = [16,9] plt.title(prefix) plt.ylabel('current [nA]') plt.xlabel('bias Voltage [$\mu$V]') plt.xlim(V_bias_min*1e6,V_bias_max*1e6)
int((V_bias_max - V_bias_min) / delta_V_bias) + 1) + V_bias_ofset END = False if S3b_range >= 1e-3: coeff = 1e3 unit = 'm' else: coeff = 1e6 unit = '$\mu$' plt.rcParams["figure.figsize"] = [16, 9] palette = plt.get_cmap('Set1') # create a color palette ##Inititalizing the devices ivvi = IVVI_DAC(addr='COM3', verb=True) ivvi.RampAllZero(tt=2., steps=20) Imeas = stlab.adi( addr='TCPIP::192.168.1.105::INSTR' ) #for measuring the current converted to Voltage at M0 output if Vgmax != 0 and measure_gate_leakage: v_gateleakage = stlab.adi( addr='TCPIP::192.168.1.106::INSTR') #for measuring the leakage current else: I_leakage = -1 ''' Start the measurement ''' ## Calibration for internal resistors overshoot = False
## Temperature readout mytriton = TritonWrapper() T = mytriton.GetTemperature(8) print('### Measure T 10 times ###') try: T = mytriton.GetTemperature(8) except: T = -1 Tini = T*1000. ## IVVI ivvi = IVVI_DAC(addr='COM5', verb=True) # ivvi.RampAllZero(tt=10.) ## Keithley v_gateleakage = stlab.adi(addr='TCPIP::192.168.1.162::INSTR') #for measuring the leakage current ## HF2LI measure_amplitude = i_oss*R_bias #measurement amplitude [V] measure_output_channnel = 1 measure_input_channnel = 1 measure_frequency = 77 #[Hz] demodulation_time_constant = 0.01 deamodulation_duration = 0.3 apilevel_example = 6 # The API level supported by this example. (daq, device, props) = zhinst.utils.create_api_session('dev352', apilevel_example, required_devtype='.*LI|.*IA|.*IS')
pygame.init() pygame.display.set_mode((100,100)) ########################################################## ''' Initializing the devices ''' # initial configuration of the Lock-in apilevel_example = 6 # The API level supported by this example. (daq, device, props) = zhinst.utils.create_api_session('dev352', apilevel_example, required_devtype='.*LI|.*IA|.*IS') zhinst.utils.api_server_version_check(daq) zhinst.utils.disable_everything(daq, device) out_mixer_channel = zhinst.utils.default_output_mixer_channel(props) # resetting the IVVI dev = IVVI_DAC('COM4') # IVVI dev.RampAllZero() ramp_time = np.abs(np.floor(shift_voltage/ramp_speed)) dev.RampVoltage(DAC,1000*shift_voltage/s1h_gain,tt=ramp_time, steps = 20) # the factor 1000 is applied as the unit reads in mV. # initializing the Keithley for gate current measurement vmeasure = stlab.adi('TCPIP::192.168.1.105::INSTR',read_termination='\n') # with Keithley DMM6500 vmeasure.write('SENS:VOLT:DC:RANG:AUTO 0') vmeasure.write('SENS:VOLT:DC:RANGE 2') vmeasure.write(':INIT:CONT 0') vmeasure.write('VOLT:NPLC 1') vmeasure.write('TRIG:SOUR IMM') vmeasure.write(":SYST:AZER:STAT OFF") vmeasure.write(":TRIG:COUN 1")
'color': 'darkred', 'weight': 'normal', 'size': 16, } measure_frequency = np.linspace(start_freq, stop_freq, freq_points) ########################################################## ''' Initializing the devices ''' # IVVI settings s1h_gain = 45 * ( 1 / 101 ) # [V/V] manual gain set on S1h module, the second term (101/1) is made externally using a voltage devider DAC = 1 # DAC linked to the S1h dev = IVVI_DAC('COM5') # IVVI dev.RampAllZero() # initializing the Keithley for gate current measurement vmeasure = stlab.adi('TCPIP::192.168.1.105::INSTR') # with Keithley DMM6500 vmeasure.write('SENS:VOLT:DC:RANG:AUTO 0') vmeasure.write('SENS:VOLT:DC:RANGE 10') vmeasure.write(':INIT:CONT 0') vmeasure.write('VOLT:NPLC 1') vmeasure.write('TRIG:SOUR IMM') vmeasure.write(":SYST:AZER:STAT OFF") vmeasure.write(":TRIG:COUN 1") gate_leakage_v_I_conversion = 1e-6 #Triton
print('### Measure T 10 times ###') try: T0 = mytriton.GetTemperature(8) except: T0 = -1 time.sleep(1) for x in range(9): try: T = mytriton.GetTemperature(8) except: T = -1 T0 += T Tini = T0 / 10. * 1000. ##Communicate with devices ivvi = IVVI_DAC(addr='COM5', verb=True) ivvi.RampAllZero(tt=10.) vmeas = stlab.adi(addr='TCPIP::192.168.1.105::INSTR') islist1 = np.arange(0, ismax, deltaI) islist = np.concatenate( [islist1[:-1], islist1[::-1], -islist1[1:-1], -islist1[::-1]]) idstring = '_at{:.2f}mK'.format(Tini).replace('.', 'p') colnames = [ 'Iset (A)', 'Vmeas (V)', 'Rmeas (Ohm)', 'Vgate (V)', 'T (mK)', 'Time (s)' ] last_time = time.time() Vglist = np.linspace(Vgmax, Vgmin, (Vgmax - Vgmin) / deltaVg + 1)