From 979f4624aec10190e5dcff7c7b97b385feddb5d1 Mon Sep 17 00:00:00 2001 From: Maps Date: Mon, 16 Feb 2015 18:29:28 +0100 Subject: [PATCH] PK: update to support the 'Vacuum' setup in the cleanroom --- tools/init_system.pl | 23 +++++++++++----- tools/scurve_control.sh | 59 ++++++++++++++++++++--------------------- 2 files changed, 45 insertions(+), 37 deletions(-) diff --git a/tools/init_system.pl b/tools/init_system.pl index 05bc119..8be4b9e 100755 --- a/tools/init_system.pl +++ b/tools/init_system.pl @@ -82,17 +82,26 @@ run(DAQTOOLSPATH."/tools/loadregisterdb.pl ".CONFIGPATH."/network/register_confi trb_write(0xfffe,0x00c5,0x20ff); #Timeouts if($system eq 'Vacuum') { - trb_write($ccu,0x00c0,0x00e1); - trb_write($ccu,0x00c1,0x00e1); - trb_write($ccu,0x00c3,0x00ff); #only slowcontrol for unused FPGA + trb_write($ccu,0x00c0,0x00f1); + trb_write($ccu,0x00c1,0x00f1); + trb_write($ccu,0x00c3,0x00f1); +# trb_write($ccu,0x00c0,0x00e1); +# trb_write($ccu,0x00c1,0x00e1); +# trb_write($ccu,0x00c3,0x00ff); # unused FPGAs: enable slowcontrol only } if($system eq 'ELab') { - trb_write($ccu,0x00c0,0x00ec); - trb_write($ccu,0x00c1,0x00ec); - trb_write($ccu,0x00c3,0x00fc); # only 0x00, 0x02, 0x03 active -# trb_write($ccu,0x00c0,0x00f8); + +# trb_write($ccu,0x00c0,0x00ec); +# trb_write($ccu,0x00c1,0x00ec); +# trb_write($ccu,0x00c3,0x00fc); # only 0x00, 0x02, 0x03 active + +# trb_write($ccu,0x00c0,0x00f8); # trb_write($ccu,0x00c1,0x00f8); # trb_write($ccu,0x00c3,0x00f8); # only 0x03 active + + trb_write($ccu,0x00c0,0x00f4); + trb_write($ccu,0x00c1,0x00f4); + trb_write($ccu,0x00c3,0x00f4); # only 0x02 active } #Send arbiter start signal diff --git a/tools/scurve_control.sh b/tools/scurve_control.sh index 34ecb9e..a147aa3 100755 --- a/tools/scurve_control.sh +++ b/tools/scurve_control.sh @@ -5,7 +5,7 @@ ### ------------ Interpret the command line arguments ------------ -usage () { echo -e "\nUsage: ./scurve_new2.sh [ELab/Vacuum] [Number of Runs] [Step Size]\n"; } +usage () { echo -e "\nUsage: ./scurve_control.sh [ELab/Vacuum] [Number of Runs] [Step Size]\n"; } if [ -z "$1" ] # check if first parameter is empty then @@ -16,12 +16,18 @@ fi if [ $1 == 'ELab' ] then - printf -v trbaddr '%s' '0xd882' + PERIPH_ROC='0xd882' + CCU='0x8880' export DAQOPSERVER=localhost:88 + JTAG_CONFIG_FILE=/local.1/htdocs/mvdconfig/config/sensorE0scurve2.xml + SETUP_FILE=/local.1/htdocs/mvdconfig/setup/scurve2_setup_ELab2.xml elif [ $1 == 'Vacuum' ] then - printf -v trbaddr '%s' '0xd000' + PERIPH_ROC='0xd000' + CCU='0x8000' export DAQOPSERVER=localhost:7 + JTAG_CONFIG_FILE=/local.1/htdocs/mvdconfig/config/sensorE0scurve.xml + SETUP_FILE=/local.1/htdocs/mvdconfig/setup/scurve2_setup.xml else echo Error: system unspecified! Use ELab or Vacuum as the first parameter. exit -1 @@ -64,50 +70,42 @@ fi # Setting up general properties of the ROC: -# trbcmd w $trbaddr 0x8002 0xaaa0aaa0 # set sensor ID for sensor 0 -# trbcmd w $trbaddr 0x8402 0xbbb0bbb0 # set sensor ID for sensor 1 -trbcmd w $trbaddr 0x8001 0x1 # set testmode was 8006 +# trbcmd w $PERIPH_ROC 0x8002 0xaaa0aaa0 # set sensor ID for sensor 0 +# trbcmd w $PERIPH_ROC 0x8402 0xbbb0bbb0 # set sensor ID for sensor 1 +trbcmd w $PERIPH_ROC 0x8001 0x1 # set testmode was 8006 -trbcmd w 0x8880 0xc0 0xf4 -trbcmd w 0x8880 0xc1 0xf4 -trbcmd w 0x8880 0xc3 0xf4 +#trbcmd w $CCU 0xc0 0xf4 +#trbcmd w $CCU 0xc1 0xf4 +#trbcmd w $CCU 0xc3 0xf4 # Starting the configuration / readout cycles -for BANK in 0 +for BANK in 0 1 2 3 do echo -e "\nBank $BANK" -for i in $(seq 180 $stepsize 240) +for i in $(seq 101 $stepsize 255) do echo Threshold $i printf -v threshhex '%02x' $i - trbcmd w $trbaddr 0x8002 0x1 # set soft reset to 1 (skip run 0) was 8005 + trbcmd w $PERIPH_ROC 0x8002 0x1 # set soft reset to 1 (skip run 0) was 8005 # change sensor settings, i.e. thresholds to $i if [[ $BANK -eq 0 ]]; then #echo "DAC_BIAS/IVDREF1A=$i;DAC_BIAS/IVDREF1B=$i;DAC_BIAS/IVDREF1C=$i;DAC_BIAS/IVDREF1D=$i;DIS_DISCRI/DisDiscri=0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000000000" | ./changeConfigVal.pl -c /local.1/htdocs/mvdconfig/config/sensorE0scurve2.xml - echo "DAC_BIAS/IVDREF1A=$i;DAC_BIAS/IVDREF1B=255;DAC_BIAS/IVDREF1C=255;DAC_BIAS/IVDREF1D=255" | ./changeConfigVal.pl -c /local.1/htdocs/mvdconfig/config/sensorE0scurve2.xml + echo "DAC_BIAS/IVDREF1A=$i;DAC_BIAS/IVDREF1B=255;DAC_BIAS/IVDREF1C=255;DAC_BIAS/IVDREF1D=255" | ./changeConfigVal.pl -c $JTAG_CONFIG_FILE elif [[ $BANK -eq 1 ]]; then - echo "DAC_BIAS/IVDREF1A=255;DAC_BIAS/IVDREF1B=$i;DAC_BIAS/IVDREF1C=255;DAC_BIAS/IVDREF1D=255" | ./changeConfigVal.pl -c /local.1/htdocs/mvdconfig/config/sensorE0scurve2.xml + echo "DAC_BIAS/IVDREF1A=255;DAC_BIAS/IVDREF1B=$i;DAC_BIAS/IVDREF1C=255;DAC_BIAS/IVDREF1D=255" | ./changeConfigVal.pl -c $JTAG_CONFIG_FILE elif [[ $BANK -eq 2 ]]; then - echo "DAC_BIAS/IVDREF1A=255;DAC_BIAS/IVDREF1B=255;DAC_BIAS/IVDREF1C=$i;DAC_BIAS/IVDREF1D=255" | ./changeConfigVal.pl -c /local.1/htdocs/mvdconfig/config/sensorE0scurve2.xml + echo "DAC_BIAS/IVDREF1A=255;DAC_BIAS/IVDREF1B=255;DAC_BIAS/IVDREF1C=$i;DAC_BIAS/IVDREF1D=255" | ./changeConfigVal.pl -c $JTAG_CONFIG_FILE elif [[ $BANK -eq 3 ]]; then - echo "DAC_BIAS/IVDREF1A=255;DAC_BIAS/IVDREF1B=255;DAC_BIAS/IVDREF1C=255;DAC_BIAS/IVDREF1D=$i" | ./changeConfigVal.pl -c /local.1/htdocs/mvdconfig/config/sensorE0scurve2.xml + echo "DAC_BIAS/IVDREF1A=255;DAC_BIAS/IVDREF1B=255;DAC_BIAS/IVDREF1C=255;DAC_BIAS/IVDREF1D=$i" | ./changeConfigVal.pl -c $JTAG_CONFIG_FILE fi # programming the sensor via JTAG - if [ $1 == 'Vacuum' ] - then - ./init_setup.pl /local.1/htdocs/mvdconfig/setup/scurve2_setup.xml - #./init_setup.pl /local.1/htdocs/mvdconfig/setup/scurve2_setup.xml - elif [ $1 == 'ELab' ] - then - ./init_setup.pl /local.1/htdocs/mvdconfig/setup/scurve2_setup_ELab2.xml - #./startup.pl /local.1/htdocs/mvdconfig/setup/scurve2_setup_ELab2.xml - fi + ./init_setup.pl $SETUP_FILE sleep 0.3 # wait until the run is finished (throw away data, because dirty) # Start taking data and cycle through runs: @@ -118,17 +116,18 @@ do printf -v runhex '%05x' $j check="0" #while [ "$check" -eq "0" ]; do - trbcmd w $trbaddr 0x8002 0x1 # reset the FPGA buffers was 8005 - # result=$(trbcmd r $trbaddr 0x8005) + trbcmd w $PERIPH_ROC 0x8002 0x1 # reset the FPGA buffers was 8005 + # result=$(trbcmd r $PERIPH_ROC 0x8005) # check=${result:17:1} echo "attempting soft-reset..." #done - trbcmd w $trbaddr 0x8002 0x0 # clear the previous reset was 8005 - trbcmd w $trbaddr 0x8003 0x$threshhex$BANK$runhex # write current scan parameters to ROC-FPGA (later in data) was 8007 + trbcmd w $PERIPH_ROC 0x8002 0x0 # clear the previous reset was 8005 + trbcmd w $PERIPH_ROC 0x8003 0x$threshhex$BANK$runhex # write current scan parameters to ROC-FPGA (later in data) was 8007 - trbcmd w $trbaddr 0xb00b 0x1 # start the next run in the s-curve mode + trbcmd w $PERIPH_ROC 0xb00b 0x1 # start the next run in the s-curve mode sleep 0.3 # wait until run is finished done done done + -- 2.43.0