]> jspc29.x-matter.uni-frankfurt.de Git - daqtools.git/commitdiff
Add option for 17 SPI DAC chained to dac_program.pl
authorJan Michel <j.michel@gsi.de>
Wed, 5 Feb 2020 14:52:49 +0000 (15:52 +0100)
committerJan Michel <j.michel@gsi.de>
Wed, 5 Feb 2020 14:52:49 +0000 (15:52 +0100)
tools/dac_program.pl

index 12dfa761d81265baeb3b06535d8bf9fbee630dd1..49bd95e52ee7cfcd3629767f35a6482af9b4df8c 100755 (executable)
@@ -57,17 +57,33 @@ while (my $a = <$fh>) {
     $o = $cmd << 20;
     $o |= $chan << 16;
     $o |= (($val*1.+$offset)/$reference*65536.) & 0xFFFF;
-    
+
     my @values;
+    $values[16] = $chain;
+
+    if($dac == 16) {
+      foreach my $i (0..15) {
+        $values[$i] = 0x00F00000;
+        }
+      $values[17] = 16;
+      trb_register_write($board,0xd417, $chain | ($chain << 16));
+      trb_register_write_mem($board,0xd400,0,\@values,18) or die "trb_register_write_mem: ", trb_strerror(); 
+      usleep(5*$chainlen);
+      }    
+
+
     foreach my $i (0..15) {
       $values[$i] = 0x00F00000;
       }
-    $values[16] = $chain;
     $values[17] = $chainlen;
-    $values[$chainlen-1-$dac] = $o;
+    $values[$chainlen-1-($dac & 0xf)] = $o;
 #    print Dumper @values;
 #    print "\n";
     trb_register_write_mem($board,0xd400,0,\@values,18) or die "trb_register_write_mem: ", trb_strerror(); 
     usleep(5*$chainlen);
+
+    if($dac == 16) {
+      trb_register_write($board,0xd417,0);
+      }
     }
   }