Files
JFCalibration/BP_scan_JF11.sh
hinger_v ed18504809 modified: BP_analysis.cpp
modified:   BP_scan.sh
	modified:   BP_scan_JF11.sh
	modified:   CS_analysis.cpp
	modified:   CS_analysis_JF11
	modified:   CS_scan.sh
	modified:   CS_scan_JF11.sh
	modified:   CuFluo_exposure.sh
	modified:   filename_creator.sh
	modified:   makefile
	modified:   pccalib.sh
	modified:   run_JFCalibration.txt
	modified:   slsDetector_bin
	modified:   CS_analysis.cpp
	BP_analysis_M431.cpp
	BP_analysis_thin.cpp
	BP_fit.cpp
	BP_fit_M431.cpp
	BP_fit_thin.cpp
	BP_scan_both_speeds.sh
	BP_scan_thinSensor.sh
	CS_analysis_M431.cpp
	CS_analysis_M439.cpp
	CS_fit.cpp
	CS_fit_M431.cpp
	CS_scan_both_speeds.sh
	CuFluo_exposure_both_speeds.sh
	CuFluo_fit.cpp
	Default_pixels_arrays.cpp
2025-06-27 10:34:14 +02:00

216 lines
5.3 KiB
Bash

#!/bin/bash
# to run do: bash BP_scan.sh 0/1
# arg 1 specify if normal or HG0G1G2 setting
# 1.1 needs file in the blackfin
# prerequisites:
# - setup_env.sh souced
# - the hostname is set
# - detector is on
# - waveform generator is on
# - amplifier board is powered and unconnected.
# connect to pc8830 (or any RH7 machine connected to the pulser and, after klog, run the command
# nc -k -n -v -l -p 5555 -e /bin/bash
KILLRCV="killall ju_udp_receiver_3threads_2_0"
$KILLRCV
if [ "$1" == "" ] || [ $# -gt 1 ]; then
echo "Parameter 1 is empty specify G0 for normal, HG0 for HG0G1G2"
return 0
fi
sls_detector_put stop;
sls_detector_put powerchip 0
sleep 3
#sls_detector_put setbit 0x5d 7
sls_detector_put powerchip 1
CLI=/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay
#sls_detector_put setbit 0x5d 0
sls_detector_put delay 0
sls_detector_put triggers 1
sls_detector_put frames 100
sls_detector_put period 0.005
sls_detector_put exptime 0.000040
sls_detector_put highvoltage 0
# configure for receiver on mpc2012
sls_detector_put udp_dstport 32410
sls_detector_put udp_dstip $DSTIP #10.1.4.105
sls_detector_put udp_dstmac $DSTMAC #3C:FD:FE:A2:14:D8
sls_detector_put udp_srcip 10.1.5.9 #wrong on purpose, so we send some packets to nowhere
sls_detector_put udp_srcmac 00:ab:be:cc:dd:e2
#sls_detector_put configuremac 0
sls_detector_put readoutspeed 1
sls_detector_put start # this puts the chip in a known state. packets to nowhere
sls_detector_put stop
sls_detector_put udp_srcip $SRCIP #10.1.4.9 #now the right one.
sleep 3
if [ "$1" == 'HG0' ]; then
sls_detector_put settings highgain0
RCVON=$TKBPHG0
echo $RCVON
#sls_detector_put reg 0x58 0x00800f ; sls_detector_put setbit 0x58 31 ; sls_detector_put clearbit 0x58 31;
echo "HG0G1G2 mode"
else
sls_detector_put settings gain0
RCVON=$TKBPG0
echo $RCVON
#sls_detector_put reg 0x58 0x10800f ; sls_detector_put setbit 0x58 31 ; sls_detector_put clearbit 0x58 31;
echo "normal mode"
fi
sls_detector_put reg 0x7f 0xff1f
#sls_detector_put reg 0x59 0x1110
sleep 1
#sls_detector_put reg 0x5b 0xffffffff
#sls_detector_put reg 0x5a 0xffffffff
sleep 1
#sls_detector_put setbit 0x58 30 ; sleep 1 ;sls_detector_put clearbit 0x58 30;
sleep 1
#sls_detector_put reg 0x5b 0xffffffff
#sls_detector_put reg 0x5a 0xffffffff
#sls_detector_put setbit 0x5d 16
#sls_detector_put start;
#sls_detector_put stop;
#sls_detector_put clearbit 0x5d 16
# prepare the AGILENT 33250A
echo $CLI" OUTP OFF " | nc pc10773 5555
sleep 0.2
#remember to put High-Z load!
#Change load to Infinity
echo $CLI" OUTP:LOAD INF " | nc pc10773 5555
# Polarity normal
echo $CLI" OUTP:POL NORM" | nc pc10773 5555
# pulse
echo $CLI" FUNC PULS" | nc pc10773 5555
sleep 0.2
# frequency 1kHz
echo $CLI" FREQ 1000" | nc pc10773 5555
sleep 0.2
# width 40 us
echo $CLI" PULS:WIDT 0.000040" | nc pc10773 5555
sleep 0.2
# amplitude 0.1 V" | nc pc8830 5555
echo $CLI" VOLT 0.1" | nc pc10773 5555
sleep 0.2
# offset 0 V
#echo $CLI" VOLT:OFFS 0" | nc pc8830 5555
sleep 0.2
# VLOW 0 V
echo $CLI" VOLT:LOW 0" | nc pc10773 5555
sleep 0.2
# edge 50 ns
echo $CLI" PULS:TRAN 0.000000050" | nc pc10773 5555
sleep 0.2
# triggered burst
echo $CLI" BURS:MODE TRIG" | nc pc10773 5555
sleep 0.2
# cycles 1
echo $CLI" BURS:NCYC 1" | nc pc10773 5555
sleep 0.2
# external trigger source
echo $CLI" TRIG:SOUR EXT" | nc pc10773 5555
sleep 0.2
# delay 1 us
echo $CLI" TRIG:DEL 0.000001" | nc pc10773 5555
sleep 0.2
# slope positive
echo $CLI" TRIG:SLOP POS" | nc pc10773 5555
sleep 0.2
# turn on burst mode
echo $CLI" BURS:STAT ON" | nc pc10773 5555
sleep 0.2
echo "It is now safe to connect the cable between the amplifier board and the readout board"
echo "Please do so and press any key to continue, or press q to exit this script"
read -n 1 -s input
if [[ $input = "q" ]]; then
echo "Exiting script"
exit 1
fi
# high voltage
#sls_detector_put highvoltage 200 #because it seemed more stable, we are using external HV 230V
# output on
echo $CLI" OUTP ON" | nc pc10773 5555
sleep 0.2
echo "The current on the amplifier board should be ~0.035 A"
echo "Please check and press any key to continue, or press q to exit this script"
read -n 1 -s input
if [[ $input = "q" ]]; then
echo "Exiting script"
exit 1
fi
echo "The receiver should be waiting for data"
echo "Please check and press any key to continue, or press q to exit this script"
read -n 1 -s input
if [[ $input = "q" ]]; then
echo "Exiting script"
exit 1
fi
# sls_detector_put gainmode fixg0 # Trial for M431_JF12
# sleep 2
$RCVON &
# the scan
for ivpulse in {10..1000..10}
do
vpulse=$(printf %.3f $(echo "$ivpulse/1000" | bc -l))
echo $CLI" VOLT:HIGH "$vpulse | nc pc10773 5555 #24.02.2025 changed, before command was echo $CLI" VOLT "$vpulse | nc pc10773 5555
sleep 1
sls_detector_put start
sleep 1
done
for ivpulse in {1050..7000..50}
do
vpulse=$(printf %.3f $(echo "$ivpulse/1000" | bc -l))
echo $CLI" VOLT:HIGH "$vpulse | nc pc10773 5555 #24.02.2025 changed, before command was echo $CLI" VOLT "$vpulse | nc pc10773 5555
sleep 1
sls_detector_put start
sleep 1
done
# high voltage
#sls_detector_put highvoltage 0
# output off
echo $CLI" OUTP OFF " | nc pc10773 5555
echo "Finished scan, please wait for capacitor to discharge"
sleep 20
echo "It is now safe to disconnect the cable between the amplifier board and the readout board"
echo "Script finished"