From: hadaq Date: Sun, 5 Jul 2009 23:18:55 +0000 (+0000) Subject: t needed any more X-Git-Tag: v6.0~422 X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=cc44037d7e749fc13c4554f80bfda23619d34aad;p=trbnettools.git t needed any more --- diff --git a/libtrbnet/HowTo_ADCM_v2.txt b/libtrbnet/HowTo_ADCM_v2.txt deleted file mode 100644 index d0726f1..0000000 --- a/libtrbnet/HowTo_ADCM_v2.txt +++ /dev/null @@ -1,94 +0,0 @@ -HowTo ADCM_v2 -============= - -Alle Skripte / Software befindet sich im TRB0 /home/hadaq/mboehmer/ ! - -Anschalten: Board zieht ca. 2A in Vollbestückung, im konfigurierten Betrieb ca. 2.8A. Netzteil wird heiss! - -TRB: ./load_xilinx.sh - -Initialisieren: ./setaddress_sn000 -> TRBnet-Adresse 0x42 wird zugewiesen - -APVs klarmachen: ./init_apvs - -APVs syncen: ./trbbang T 3 0 aa bb cccc - -Sync-Event abholen: ./trbbang I 0 aa bb cccc - -Triggern: ./trbbang T 0 X aa bb cccc - -X: 0 -> RAW128 mode (all channels raw) - 1 -> PED128 mode (all channels pedestal corrected) - 2 -> PED128THR mode (mode 1 + threshold comparison) - 3 -> reserved - 4 -> NC64PED64 - 5 -> NC64 - 6 -> NC64GOOD - 7 -> NC64THR - -############################################################################################ - -Datenformat: - -D[31] 0 -> Daten, 1 -> Debug -D[30:28] sector number -D[27:25] module number -D[24:21] APV number -D[20:14] channel number -D[13:0] ADC data - -Debug: - -D[30:28] sector number -D[27:25] module number -D[24:21] APV number -D[20] bad buffer -D[19] buffer not valid -D[18] frame counter error -D[17] row error -D[16] APV error bit set -D[15:12] number of frames requested -D[11:8] current frame number -D[7:0] row information (if available) - - - - - - -############################################################################################ - -Es gibt vier Kontrollregister im APV, die die Boardkonfiguration beeinflussen: - -0xc0: [31] RESET_SYS - [30] RESET_APV - [29] RESET_ADC - [26] POWERDOWN_ADC1 - [25] POWERDOWN_ADC0 - [24] reserved, do not use - [16] LED auf Backplane :-) - [15:0] APV_ON - -0xc1: [31] reset PLL ADC1 - [27:24] Phase PLL ADC1 - [23] reset PLL ADC0 - [19:16] Phase PLL ADC0 - [14:12] debug output select ADC1 - [10:8] debug output select ADC0 - [7] reset PLL 40MHz - [3:0] Phase CLK ADC / APV - -0xc2: [31:28] maximum number of APV frames / event (= 0x3) - [23:20] TODO hardware trigger 2 - [19:16] DELAY hardware trigger 2 - [15:12] TODO hardware trigger 1 - [11:8] DELAY hardware trigger 1 - [7:4] TODO hardware trigger 0 - [3:0] DELAY hardware trigger 0 - -0xc3: [31:24] BitHigh setting - [23:16] BitLow setting - [15:8] FlatHigh setting - [7:0] FlatLow setting - - diff --git a/libtrbnet/pulser.c b/libtrbnet/pulser.c index 1781302..3457ab8 100644 --- a/libtrbnet/pulser.c +++ b/libtrbnet/pulser.c @@ -117,6 +117,8 @@ int main(int argc, char ** argv) /* Loop Triggers */ while(evtCounter < numEvts) { + unsigned int len; + /* Block signals */ sigprocmask(SIG_BLOCK, &blockSet, NULL); @@ -132,14 +134,25 @@ int main(int argc, char ** argv) fprintf(stderr, "Error IPU Read\n"); exit(EXIT_FAILURE); } - + + /* There must be a DHDR --> size must be at least >= 2 */ + if (size < 2) { + fprintf(stderr, "DHRD error, size=%d\n", size); + exit(EXIT_FAILURE); + } + len = ((buffer[1] >> 16) & 0xffff) + 2; + if (len >= size) { + fprintf(stderr, "DHRD len error, len=%d size=%d\n", len, size); + exit(EXIT_FAILURE); + } + /*fprintf(stderr, "number padding zeros: %d\n", size - len);*/ if (writeToStdout == 1) { fprintf(stdout, "Trigger# %d\n", trgNumber); - for (i = 0; i < size; i++) { + for (i = 0; i < len; i++) { fprintf(stdout, "0x%08x\n", buffer[i]); } } else { - if (fwrite((void*)buffer, 4, size, hldFile) != size) { + if (fwrite((void*)buffer, 4, len, hldFile) != len) { perror("Writing to File failed"); exit(EXIT_FAILURE); }