Bladeren bron

cleanedup my mess

meghana-soleil-pc 3 jaren geleden
bovenliggende
commit
8267d88542
18 gewijzigde bestanden met toevoegingen van 377 en 96 verwijderingen
  1. 113 55
      GUI.py
  2. 22 0
      KALYPSO.sh
  3. 5 3
      full_sequence.sh
  4. 6 6
      full_sequence_ex_rf.sh
  5. 15 0
      kalypso_log_conf.json
  6. 13 10
      normal_acq.sh
  7. 90 0
      pll_62_5.sh
  8. 5 1
      pll_62_5_KARA.sh
  9. 60 0
      read_data.sh
  10. 13 5
      reset.sh
  11. 7 7
      reset_ex_rf.sh
  12. BIN
      soleil_card_offset_1024.bin
  13. 15 0
      soleil_card_offset_1024.csv
  14. 3 3
      strip_data.py
  15. BIN
      strip_data.pyc
  16. BIN
      temp.bin
  17. 10 6
      timescan.sh
  18. BIN
      timescan_plot.pyc

+ 113 - 55
GUI.py

@@ -318,8 +318,8 @@ class Ui_MainWindow(object):
         self.spinBox_int_time.setSizePolicy(sizePolicy)
         self.spinBox_int_time.setMaximumSize(QtCore.QSize(300, 16777215))
         self.spinBox_int_time.setObjectName(_fromUtf8("spinBox_int_time"))
-        self.spinBox_int_time.setRange(0,1024)
-	self.spinBox_int_time.setSingleStep(1)
+        self.spinBox_int_time.setRange(8,1024)
+	self.spinBox_int_time.setSingleStep(8)
         self.gridLayout.addWidget(self.spinBox_int_time, 2, 1, 1, 1)
 
         ## Int. Delay
@@ -340,7 +340,7 @@ class Ui_MainWindow(object):
         self.spinBox_int_delay.setMaximumSize(QtCore.QSize(300, 16777215))
         self.spinBox_int_delay.setObjectName(_fromUtf8("spinBox_int_delay"))
         self.spinBox_int_delay.setRange(1,1023)
-	self.spinBox_int_delay.setSingleStep(1)
+	self.spinBox_int_delay.setSingleStep(8)
         self.gridLayout.addWidget(self.spinBox_int_delay, 3, 1, 1, 1)
 
         ## GOTT gain
@@ -667,6 +667,16 @@ class Ui_MainWindow(object):
         self.status_bar.setObjectName(_fromUtf8("status_bar"))
         self.verticalLayout_9.addWidget(self.status_bar)
 
+
+        self.status_bar_fr = QtGui.QStatusBar(self.centralwidget)
+        self.status_bar_fr.showMessage("Framerate display:")
+        self.status_bar_fr.setSizeGripEnabled(0)
+        self.status_bar_fr.setMaximumSize(QtCore.QSize(900, 100))
+        self.status_bar_fr.setObjectName(_fromUtf8("status_bar_fr"))
+        self.verticalLayout_9.addWidget(self.status_bar_fr)
+
+
+
         self.textEdit = QtGui.QTextEdit(self.centralwidget)
         sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
         sizePolicy.setHorizontalStretch(0)
@@ -1052,6 +1062,7 @@ class Ui_MainWindow(object):
                     self.textEdit.append(u'\u26A0' + ' Data file does not exist!')
                 check_status()
                 led_update()
+                framerate_calc()
 
 
 
@@ -1073,6 +1084,7 @@ class Ui_MainWindow(object):
                    self.textEdit.append(u'\u26A0' + ' Data file does not exist!')
                check_status()
                led_update()
+               framerate_calc()
             else:
                 self.pushButton_run.setStyleSheet("background-color : green")
                 self.pushButton_run.setText(_translate("MainWindow", "RUN", None))
@@ -1095,17 +1107,18 @@ class Ui_MainWindow(object):
             else:
                 self.status_bar.showMessage('Initializing board...', 5000)
                 subprocess.call(['./full_sequence.sh'])
-                self.spinBox_int_time.setValue(2)
+                self.spinBox_int_time.setValue(8)
                 self.spinBox_int_delay.setValue(0)
                 self.spinBox_gott_gain.setValue(2)
                 self.spinBox_total_samples.setValue(1024)
                 self.spinBox_skip_samples.setValue(0)
-                self.spinBox_int_trig.setValue(252)
+                self.spinBox_int_trig.setValue(63)
                 rst_slow_trigger_samples()
                 self.status_bar.showMessage('Board initialized', 1000)
                 self.textEdit.insertPlainText(subprocess.check_output(['./status.sh']))
                 check_status()
                 led_update()
+                framerate_calc()
 
         def init_board_ex_rf():
             self.textEdit.clear()
@@ -1115,27 +1128,69 @@ class Ui_MainWindow(object):
             else:
                 self.status_bar.showMessage('Initializing board...', 5000)
                 subprocess.call(['./full_sequence_ex_rf.sh'])
-                self.spinBox_int_time.setValue(2)
+                self.spinBox_int_time.setValue(8)
                 self.spinBox_int_delay.setValue(0)
                 self.spinBox_gott_gain.setValue(2)
                 self.spinBox_total_samples.setValue(1024)
                 self.spinBox_skip_samples.setValue(0)
-                self.spinBox_int_trig.setValue(252)
+                self.spinBox_int_trig.setValue(63)
                 rst_slow_trigger_samples()
                 self.status_bar.showMessage('Board initialized with external RF parameters', 1000)
                 self.textEdit.insertPlainText(subprocess.check_output(['./status.sh']))
                 check_status()
                 led_update()
+                framerate_calc()
+
 
+#######################################################################################################################
+
+        def framerate_calc():
+            acq_time = read_register("FRAME_RATE", hex = False)
+            acq_time = float(acq_time*0.2)
+            total_samples = read_register("FT_ACQ", hex = False)
+            framerate = float(total_samples / acq_time)
+            #self.status_bar_fr.showMessage('Framerate (Hz): '+framerate + ' : ' + value, 1000)
+            #self.status_bar_fr.showMessage('Framerate (Mfps):' +str(framerate), 1000)
+            self.textEdit.append('Framerate (Mfps):'+ str(framerate))
+            return framerate
+
+
+        def read_int_time_value():
+            integration_time_rd = read_register("INTEG_DURATION", hex = False)
+            integration_time_r = integration_time_rd * 8
+            return integration_time_r
+
+        def write_int_time_value():
+            integration_time_wr = self.spinBox_int_time.text()
+            integration_time_w = int(float(integration_time_wr) )// 8
+            integration_time_w = str(integration_time_w)
+            write_reg("INTEG_DURATION",integration_time_w)
+            return integration_time_w
+
+
+        def read_int_delay_value():
+            integration_delay_rd = read_register("INTEG_DELAY", hex = False)
+            integration_delay_r = integration_delay_rd * 8
+            return integration_delay_r
+
+        def write_int_delay_value():
+            integration_delay_wr = self.spinBox_int_delay.text()
+            integration_delay_w = int(float(integration_delay_wr) )// 8
+            integration_delay_w = str(integration_delay_w)
+            write_reg("INTEG_DELAY",integration_delay_w)
+            return integration_delay_w
+
+########################################################################################################################
         def timescan():
             self.textEdit.setText(timestamp())
             if os.path.isfile('temp_bg.bin'):
                 os.system('pci -w 0x9020 0x80')
                 self.textEdit.insertPlainText(subprocess.check_output(['./timescan.sh']))
                 self.textEdit.append('Timescan complete')
-                timescan_plot.timescan_plot('timescan_data.out', 128 ,1023)
+                timescan_plot.timescan_plot('timescan_data.out', 8 ,512)
+                #timescan_plot.timescan_plot('timescan_data.out', 128 ,1023)
                 self.status_bar.showMessage('Timescan', 1000)
-                write_total_samples()
+                #write_total_samples()
             else:
                 self.textEdit.append(u'\u26A0' + ' Take background measurement first!')
 
@@ -1168,6 +1223,7 @@ class Ui_MainWindow(object):
                 self.textEdit.append(u'\u26A0' + ' Data file does not exist!')
             check_status()
             led_update()
+            framerate_calc()
 
         def readout_background():
             global background_data
@@ -1196,6 +1252,7 @@ class Ui_MainWindow(object):
                 self.textEdit.append(u'\u26A0' + ' Data file does not exist!')
             check_status()
             led_update()
+            framerate_calc()
 
 
         def readout_unmodulated():
@@ -1225,6 +1282,7 @@ class Ui_MainWindow(object):
                 self.textEdit.append(u'\u26A0' + ' Data file does not exist!')
             check_status()
             led_update()
+            framerate_calc()
 
         def poweroff():
             self.textEdit.setText(timestamp())
@@ -1328,8 +1386,8 @@ class Ui_MainWindow(object):
                     self.status_bar.showMessage('Error!', 1000)
                     self.textEdit.insertPlainText(u'\u26A0' + ' Communication failed with FPGA board... Check FPGA, the PCI-Express connection and reboot')
                 else:
-                    self.spinBox_int_time.setValue(read_register("INTEG_DURATION"))
-                    self.spinBox_int_delay.setValue(read_register("INTEG_DELAY"))
+                    self.spinBox_int_time.setValue(read_int_time_value())
+                    self.spinBox_int_delay.setValue(read_int_delay_value())
                     self.spinBox_gott_gain.setValue(read_register("GOTT_GAIN"))
                     self.spinBox_total_samples.setValue(read_register("FT_TO_ACQ"))
                     self.spinBox_skip_samples.setValue(read_register("FT_SKIP"))
@@ -1346,19 +1404,19 @@ class Ui_MainWindow(object):
             status_1 = read_register("STATUS_1", hex=True)
             status_1 = int(status_1,16)
             status_1 = '{:032b}'.format(status_1)
-            if (status_1 == '0000000000000000000000000000000000000000'):
-                self.status_bar.showMessage(u'Status: \u2713', 5000)
-            else:
-                self.status_bar.showMessage(u'Status: \u26A0 error detected!', 5000)
-                self.textEdit.setTextColor(QtGui.QColor(255, 50, 0))
-                if (status_1[0] != '0'):
-                    self.textEdit.append(u'\u26A0' + ' Fast trigger is too fast or integration time is too high!')
-                if (status_1[6] != '0'):
-                    self.textEdit.append(u'\u26A0' + ' ADC fifos full! Problem with onboard DDR memory, turn on/off FPGA board and reboot the system.')
-                if (status_1[8] != '0'):
-                    self.textEdit.append(u'\u26A0' + ' DDR fifo is full during data readout! Re-init, check PCIe connection')
-                if (status_1[16] != '0'):
-                    self.textEdit.append(u'\u26A0' + ' Synchronization lost during operation! Check RF-CLK and re-init the system')
+            #if (status_1 == '0000000000000000000000000000000000000000'):
+            #    self.status_bar.showMessage(u'Status: \u2713', 5000)
+            #else:
+            #    self.status_bar.showMessage(u'Status: \u26A0 error detected!', 5000)
+            #    self.textEdit.setTextColor(QtGui.QColor(255, 50, 0))
+                #if (status_1[0] != '0'):
+                #    self.textEdit.append(u'\u26A0' + ' Fast trigger is too fast or integration time is too high!')
+                #if (status_1[6] != '0'):
+                #    self.textEdit.append(u'\u26A0' + ' ADC fifos full! Problem with onboard DDR memory, turn on/off FPGA board and reboot the system.')
+                #if (status_1[8] != '0'):
+                #    self.textEdit.append(u'\u26A0' + ' DDR fifo is full during data readout! Re-init, check PCIe connection')
+                #if (status_1[16] != '0'):
+                #    self.textEdit.append(u'\u26A0' + ' Synchronization lost during operation! Check RF-CLK and re-init the system')
 
             self.textEdit.setTextColor(QtGui.QColor(0, 0, 0))
             return
@@ -1387,39 +1445,39 @@ class Ui_MainWindow(object):
                 self.led12.value=False
             else:
                 # True = red = error
-                if (status_led[4] != '1'):
-                    self.led1.value=True
-                if (status_led[5] != '1'):
-                    self.led2.value=True
+                if (status_led[4] != '0'):
+                    self.led12.value=True
+                if (status_led[5] != '0'):
+                    self.led11.value=True
                 if (status_led[17] != '0'):
-                    self.led3.value=True
+                    self.led10.value=True
                 if (status_led[18] != '0'):
-                    self.led4.value=True
+                    self.led9.value=True
                 if (status_led[19] != '0'):
-                    self.led5.value=True
-                if (status_led[20] != '1'):
-                    self.led6.value=True
-                if (status_led[21] != '1'):
-                    self.led7.value=True
-                if (status_led[22] != '1'):
                     self.led8.value=True
-                if (status_led[23] != '1'):
-                    self.led9.value=True
-                if (status_led[25] != '1'):
-                    self.led10.value=True
-                if (status_led[26] != '0'):
-                    self.led11.value=True
-                if (status_led[27] != '0'):
-                    self.led12.value=True
+                if (status_led[20] != '0'):
+                    self.led7.value=True
+                if (status_led[21] != '0'):
+                    self.led6.value=True
+                if (status_led[22] != '0'):
+                    self.led5.value=True
+                if (status_led[23] != '0'):
+                    self.led4.value=True
+                if (status_led[25] != '0'):
+                    self.led3.value=True
+                if (status_led[26] != '1'):
+                    self.led2.value=True
+                if (status_led[27] != '1'):
+                    self.led1.value=True
             return
 
-        def framerate_calc():
-            acq_time = read_register("FRAME_RATE", hex = False)
-            acq_time = acq_time*200/1000000000
-            total_samples = read_register("FT_TO_ACQ", hex = False)
-            framerate = float(total_samples / acq_time)
+        #def framerate_calc():
+        #    acq_time = read_register("FRAME_RATE", hex = False)
+        #    acq_time = acq_time*200/1000000000
+        #    total_samples = read_register("FT_TO_ACQ", hex = False)
+        #    framerate = float(total_samples / acq_time)
 
-        return framerate
+        #return framerate
 
 
         with open('kalypso_registers.json') as registers_file:
@@ -1429,8 +1487,8 @@ class Ui_MainWindow(object):
             self.log_conf = json.load(log_conf_file)
 
         # BUTTONS ACTIONS
-        self.spinBox_int_time.valueChanged.connect(lambda: write_reg("INTEG_DURATION",self.spinBox_int_time.text()))
-        self.spinBox_int_delay.valueChanged.connect(lambda: write_reg("INTEG_DELAY",self.spinBox_int_delay.text()))
+        self.spinBox_int_time.valueChanged.connect(lambda: write_int_time_value())
+        self.spinBox_int_delay.valueChanged.connect(lambda: write_int_delay_value())
         self.spinBox_gott_gain.valueChanged.connect(lambda: write_reg("GOTT_GAIN",self.spinBox_gott_gain.text()))
         self.spinBox_total_samples.valueChanged.connect(lambda: write_reg("FT_TO_ACQ",self.spinBox_total_samples.text()))
         self.spinBox_skip_samples.valueChanged.connect(lambda: write_reg("FT_SKIP",self.spinBox_skip_samples.text()))
@@ -1484,8 +1542,8 @@ class Ui_MainWindow(object):
         self.label_settings.setText(_translate("MainWindow", "KALYPSO settings", None))
         self.pushButton_readsettings.setText(_translate("MainWindow", "Read-back", None))
         self.label_settings.setFont(boldFont)
-        self.label_int_time.setText(_translate("MainWindow", "Integration Time (16 ns step)", None))
-        self.label_int_delay.setText(_translate("MainWindow", "Integration Delay (16 ns step)", None))
+        self.label_int_time.setText(_translate("MainWindow", "Integration Time (ns)", None))
+        self.label_int_delay.setText(_translate("MainWindow", "Integration Delay (ns)", None))
         self.label_gott_gain.setText(_translate("MainWindow", "GOTTHARD Gain", None))
         self.label_disp_settings.setText(_translate("MainWindow", "Display settings", None))
         self.label_disp_settings.setFont(boldFont)
@@ -1500,7 +1558,7 @@ class Ui_MainWindow(object):
         self.label_controls.setText(_translate("MainWindow", "KALYPSO operation", None))
         self.label_controls.setFont(boldFont)
         self.pushButton_init_board.setText(_translate("MainWindow", "Init Board", None))
-        self.pushButton_init_board_ex_rf.setText(_translate("MainWindow", "Init Board (Soleil)", None))
+        self.pushButton_init_board_ex_rf.setText(_translate("MainWindow", "Init Board (EX_RF)", None))
 
 
         self.pushButton_timescan.setText(_translate("MainWindow", "Timescan", None))

+ 22 - 0
KALYPSO.sh

@@ -0,0 +1,22 @@
+#! /bin/bash
+export PCILIB_MODEL=ipedma
+#!/bin/sh
+echo " ################################################################## "
+echo " Welcome to Kalypso "
+echo " Reset and Initialization is started .... "
+echo " ################################################################## "
+
+
+
+./full_sequence.sh
+
+
+echo " ################################################################## "
+echo " finished .... "
+echo " GUI for 1024 pixels will be started soon "
+echo " ################################################################## "
+sleep 0.0001
+
+./status.sh
+
+python GUI.py

+ 5 - 3
full_sequence.sh

@@ -6,11 +6,11 @@ echo "GLOBAL RESET ... "
 sleep 0.5
 
 echo "PLL INIT/CONF for KARA 62.5 MHz ... "
-./pll_62_5_KARA.sh
+./pll_62_5.sh
 sleep 0.1
 
-./pll_sync.sh
-sleep 0.1
+#./pll_sync.sh
+#sleep 0.1
 
 #./set_dac_voltages_25.sh
 #sleep 0.1
@@ -80,6 +80,8 @@ sleep 0.1
 ./adc_config_2_offset.sh  # previous board
 #pci -w 0x910C e
 #sleep 0.1
+pci -w 64 1ffff
+
 
 pci -w 0x910C 2f
 sleep 0.1

+ 6 - 6
full_sequence_ex_rf.sh

@@ -6,11 +6,11 @@ echo "GLOBAL RESET ... "
 sleep 0.5
 
 echo "PLL INIT/CONF for KARA 62.5 MHz ... "
-./pll_62_5_KARA.sh
+./pll_62_5.sh
 sleep 0.1
 
-./pll_sync.sh
-sleep 0.1
+#./pll_sync.sh
+#sleep 0.1
 
 #./set_dac_voltages_25.sh
 #sleep 0.1
@@ -69,9 +69,9 @@ pci -w 0x9028 0x0
 sleep 0.1
 
 #echo "Gotthard ON ... "
-./align_clock.sh
-./align_clock_b.sh
-sleep 0.1
+#./align_clock.sh
+#./align_clock_b.sh
+#sleep 0.1
 
 
 pci -w 0x910C 0

+ 15 - 0
kalypso_log_conf.json

@@ -0,0 +1,15 @@
+{
+  "log_entries":[
+    "INTEG_DURATION",
+    "INTEG_DELAY",
+    "GOTT_GAIN",
+    "FT_ACQ",
+    "FT_TO_ACQ",
+    "FT_SKIP",
+    "ST_ACQ",
+    "ST_TO_ACQ",
+    "ST_SKIP",
+    "STATUS_1",
+    "VERSION_REG"
+  ]
+}

+ 13 - 10
normal_acq.sh

@@ -37,11 +37,11 @@ sleep 0.1
 #sleep 0.0001
 
 
-echo "reset TOP/BOTTOM"
-pci -w 0x904C 0x2
-sleep 0.001
-pci -w 0x904C 0x0
-sleep 0.001
+#echo "reset TOP/BOTTOM"
+#pci -w 0x904C 0x2
+#sleep 0.001
+#pci -w 0x904C 0x0
+#sleep 0.001
 pci -w 0x9024 0x0
 sleep 0.001
 
@@ -55,15 +55,18 @@ sleep 0.01
 
 echo "Start Normal acquisition + ENABLE Readout to DDR + HEADER"
 pci -w 0x9040 0x1021FF00
-sleep 0.5
+sleep 0.1
+echo $output_file
+echo "*DMA: Reading data..."
+pci -r dma0 --multipacket -o $output_file --timeout=10000000
+
+sleep 0.1
 #./status.sh
 echo "IDLE"
 pci -w 0x9040 0x10210F00
-sleep 0.5
+
 #./status.sh
-echo $output_file
-echo "*DMA: Reading data..."
-pci -r dma0 --multipacket -o $output_file --timeout=1000000
+
 
 #pci -r dma0 --multipacket -o test_data.out --timeout=1000000
 

+ 90 - 0
pll_62_5.sh

@@ -0,0 +1,90 @@
+#!/bin/bash
+
+# R0 (INIT)	0x80000100
+# R0	0x00070600
+# R1	0x00061F01
+# R2	0x00065F02
+# R3	0x00070603
+# R4	0x00070604
+# R5	0x00070305
+# R6	0x00070306
+# R7	0x00065F07
+# R8	0x10000908
+# R9	0xA0022A09
+# R11	0x0082800B
+# R13	0x028F800D
+# R14	0x0830020E
+# R15	0xC800180F
+
+
+
+
+#echo "Remove Board Reset ... "
+#pci -w 0x9040 0x00
+#sleep 0.5
+
+#while :
+#do
+
+echo "*PLL: configuration + calibration start ... "
+echo "*PLL: R0 Reset ... "
+
+pci -w 0x9064 0x80000000
+sleep 0.2
+
+# R0 (INIT)
+pci -w 0x9064 0x80000100
+sleep 0.2
+
+#echo "*PLL: R0 "
+pci -w 0x9064 0x00070600   # clock enable
+#pci -w 0x9064 0x00060600   # clock disable   # OUTPUT 62.5 MHZ to FPGA
+sleep 0.2
+
+#echo "*PLL: R3 "
+pci -w 0x9064 0x00070683          # clk_ADC_2    working:0x000704b3
+sleep 0.2
+
+#echo "*PLL: R4 "
+pci -w 0x9064 0x00070684          # clk_ADC_1    working:0x000704b3
+sleep 0.2
+
+#echo "*PLL: R5 "
+pci -w 0x9064 0x00070305          # FPGA_GTHX_CLOCK_0
+sleep 0.2
+
+#echo "*PLL: R6 "
+pci -w 0x9064 0x00070306          # FPGA_GTHX_CLOCK_1
+sleep 0.2
+
+#echo "*PLL: R7 "
+pci -w 0x9064 0x00000107            # FPGA_SYS_REF before 0x00035C07
+sleep 0.2
+
+echo "*PLL: R8 "
+pci -w 0x9064 0x10000908
+sleep 0.2
+
+echo "*PLL: R9 "
+pci -w 0x9064 0xA0022A09
+sleep 0.2
+
+echo "*PLL: RB (R11)"
+pci -w 0x9064 0x0082800B
+sleep 0.2
+
+echo "*PLL: RD (R13)"
+pci -w 0x9064 0x028F800D
+sleep 0.2
+
+echo "*PLL: RE (R14)"
+pci -w 0x9064 0x0830020E
+sleep 0.2
+
+echo "*PLL: RF (R15)"
+pci -w 0x9064 0xC800180F
+sleep 0.2
+
+
+./pll_sync.sh
+sleep 0.1

+ 5 - 1
pll_62_5_KARA.sh

@@ -28,7 +28,11 @@ pci -w 0x9064 0x80000100 # OUTPUT 500MHZ FPGA
 sleep 0.2
 
 #echo "*PLL: R0 "
-pci -w 0x9064 0x00030100 # OUTPUT 500 MHZ FPGA
+#pci -w 0x9064 0x00030100 # OUTPUT 500 MHZ FPGA
+#sleep 0.2
+
+echo "*PLL: R0 "
+pci -w 0x9064 0x00070400 # OUTPUT 500 MHZ to 62.5 Mhz FPGA
 sleep 0.2
 
 

+ 60 - 0
read_data.sh

@@ -0,0 +1,60 @@
+#! /bin/bash
+export PCILIB_MODEL=ipedma
+#!/bin/sh
+
+dt=$(date +%Y_%m_%d_%Hh_%Mm_%Ss)
+
+
+echo "Number of acquisitions to acquire (Slow Trig.)= 1"
+pci -w 0x9024 0x1
+sleep 0.0001
+
+echo "Number of acquisitions to skip (Slow Trig.)= 0"
+pci -w 0x902C 0x0
+sleep 0.0001
+
+
+
+#pci -r 0x9020 $num_frames
+echo "Number of frame to acquire (Fast Trig.)= 1024"
+pci -w 0x9020 0xF4240   #1 million frames
+#pci -w 0x9020 0x400   #small frames
+#pci -w 0x9020 0x1E8480  #2 million frames
+
+#pci -w 0x9020 0x400
+sleep 0.0001
+
+pci -w 0x9024 0x0
+sleep 0.0001
+
+echo "ADD Reset DDR"
+pci -w 0x9040 0x10210F50
+sleep 0.1
+
+pci -w 0x9040 0x10210F00
+sleep 0.1
+
+echo "Start Normal acquisition + ENABLE Readout to DDR + HEADER"
+pci -w 0x9040 0x1021FF00
+sleep 0.1
+pci -r dma0 --multipacket -o /home/kapture/Desktop/dummy_data/kalypso_${dt}.bin --timeout=10000000
+
+#sleep 3
+#sleep 4
+#./status.sh
+echo "IDLE"
+pci -w 0x9040 0x10210F00
+#sleep 0.1
+./status.sh
+
+
+
+#echo "*DMA: Reading data..."
+#pci -r dma0 --multipacket -o /home/soleil/kalypso/data/bench.out --timeout=10000000
+
+#pci -r dma0 --multipacket -o /home/kapture/Desktop/dummy_data/kalypso_${dt}.bin --timeout=10000000
+#pci -r dma0 --multipacket -o /dev/null --timeout=100000
+
+#./status.sh
+
+#./dumpFile.sh bench.out

+ 13 - 5
reset.sh

@@ -47,13 +47,13 @@ sleep 0.1
 
 ####################################################
 echo "RESET of the KALYPSO"
-#pci -w 9040 0x800ff  # enable internal clock
-pci -w 9040 800800ff # enable external clock
+pci -w 9040 0x800ff  # enable internal clock
+#pci -w 9040 800800ff # enable external clock
 sleep 0.1
 
 echo "DE-RESET of the KALYPSO"
-#pci -w 9040 0x0      # enable internal clock
-pci -w 9040 80000000 # enable external clock
+pci -w 9040 0x0      # enable internal clock
+#pci -w 9040 80000000 # enable external clock
 sleep 0.1
 
 
@@ -65,7 +65,7 @@ pci -w 0x9024 1
 sleep 0.1
 #########################################
 echo "*ONBOARD TRIG GEN: ON"
-pci -w 0x9044 0xb8   #2e was before
+pci -w 0x9044 0x7E   #2e was before
 sleep 0.1
 
 echo "GOTT: Integration Period"
@@ -82,3 +82,11 @@ sleep 0.1
 
 echo "write the number of samples to be acquired"
 pci -w 9108 0x0400
+
+
+
+echo "---------->   NO -reset of the clock align stage"
+#pci -w 9040 10310f00
+#sleep 0.05
+#pci -w 9040 10210f00
+#sleep 0.05

+ 7 - 7
reset_ex_rf.sh

@@ -34,11 +34,11 @@ pci -w 904C 1
 sleep 0.1
 
 #echo "reset and synchronize TOP and BOTTOM"
-pci -w 904C 2
+pci -w 904C 003
 sleep 0.1
 
 #echo "SETTING FOR 1024 PIXELS"
-pci -w 904C 0
+pci -w 904C 001
 sleep 0.1
 
 ####################################################
@@ -47,13 +47,13 @@ sleep 0.1
 
 ####################################################
 echo "RESET of the KALYPSO"
-#pci -w 9040 0x800ff  # enable internal clock
-pci -w 9040 800800ff # enable external clock
+pci -w 9040 0x800ff  # enable internal clock
+#pci -w 9040 800800ff # enable external clock
 sleep 0.1
 
 echo "DE-RESET of the KALYPSO"
-#pci -w 9040 0x0      # enable internal clock
-pci -w 9040 80000000 # enable external clock
+pci -w 9040 0x0      # enable internal clock
+#pci -w 9040 80000000 # enable external clock
 sleep 0.1
 
 
@@ -65,7 +65,7 @@ pci -w 0x9024 1
 sleep 0.1
 #########################################
 echo "*ONBOARD TRIG GEN: ON"
-pci -w 0x9044 0xb8   #2e was before
+pci -w 0x9044 0x7E   #2e was before
 sleep 0.1
 
 echo "GOTT: Integration Period"

BIN
soleil_card_offset_1024.bin


+ 15 - 0
soleil_card_offset_1024.csv

@@ -0,0 +1,15 @@
+Integration Duration,2
+Integration Delay,0
+Front-end electronics gain setting,2
+Number of Fast Triggers acquired,1024
+Number of fast-triggers to acquire,1024
+Number of Fast triggers to skip,0
+Number of Slow-triggers acquired,0
+Number of slow-triggers to acquire,0
+Number of Slow Triggers to skip,0
+Status register 1,49283120
+Firmware version,65543
+Timestamp,2021-04-13T11h56m30s
+Fill number,12345
+Detector,Si01
+Comments,config file data to remove the offset for soleil 1024 px card

+ 3 - 3
strip_data.py

@@ -1,6 +1,6 @@
 import numpy as np
 import sys
-
+import scipy.signal as ss
 
 pixels = 512*2
 TAIL = [0xba98,0xfedc]*16
@@ -167,9 +167,9 @@ def strip_data(filename, number_pixels, orbits, offset = None):
 
         data = np.reshape(data,(-1,pixels))
 
-        data = data[:,final_1024_index_interleaved]
+        data = data[:,final_1024_index_concatenated]
         data = data >> 2
-        data = ss.savgol_filter(data, 51, 3) # window size 51, polynomial order 3
+        #data = ss.savgol_filter(data, 11, 3) # window size 51, polynomial order 3
         orb, pix = np.shape(data)
 
         return (data, orb)

BIN
strip_data.pyc


BIN
temp.bin


+ 10 - 6
timescan.sh

@@ -1,4 +1,6 @@
 #!/bin/sh
+export PCILIB_MODEL=ipedma
+
 pci -w 9024 0x1
 sleep 0.001
 pci -w 9024 0x0
@@ -39,16 +41,18 @@ sleep 0.01
 
 echo "Start Normal acquisition + ENABLE Readout to DDR + HEADER"
 pci -w 0x9040 0x1021FF00
-sleep 0.5
+sleep 0.01
+
+echo $output_file
+echo "*DMA: Reading data..."
+pci -r dma0 --multipacket -o $output_file --timeout=1000000
+
 #./status.sh
 echo "IDLE"
 pci -w 0x9040 0x10210F00
-sleep 0.5
+sleep 0.01
 #./status.sh
-echo $output_file
-echo "*DMA: Reading data..."
-pci -r dma0 --multipacket -o $output_file --timeout=1000000
-echo "TS: Disable time scan"
 
+echo "TS: Disable time scan"
 pci -w 0x9014 0x0
 sleep 0.1

BIN
timescan_plot.pyc