コード例 #1
0
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

R_cal = 2*V_bias/(I_cal_p-I_cal_n)
コード例 #2
0
# 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

コード例 #3
0
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)
palette = plt.get_cmap('Set1') # create a color palette
コード例 #4
0
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'''

if save_data:
コード例 #5
0
		line = [i, Voltage, Resistance, Vg, I_leakage, T, current_time - last_time, I_leakage]
		stlab.writeline(myfile, line)
		
		myfile.write('\n')
		# stlab.metagen.fromarrays(myfile, iBiaslist, range(i+1), xtitle='Iset (A)',ytitle='Index_Voltage ()',colnames=colnames)
		time.sleep(time_sleep/5)
		 
		plt.plot(Vglist,resistance_array, 'o', color=palette(count), linewidth=1, alpha=0.9, label='{:.1f}nA'.format(bias_current*1e9))
		plt.legend()
		plt.title(prefix)
		plt.pause(0.1)


plt.savefig(os.path.dirname(myfile.name)+'\\'+prefix)
ivvi.RampVoltage(vgdac,0.,tt=1.) 
ivvi.RampAllZero(tt=1.)
ivvi.close()
zhinst.utils.disable_everything(daq, device)
v_gateleakage.close()
Keysight.RampVoltage(0.,tt=1.)
Keysight.close()


# saving suppelemntary plots
title = 'Resistance'
caption = ''
stlab.autoplot(myfile,'Iset (A)','Resistance (k ohm)',title=title,caption=caption)
title = 'Leakage Current'
caption = ''
stlab.autoplot(myfile,'Iset (A)','Leakage Current (A)',title=title,caption=caption)
コード例 #6
0
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)
if Vglist.size == 0: