device.set_parameter('set_bias',bias)#set the bias
device.set_parameter('set_bias',bias)#set the bias
device.write('start_sweep')#start the measurement
device.write('start_sweep')#start the measurement
device.wait()#wait for completition
device.wait()#wait for completition
# read the registers
# read the registers
freq=device.read_register('reg_sweep')
freq=np.array(device.read_register('reg_sweep'))
G=device.read_register('reg_A')
B=device.read_register('reg_B')
time.sleep(messparameter_dict["sleep"].value)
f_values.extend(freq)
f_values.extend(freq)
G=np.array(device.read_register('reg_A'))
G_values.extend(G)
G_values.extend(G)
B_vlaues.extend(B)
B=np.array(device.read_register('reg_B'))
B_values.extend(B)
time.sleep(messparameter_dict["sleep"].value)
#do the calculations
#do the calculations
foriinrange(len(freq)):
log_f=np.log10(freq)
log_f.append(np.log10(freq[i]))
log_f_values.extend(log_f)
omega.append(2*np.pi*freq[i])
log_omega.append(np.log10(omega))
omega=2*np.pi*freq
polar=cmath.polar(1/complex(G[i],B[i]))
omega_values.extend(omega)
Z.append(polar[0])
phi.append(180/np.pi*polar[1])#in deg
log_omega=np.log10(omega)
D.append(G[i]/B[i])
log_omega_values.extend(omega)
Cp.append(B[i]/omega)
Cs.append(Cp*(1+D**(2)))
Y_complex=G+1j*B
Cp_area.append(Cp/area)
Z_complex=1/Y_complex
Cs_area.append(Cs/area)
Z_complex=cmath.rect(polar[0],polar[1])
Z=np.absolute(Z_complex)
ReZ.append(Z_complex.real)
Z_values.extend(Z)
ImZ.append(Z_complex.imag)
phi=np.angle(Z_complex,deg=True)
G_f_omega.append(G_p/area/omega)
phi_values.extend(phi)
# Do A test plot
D=G/B
fig,ax1=plt.subplots()
D_values.extend(D)
color='b'
Cp=B/omega
ax1.set_xlabel('Frequency (Hz)')
Cp_values.extend(Cp)
ax1.set_ylabel('G (S)',color=color)
ax1.plot(freq,G,color=color)
Cs=Cp*(1+D**(2))
ax1.tick_params(axis='y',labelcolor=color)
Cs_values.extend(Cs)
ax2=ax1.twinx()
Cp_area=Cp/area
color='y'
Cp_area_values.extend(Cp_area)
ax2.set_ylabel('B (S)',color=color)# we already handled the x-label with ax1
ax2.plot(freq,B,color=color)
Cs_area=Cs/area
ax2.tick_params(axis='y',labelcolor=color)
Cs_area_values.extend(Cs_area)
fig.suptitle(f"Results for Bias = {bias}V")
ReZ=np.real(Z_complex)
fig.tight_layout()
ImZ=np.imag(Z_complex)
display(fig)
ReZ_values.extend(Rez)
ImZ_values.extend(ImZ)
G_area_omega=G_p/area/omega
G_area_omega_values.extend(G_area_omega)
device.write('bias_off')
device.write('bias_off')
# save to file
withopen(file,'w')asf:
dt=datetime.now().replace(second=0,microsecond=0)
f.write(f'# Measurement started at {dt}'+"\n")
f.write(f"# Wafer {sample_dict['wafer'].value} Sample {sample_dict['sample'].value} Comment {sample_dict['comment'].value} Temperature {sample_dict['temperature'].value}"+"\n")
f.write(f"# V_start {messparameter_dict['start'].value} V V_stop {messparameter_dict['stop'].value} V V_step {messparameter_dict['step'].value} V"+"\n")