From: Jan Michel Date: Fri, 11 Jul 2014 13:23:04 +0000 (+0200) Subject: fixed SPI when lock bit is stuck X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=45d6961fb029c61d32775897f530fa4de410dd30;p=daqtools.git fixed SPI when lock bit is stuck --- diff --git a/web/htdocs/commands/getpadiwa.pl b/web/htdocs/commands/getpadiwa.pl index d4b7a5d..b704c60 100755 --- a/web/htdocs/commands/getpadiwa.pl +++ b/web/htdocs/commands/getpadiwa.pl @@ -36,9 +36,22 @@ $board = hex($board); sub sendcmd { my ($cmd,$chain) = @_; my $c = [$cmd,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1<<$chain,0x10001]; - do{ + my $errcnt = 0; + while(1){ trb_register_write_mem($board,0xd400,0,$c,scalar @{$c}); - } while(trb_strerror() ne "No Error"); + if (trb_strerror() ne "No Error") { + sleep 1; + if($errcnt >= 12) { + die "SPI still blocked\n"; + } + elsif($errcnt++ >= 10) { + trb_register_read($board,0xd412); + } + } + else { + last; + } + } return trb_register_read($board,0xd412); }