]> jspc29.x-matter.uni-frankfurt.de Git - daqtools.git/commitdiff
update Trb3scADC readout script for all currently used setups master
authorJan Michel <michel@physik.uni-frankfurt.de>
Fri, 1 Aug 2025 14:52:26 +0000 (16:52 +0200)
committerJan Michel <michel@physik.uni-frankfurt.de>
Fri, 1 Aug 2025 14:52:26 +0000 (16:52 +0200)
tools/trb3scadc.pl

index 2bf8a9c265a8f332b10f40c4c75fd7a15d82c869..973f18b5423f16a43501fa1c7d2f5e7ad21e25bd 100755 (executable)
@@ -8,24 +8,48 @@ use Data::Dumper;
 use HADES::TrbNet;
 use Time::HiRes qq|usleep|;
 
+
+if(!defined $ARGV[0] || $ARGV[0] eq '-h') {
+print <<HDOC;
+
+./trb3scadc.pl ADDRESS TYPE
+
+
+Select board type for readout:
+0: Trb3sc                   (mostly obsolete since 08.2022)
+1: DiRich
+2: RICH Concentrator
+3: RICH Powerboard Voltages
+4: RICH Powerboard Currents (since 02.2019)
+5: RICH Powerboard Currents (until 02.2019)
+6: Trb5sc                   (mostly obsolete since 08.2022)
+7: MDC                      (obsolete since 08.2022) 
+
+HDOC
+exit;
+}
+
 trb_init_ports() or die trb_strerror();
 
-my $board = hex($ARGV[0]);
 
-#0 for TRB3sc, 1 for DiRich, 2 for Concentrator, 3 for PowerVoltages, 4 for PowerCurrents, 5 for Trb5sc
+my $board = hex($ARGV[0]);
 my $mode = $ARGV[1] || 0;
+
+
+
 my $t = [['mV (3.3)','mV (2.5)','mV (1.2)','mV (6)'],
          ['mV (3.3)','mV (2.5)','mV (1.1)',''],
          ['mV (3.3)','mV (2.5)','mV (1.2)','mA (@1.2)'],
          ['mV (3.3)','mV (2.5)','mV (1.2)','mV (1.1)'],
          ['mA (@1.1)','mA (@1.2)','mA (@2.5)','mA (@3.3)'],
+         ['mA (@1.1)','mA (@1.2)','mA (@2.5)','mA (@3.3)'],
          ['mV (5)','mV (1.1)','mV (2.5)','mV (3.3)']];
-my $channel = [7,7,7,6,5,7]; #SPI interface number
+my $channel = [7,7,7,6,6,5,7,7]; #SPI interface number
 
 #1:4V, 2:2V, 3:1V
-my $resolution = [[2,1,2,1],  [2,2,2,1],  [2,2,2,4],      [2,2,2,2],       [3,3,2,2],        [1,2,1,2]];
-my $multiplier=  [[1,1,0.5,2],[1,1,0.5,0],[1,1,0.5,3.125],[1,1,0.5,0.5],   [2.5,1.25,1,0.5], [2,0.5,1,1]];
-my $modedesc =   [ 'Trb3sc',  'DiRich',   'Concentrator', 'Power-Voltages','Power-Currents', 'Trb5sc'];
+my $resolution = [[2,1,2,1],  [2,2,2,1],  [2,2,2,4],      [2,2,2,2],       [2,3,2,2],        [2,3,2,2],             [1,2,1,2],     [1,2,1,2]];
+my $multiplier=  [[1,1,0.5,2],[1,1,0.5,0],[1,1,0.5,3.125],[1,1,0.5,0.5],   [5,1.25,1,0.5],   [5,1.25,1,0.5],        [2,0.5,1,1],   [1,0.5,2,1]];
+my $modedesc =   [ 'Trb3sc',  'DiRich',   'Concentrator', 'Power-Voltages','Power-Currents', 'Power-Currents 2018', 'Trb5sc',      'MDC'];
 
 print "\nRunning in mode ".$modedesc->[$mode]."\n\n";
 
@@ -34,6 +58,7 @@ print "\nRunning in mode ".$modedesc->[$mode]."\n\n";
 system("trbcmd w $board 0xd41a 25");
 
 my $cmd; my $s;
+trb_register_write($board,0xd417,0x40) if($mode == 4);
 
 $cmd = 0xc1830000 + ($resolution->[$mode][0] << 25);
 $s = Dmon::PadiwaSendCmd($cmd,$board,$channel->[$mode]);
@@ -62,6 +87,9 @@ usleep(5000);
 $s = Dmon::PadiwaSendCmd(0,$board,$channel->[$mode]);
 printf("0x%08x\t%.2f °C\n",$s->{$board},(($s->{$board}>>19)&0xfff)/16.);
 
+trb_register_write($board,0xd417,0x0) if($mode == 4);
+
+
 #back to normal SPI speed
 system("trbcmd w $board 0xd41a 7");
 print "\n";