From: Andreas Neiser Date: Mon, 7 Jul 2014 11:44:02 +0000 (+0200) Subject: Adding stripped version of padiwa.pl as adc.pl, works on padiwa, but not on ADC addon... X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=dd277675327a5ddd73e0b5a8e4fb2fc432d8d4f4;p=daqtools.git Adding stripped version of padiwa.pl as adc.pl, works on padiwa, but not on ADC addon so far... --- diff --git a/tools/adc.pl b/tools/adc.pl new file mode 100755 index 0000000..f36cc61 --- /dev/null +++ b/tools/adc.pl @@ -0,0 +1,67 @@ +#!/usr/bin/perl -w +use warnings; +use strict; +use FileHandle; +use Time::HiRes qw( usleep ); +use Data::Dumper; +use HADES::TrbNet; +use Date::Format; + +if (!defined $ENV{'DAQOPSERVER'}) { + die "DAQOPSERVER not set in environment"; +} + +if (!defined &trb_init_ports()) { + die("can not connect to trbnet-daemon on the $ENV{'DAQOPSERVER'}"); +} + +unless(defined $ARGV[0] && defined $ARGV[1]) { + print 'usage: adc.pl $FPGA $cmd [$value]',"\n\n"; + exit; +} + +# define "constants" to make code more readable +# chain=0 : MachXO on addon +# chain=1 : 1st chain on Addon connector SPI_CONN_L +# chain=2 : 2nd chain on Addon connector SPI_CONN_H +# chain=3 : ADC chains (CS via MachXO!) +# chain=4 : 1st LMK clock chip +# chain=5 : 2nd LMK clock chip +my %chain = ( + 'machxo' => 0, + 'addon_0' => 1, + 'addon_1' => 2, + 'adc' => 3, + 'lmk_0' => 4, + 'lmk_1' => 5 + ); + +my $board; +($board) = $ARGV[0] =~ /^0?x?(\w+)/; +$board = hex($board); + + +sub sendcmd { + my $cmd = shift; + my $chain = shift; + my $c = [$cmd,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1<<$chain,1]; + trb_register_write_mem($board,0xd400,0,$c,scalar @{$c}); + # trb_register_write($board,0xd410,1<<$chain) or die "trb_register_write: ", trb_strerror(); + # trb_register_write($board,0xd411,1); + #usleep(1000); + return trb_register_read($board,0xd412); +} + +if ($ARGV[1] eq "time") { + my $ids; + for (my $i = 0; $i <= 1; $i++) { + my $b = sendcmd(0x21000000 + $i*0x10000, $chain{machxo}); + foreach my $e (sort keys %$b) { + $ids->{$e}->{$i} = $b->{$e}&0xffff; + } + } + foreach my $e (sort keys %$ids) { + printf("0x%04x\t0x%04x%04x\t%s\n",$e,$ids->{$e}->{1}, + $ids->{$e}->{0},time2str('%Y-%m-%d %H:%M',($ids->{$e}->{1}*2**16+$ids->{$e}->{0}))); + } +}