// genesis
////////////////////////////cell_4L
function add_squid_electronics1 (path)
str path
// Electronics for voltage and current clamp
create pulsegen {path}/pulsegen
setfield ^ level1 -0.035 width1 5 delay1 5 delay2 999.0 \
trig_mode 0 trig_time 0.0 baselevel -.060
// trig_mode 0 = free run, 1= ext trig, 2= ext gate
//changed time constant from 0.1 msec to 0.03 msec for sharper Vclamp pulse
create RC {path}/lowpass
setfield ^ R 500.0 C 0.1e-6 // ohms and farads; for a tau of 50 us
// create diffamp {path}/Iclamp
// setfield ^ saturation .999 gain 0.0 // saturation 999.0
create diffamp {path}/Vclamp
setfield ^ saturation 999.0 \ // unitless I hope
gain 0.002 // 1/R from the lowpass filter
create PID {path}/PID
setfield ^ gain 1e-6 \ //10/Rinput of cell
tau_i 20e-6 \ //seconds
tau_d 5e-6 saturation 999.0
end
///////////////////////////////cell_4R
function add_squid_electronics2 (path)
str path
// Electronics for voltage and current clamp
create pulsegen {path}/pulsegen
setfield ^ level1 -0.050 width1 5 delay1 5 delay2 999.0 \
trig_mode 0 trig_time 0.0 baselevel -.060
// trig_mode 0 = free run, 1= ext trig, 2= ext gate
//changed time constant from 0.1 msec to 0.03 msec for sharper Vclamp pulse
create RC {path}/lowpass
setfield ^ R 500.0 C 0.1e-6 // ohms and farads; for a tau of 50 us
// create diffamp {path}/Iclamp
// setfield ^ saturation .999 gain 0.0 // saturation 999.0
create diffamp {path}/Vclamp
setfield ^ saturation 999.0 \ // unitless I hope
gain 0.002 // 1/R from the lowpass filter
create PID {path}/PID
setfield ^ gain 1e-6 \ //10/Rinput of cell
tau_i 20e-6 \ //seconds
tau_d 5e-6 saturation 999.0
end
////////////////////////////cell_5L
function add_squid_electronics3 (path)
str path
// Electronics for voltage and current clamp
create pulsegen {path}/pulsegen
setfield ^ level1 -0.050 width1 5 delay1 1e10 delay2 999.0 \
trig_mode 0 trig_time 0.0 baselevel -.040
// trig_mode 0 = free run, 1= ext trig, 2= ext gate
//changed time constant from 0.1 msec to 0.03 msec for sharper Vclamp pulse
create RC {path}/lowpass
setfield ^ R 500.0 C 0.1e-6 // ohms and farads; for a tau of 50 us
// create diffamp {path}/Iclamp
// setfield ^ saturation .999 gain 0.0 // saturation 999.0
create diffamp {path}/Vclamp
setfield ^ saturation 999.0 \ // unitless I hope
gain 0.002 // 1/R from the lowpass filter
create PID {path}/PID
setfield ^ gain 1e-6 \ //10/Rinput of cell
tau_i 20e-6 \ //seconds
tau_d 5e-6 saturation 999.0
end
//////////////////////////cell_4L
function connect_squid_electronics1(path, clamp_path)
str path // the cell path
str clamp_path // the Vclamp circuitry path
// hook up current clamp circuitry
// addmsg {clamp_path}/pulsegen {clamp_path}/Iclamp PLUS output
// addmsg {clamp_path}/Iclamp {path} INJECT output
// hook up voltage clamp circuitry
addmsg {clamp_path}/pulsegen {clamp_path}/lowpass INJECT output
// addmsg {clamp_path}/tab_func_gen {clamp_path}/lowpass INJECT output
addmsg {clamp_path}/lowpass {clamp_path}/Vclamp PLUS state
addmsg {clamp_path}/Vclamp {clamp_path}/PID CMD output
addmsg {path} {clamp_path}/PID SNS Vm
addmsg {clamp_path}/PID {path} INJECT output
end
/////////////////////cell_4R
function connect_squid_electronics2(path, clamp_path)
str path // the cell path
str clamp_path // the Vclamp circuitry path
// hook up current clamp circuitry
// addmsg {clamp_path}/pulsegen {clamp_path}/Iclamp PLUS output
// addmsg {clamp_path}/Iclamp {path} INJECT output
// hook up voltage clamp circuitry
// addmsg {clamp_path}/pulsegen {clamp_path}/lowpass INJECT output
addmsg {clamp_path}/tab_func_gen {clamp_path}/lowpass INJECT output
addmsg {clamp_path}/lowpass {clamp_path}/Vclamp PLUS state
addmsg {clamp_path}/Vclamp {clamp_path}/PID CMD output
addmsg {path} {clamp_path}/PID SNS Vm
addmsg {clamp_path}/PID {path} INJECT output
end
////////////////////////cell_5L
function connect_squid_electronics3(path, clamp_path)
str path // the cell path
str clamp_path // the Vclamp circuitry path
// hook up current clamp circuitry
// addmsg {clamp_path}/pulsegen {clamp_path}/Iclamp PLUS output
// addmsg {clamp_path}/Iclamp {path} INJECT output
// hook up voltage clamp circuitry
addmsg {clamp_path}/pulsegen {clamp_path}/lowpass INJECT output
// addmsg {clamp_path}/tab_func_gen {clamp_path}/lowpass INJECT output
addmsg {clamp_path}/lowpass {clamp_path}/Vclamp PLUS state
addmsg {clamp_path}/Vclamp {clamp_path}/PID CMD output
addmsg {path} {clamp_path}/PID SNS Vm
addmsg {clamp_path}/PID {path} INJECT output
end
//////////////////////////////////cell_4L
function make_tab_func_gen1(path)
str path
create table {path}/tab_func_gen
/*
// normal waveform
call {path}/tab_func_gen TABCREATE 10 0 8
setfield {path}/tab_func_gen \
table->table[0] -55e-3 \
table->table[1] -51.25e-3 \
table->table[2] -47.5e-3 \
table->table[3] -43.75e-3 \
table->table[4] -40e-3 \
table->table[5] -40.3e-3 \
table->table[6] -40.6e-3 \
table->table[7] -40.9e-3 \
table->table[8] -41.2e-3 \
table->table[9] -41.5e-3 \
table->table[10] -55e-3
*/
// deep waveform
call {path}/tab_func_gen TABCREATE 10 0 8
setfield {path}/tab_func_gen \
table->table[0] -60e-3 \
table->table[1] -55e-3 \
table->table[2] -50e-3 \
table->table[3] -45e-3 \
table->table[4] -40e-3 \
table->table[5] -40.3e-3 \
table->table[6] -40.6e-3 \
table->table[7] -40.9e-3 \
table->table[8] -41.2e-3 \
table->table[9] -41.5e-3 \
table->table[10] -60e-3
/*
// steep waveform
call {path}/tab_func_gen TABCREATE 1000 0 8
float i
float value
for (i=0; i<=399 ;i=i+1)
value = {-55e-3+ .0125*{i}/1000}
setfield {path}/tab_func_gen table->table[{i}] {value}
//echo {i} " " {value}
end
for (i=400; i<=899 ;i=i+1)
value = -40e-3 -.003*({i}/1000-0.4)
setfield {path}/tab_func_gen table->table[{i}] {value}
//echo {i} " " {value}
end
for (i=900; i<=1000 ;i=i+1)
value = -41.5e-3+ -.135*{{i}/1000-0.9}
setfield {path}/tab_func_gen table->table[{i}] {value}
//echo {i} {value}
end
*/
call {path}/tab_func_gen TABFILL 80000 2 // xdivs, fill_mode 2 = linear
setfield {path}/tab_func_gen step_mode 1 // repeating mode
setfield {path}/tab_func_gen stepsize 1e-4 // time step
end
//////////////////////////////cell_4R
function make_tab_func_gen2(path)
str path
create table {path}/tab_func_gen
call {path}/tab_func_gen TABCREATE 10 0 8
/*
// normal waveform
setfield {path}/tab_func_gen \
table->table[0] -55e-3 \
table->table[1] -51.25e-3 \
table->table[2] -47.5e-3 \
table->table[3] -43.75e-3 \
table->table[4] -40e-3 \
table->table[5] -40.3e-3 \
table->table[6] -40.6e-3 \
table->table[7] -40.9e-3 \
table->table[8] -41.2e-3 \
table->table[9] -41.5e-3 \
table->table[10] -55e-3
*/
// deep waveform
call {path}/tab_func_gen TABCREATE 10 0 8
setfield {path}/tab_func_gen \
table->table[0] -60e-3 \
table->table[1] -55e-3 \
table->table[2] -50e-3 \
table->table[3] -45e-3 \
table->table[4] -40e-3 \
table->table[5] -40.3e-3 \
table->table[6] -40.6e-3 \
table->table[7] -40.9e-3 \
table->table[8] -41.2e-3 \
table->table[9] -41.5e-3 \
table->table[10] -60e-3
//call {path}/tab_func_gen TABFILL 160000 2 // xdivs, fill_mode 2 = linear
call {path}/tab_func_gen TABFILL 80000 2 // xdivs, fill_mode 2 = linear
setfield {path}/tab_func_gen step_mode 1 // repeating mode
setfield {path}/tab_func_gen stepsize 1e-4 // 5e-5 // time step
end
/////////////////////////////////cell_5L
function make_tab_func_gen3(path)
str path
create table {path}/tab_func_gen
call {path}/tab_func_gen TABCREATE 10 0 8
/*
call {path}/tab_func_gen TABCREATE 10 0 8
setfield {path}/tab_func_gen \
table->table[0] -30e-3 \
table->table[1] -30e-3 \
table->table[2] -30e-3 \
table->table[3] -30e-3 \
table->table[4] -30e-3 \
table->table[5] -30e-3 \
table->table[6] -30e-3 \
table->table[7] -30e-3 \
table->table[8] -30e-3 \
table->table[9] -30e-3 \
table->table[10] -30e-3
*/
//call {path}/tab_func_gen TABFILL 160000 2 // xdivs, fill_mode 2 = linear
call {path}/tab_func_gen TABFILL 80000 2 // xdivs, fill_mode 2 = linear
setfield {path}/tab_func_gen step_mode 1 // repeating mode
setfield {path}/tab_func_gen stepsize 1e-4 // 5e-5 // time step
end