e #This sets the device into MethodSCRIPT mode #-------------------------------------------------------------------- #declare variables # c = WE0 current var c # p = set_potential (Vgs for transfer characteristics setup, Vds for output characteristics setup) var p # b = WE1 current var b #-------------------------------------------------------------------- #Set up the current measurement on WE1 (i.e. channel 1 in bipot mode) #select channel 1 set_pgstat_chan 1 #set channel 1 to poly_we (bipot) mode set_pgstat_mode 5 #Set required bandwidth (Hz) set_max_bandwidth 100 #set poly_we (bipot) mode = 0, thus WE1 maintains a fixed voltage relative to RE0 set_poly_we_mode 0 #set starting current range e.g. for 100uA use "set_range ba 100u" set_range ba 5m #set WE1 to RE0 offset voltage. (Vds for transfer characteristics setup, Vgs for output characteristics setup) set_e -20m #-------------------------------------------------------------------- #Set up the current measurement on WE0 (i.e. channel 0 in low-speed mode) #select channel 0 set_pgstat_chan 0 #set channel 0 to low-speed mode set_pgstat_mode 2 #Set required bandwidth (Hz) set_max_bandwidth 100 #Set the range for ch 0 (RE0 to WE0) voltage sweep #(Vgs for transfer characteristics setup, Vds for output characteristics setup) set_range_minmax da -1250m 1250m set_autoranging ba 1n 5m #set starting current range e.g. for 100uA use "set_range ba 100u" set_range ba 5m #-------------------------------------------------------------------- #-------------------------------------------------------------------- #Perform the voltage scan, reporting RE0 to WE0 potential, WE0 current, and WE1 current #Turn the cell on, any settings set when the cell was off will be applied here. cell_on #equilibrate at -0.5 V for 5 seconds, using a CA measurement #meas_loop_ca potential(V) current_WE0(A) start(V) interval_time(s) duration(s) poly_we(1 b) meas_loop_ca p c -10m 20m 1000m poly_we(1 b) #selects ch 1 as the active channel set_pgstat_chan 1 #Set the current range corresponding to the measured current on the secondary WE mul_var b 1150m set_range ba b #selects ch 0 as the active channel set_pgstat_chan 0 endloop #LSV measurement using channel 0 as WE1 and channel 1 as WE2 #WE2 current is stored in var b #meas_loop_lsv potential(V) current_WE0(A) start(V) end(V) step(V) scan_rate(V/s) poly_we(1 current_WE1(A)) meas_loop_lsv p c -10m 1000m 1m 100m poly_we(1 b) #Send a package containing set potential and measured WE current. pck_start #The variable 'p' is added to the data packet. The first variable becomes the x-axis in PStrace pck_add p #The variable 'c' is added to the data packet. pck_add c #The variable 'b' is added to the data packet. pck_add b #Signals the end of a measurement data package. pck_end #selects ch 0 as the active channel #set_pgstat_chan 0 #Measures the WE0 current for 100 ns and stores the value in 'c' #meas 100n c ba #Set the current range corresponding to the measured current on the main WE #//mul_var c 1150m #set_range ba c #selects ch 1 as the active channel set_pgstat_chan 1 #Measures the WE1 current for 100 ns and stores the value in 'b' #meas 100n b ba #Set the current range corresponding to the measured current on the secondary WE mul_var b 1150m set_range ba b #selects ch 0 as the active channel set_pgstat_chan 0 endloop #Turn cell off when finished or aborted on_finished: cell_off