]> jspc29.x-matter.uni-frankfurt.de Git - daqtools.git/commitdiff
nxyter new database entries
authorLudwig Maier <lmaier@bia.e12.ph.tum.de>
Tue, 5 Nov 2013 17:34:04 +0000 (18:34 +0100)
committerLudwig Maier <lmaier@bia.e12.ph.tum.de>
Wed, 6 Nov 2013 01:11:23 +0000 (02:11 +0100)
users/tum_e12/trbdhcp.conf [changed from file to symlink]
web/htdocs/nxyter/index.pl
xml-db/database/Nxyter.xml
xml-db/get.pl
xml-db/put.pl

deleted file mode 100644 (file)
index a4e1c71ee27f520d00f5d7c27131dbf6cda235d7..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1,5 +0,0 @@
-0x8000  0x12000002e2d98d28  0x05
-0x8900  0xcf000003480d8a28  0x00
-0x8901  0x99000002e30e5728  0x01
-0x8902  0x4e000002e2e24c28  0x02
-0x8903  0x6a000002e2e24328  0x03
new file mode 120000 (symlink)
index 0000000000000000000000000000000000000000..08e20d3fbfc9bedd82fde3c3d29474198e24fbc6
--- /dev/null
@@ -0,0 +1 @@
+/home/rich/hadesdaq/main/trbdhcp.conf
\ No newline at end of file
index 2f16532cb277575810e3cd54e38fbbeca7920ef0..d5a7ae5e4e126dc65fe6d6e8e61dda1e06515b4f 100755 (executable)
@@ -21,16 +21,35 @@ $setup[0]->{cmd}     = "Nxyter-0x3800-DataValidate";
 $setup[0]->{period}  = -1;
 $setup[0]->{address} = 1;
 
-
 $setup[1]->{name}    = "TrigValid";
 $setup[1]->{cmd}     = "Nxyter-0x3800-TriggerValidate";
 $setup[1]->{period}  = -1;
 $setup[1]->{address} = 1;
 
-$setup[2]->{name}    = "OtherStuff";
-$setup[2]->{cmd}     = "Nxyter-0x3800-TriggerValidate";
+$setup[2]->{name}    = "TriggerHandler";
+$setup[2]->{cmd}     = "Nxyter-0x3800-TriggerHandler";
 $setup[2]->{period}  = -1;
-$setup[2]->{generic} = 1;
+$setup[2]->{address} = 1;
+
+$setup[3]->{name}    = "Testpulse";
+$setup[3]->{cmd}     = "Nxyter-0x3800-TestPulse";
+$setup[3]->{period}  = -1;
+$setup[3]->{address} = 1;
+
+$setup[4]->{name}    = "DataReceiver";
+$setup[4]->{cmd}     = "Nxyter-0x3800-DataReceiver";
+$setup[4]->{period}  = -1;
+$setup[4]->{address} = 1;
+
+$setup[5]->{name}    = "I2CRegister";
+$setup[5]->{cmd}     = "Nxyter-0x3800-NxyterI2C";
+$setup[5]->{period}  = -1;
+$setup[5]->{address} = 1;
+
+$setup[6]->{name}    = "OtherStuff";
+$setup[6]->{cmd}     = "Nxyter-0x3800-TriggerValidate";
+$setup[6]->{period}  = -1;
+$setup[6]->{generic} = 1;
 
 xmlpage::initPage(\@setup,$page);
  
index 582f1808adf6e2ea46bbda4a4a8e2001d6e3899a..b7513d07f7ff7930f4b21dd4bd144a499c6dc6fe 100644 (file)
       <description>Number of invalid frames</description>
       <field name="InvalidFrames" start="0" bits="16" format="unsigned" />
     </register>
+
     <register name="OverflowCount" address="0001" purpose="status">
       <description>Number of hit overflows</description>
       <field name="OverflowCount" start="0" bits="16" format="unsigned" />
     </register>
+
     <register name="PileupCount" address="0002" purpose="status">
-      <description>Number of hit overflows</description>
+      <description>Pileup Counter</description>
       <field name="PileupCount" start="0" bits="16" format="unsigned" />
     </register>
+
     <register name="ParityErrorCount" address="0003" purpose="status">
-      <description>Number of hit overflows</description>
+      <description>Parity Error Counter</description>
       <field name="ParityErrorCount" start="0" bits="16" format="unsigned" />
     </register>
+
     <group name="NxyterRates"
-         address="0004"  size="2"  purpose="status"  mode="r"  continuous="true">
+           address="0004"  size="2"  purpose="status"  mode="r"  continuous="true">
       <register name="HitRate" address="0000" purpose="status">
         <description>Total hit rate summed over all channels</description>
         <field name="HitRate" start="0" bits="32" format="unsigned" unit="Hz"/>
       </register>
+
       <register name="FrameRate" address="0001" purpose="status">
-        <description>Number of Hits on nxyter</description>
+        <description>Rate of Incoming Nxyter Frames, must be 31.25MHz</description>
         <field name="FrameRate" start="0" bits="32" format="unsigned" unit="Hz"/>
       </register>
     </group>
+
   </group>
 
 
-  <group name="TestPulse"
-         address="0000"  size="2"  purpose="config"  mode="rw"  continuous="false">
-    <register name="TestPulseRate" address="0145" mode="r" purpose="status">
-      <description>Rate of test pulses</description>
-      <field name="TestPulseRate" start="0" bits="32" format="unsigned" unit="Hz"/>
-    </register>   
-    <register name="TestPulseDelay" address="0160" purpose="config">
-      <description>Delay of the testpulse after Trigger</description>
-      <field name="TestPulseDelay" start="0" bits="8" format="unsigned" unit="ns" scale="10"/>
-    </register>   
-    <register name="TestPulseEnable" address="0161" purpose="config">
+  <group name="TriggerHandler"
+         address="0160"  size="4"  purpose="config"  mode="rw"  continuous="true">
+    
+    <register name="TestPulseEnable" address="0000" purpose="config">
       <description>Enable test pulse</description>
       <field name="TestPulseEnable" start="0" bits="1" format="boolean"/>
+    </register>  
+
+    <register name="TestPulseDelay" address="0001" purpose="config">
+      <description>Delay of the testpulse after Trigger</description>
+      <field name="TestPulseDelay" start="0" bits="12" format="unsigned" unit="ns" scale="4"/>
+    </register>   
+
+    <register name="TriggerRate" address="0002" purpose="status" mode="r">
+      <description>Accepted incoming Trigger Rate</description>
+      <field name="TriggerRate" start="0" bits="28" format="unsigned" unit="Hz"/>
     </register>   
+
+    <register name="InvalidTriggerCount" address="0003" purpose="status" mode="r">
+      <description>Invalid Timing Trigger counter</description>
+      <field name="InvalidTriggerCount" start="0" bits="16" format="unsigned"/>
+    </register>   
+    
   </group>  
 
 
+  <group name="TestPulse"
+         address="0140"  size="2"  purpose="config"  mode="rw"  continuous="true">
+    
+    <register name="TestPulseLength" address="0000" purpose="config">
+      <description>Length of Trigger TestPulse</description>
+      <field name="TestPulseLength" start="0" bits="12" format="unsigned" unit="ns" scale="4"/>
+    </register>   
+
+    <register name="TestPulseRate" address="0001" purpose="status" mode="r">
+      <description>Testpulse Rate</description>
+      <field name="TestPulseRate" start="0" bits="28" format="unsigned" unit="Hz"/>
+    </register>   
+    
+  </group> 
+
+
   <group name="TriggerValidate"
-         address="0180"  size="14"  purpose="config"  mode="rw"  continuous="true">
+         address="0180"  size="15"  purpose="config"  mode="rw"  continuous="false">
     <register name="ReadoutMode" address="0000" purpose="config">
       <description>Readout mode selection</description>
       <field name="ReadoutMode" start="0" bits="3" format="enum">
-        <enumItem value="0">Ref + Valid + Window</enumItem>
-        <enumItem value="1">Ref + Valid</enumItem>
-        <enumItem value="3">Raw + Time + Valid</enumItem>
-        <enumItem value="4">Raw</enumItem>
-        <enumItem value="5">Raw + Valid</enumItem>
+        <enumItem value="0">TS Select + TS Ovfl,Parity valid</enumItem>
+        <enumItem value="1">TS Select + TS Ovfl,Parity,Pileup valid</enumItem>
+        <enumItem value="2">TS Select + ignore TS Status Bits</enumItem>
+        <enumItem value="3">TS Select + ignore TS Status Bits</enumItem>
+        <enumItem value="4">TS Ovfl,Parity valid</enumItem>
+        <enumItem value="5">TS Ovfl,Parity,Pileup valid</enumItem>
+        <enumItem value="6">ignore TS Status Bits</enumItem>
+        <enumItem value="7">ignore TS Status Bits</enumItem>
       </field>
     </register>    
-    <register name="TriggerWindowDelay" address="0001" purpose="config">
+    
+    <register name="TriggerWindowOffset" address="0001" purpose="config">
       <description>Delay of the trigger window</description>
-      <field name="TriggerWindowDelay" start="0" bits="12" format="unsigned" unit="ns" scale="4"/>
+      <field name="TriggerWindowOffset" start="0" bits="11" format="signed" unit="ns" scale="4"/>
     </register>     
+    
     <register name="TriggerWindowWidth" address="0002" purpose="config">
       <description>Width of the trigger window</description>
-      <field name="TriggerWindowWidth" start="0" bits="12" format="unsigned" unit="ns" scale="4"/>
+      <field name="TriggerWindowWidth" start="0" bits="10" format="unsigned" unit="ns" scale="4"/>
     </register>     
+    
     <register name="CtsTriggerDelay" address="0003" purpose="config">
       <description>CTS Trigger Delay</description>
-      <field name="CtsTriggerDelay" start="0" bits="12" format="unsigned" unit="ns" scale="4"/>
+      <field name="CtsTriggerDelay" start="0" bits="10" format="unsigned" unit="ns" scale="4"/>
     </register>     
+    
     <register name="ReadoutTimeMax" address="0004" purpose="config">
       <description>Maximal read-out time</description>
-      <field name="ReadoutTimeMax" start="0" bits="12" format="unsigned" unit="ns" scale="10"/>
+      <field name="ReadoutTimeMax" start="0" bits="10" format="unsigned" unit="ns" scale="10"/>
     </register>     
-    <register name="BusyTime" address="0005" purpose="config">
+    
+    <register name="FpgaTsOffset" address="0005" purpose="config">
+      <description>Adds positive offset to FPGA Timestamp</description>
+      <field name="FpgaTsOffset" start="0" bits="12" format="unsigned" unit="ns" scale="4"/>
+    </register>
+    
+    <register name="BusyTime" address="0006" purpose="status" mode="r">
       <description>Maximal read-out time</description>
       <field name="BusyTime" start="0" bits="12" format="unsigned" unit="ns" scale="10"/>
     </register>  
-    <register name="TimestampRef" address="0006" purpose="config" mode="r" >
+    
+    <register name="TimestampRef" address="0007" purpose="status" mode="r">
       <description>Internal reference timestamp of current event</description>
       <field name="TimestampRef" start="0" bits="12" format="unsigned" unit="ns" scale="4"/>
     </register>  
-    <register name="WindowLowerThreshold" address="0007" purpose="config">
+    
+    <register name="WindowLowerThreshold" address="0008" purpose="status" mode="r">
       <description>Lower timestamp limit of data selection window</description>
       <field name="WindowLowerThreshold" start="0" bits="12" format="unsigned" unit="ns" scale="4"/>
     </register>  
-    <register name="WindowUpperThreshold" address="0008" purpose="config">
-      <description>Upper timestamp limit of data selection window</description>
-      <field name="WindowUpperThreshold" start="0" bits="12" format="unsigned" unit="ns" scale="4"/>
+    
+    <register name="TSWindowErrorCount" address="0009" purpose="status" mode="r">
+      <description>TS Window Error Counter</description>
+      <field name="TSWindowErrorCount" start="0" bits="16" format="unsigned"/>
     </register>  
-    <register name="DataFifoDelay" address="0009" purpose="status" mode="r">
-      <description>Data Fifo data delay</description>
+    
+    <register name="DataFifoDelay" address="000a" purpose="status" mode="r">
+      <description>Current Data-Fifo delay value</description>
       <field name="DataFifoDelay" start="0" bits="7" format="unsigned" unit="ns" scale="32"/>
-    </register>  
-    <register name="ChannelDone" address="000a" purpose="status" mode="r" repeat="4">
+    </register>
+    
+    <register name="ChannelDone" address="000b" purpose="status" mode="r" repeat="4">
       <description>Data channel read-out finished</description>
       <field name="ChannelDone" start="0" bits="32" format="bitmask"/>
     </register>  
 
-
-</group>
-
+  </group>
 
 
   <group name="DataReceiver"
     
     <register name="TimestampFifoStatus" address="0001" purpose="status">
       <description>Status of the timestamp Fifo</description>
+      
       <field name="TSFifoFull" start="0" bits="1" format="boolean" errorflag="true" mode="r">
         <description>Timestamp Fifo full</description>
       </field>  
+      
       <field name="TSFifoEmpty" start="1" bits="1" format="boolean" mode="r">
         <description>Timestamp Fifo Empty</description>
       </field>  
+      
       <field name="TSFifoAlmostEmpty" start="2" bits="1" format="boolean" mode="r">
         <description>Timestamp Fifo Almost Empty</description>
       </field>        
+    
       <field name="NxFrameSynced" start="31" bits="1" format="boolean" mode="r">
         <description>Synchronized to Nxyter Frame</description>
       </field>        
       <description>Number of Parity Errors</description>
       <field name="ParityErrorCounter" start="0" bits="32" format="unsigned" errorflag="true" />
     </register>
-
-    <register name="AdcClkDelay" address="0005" purpose="status">
-      <description>Delay setting for ADC sample clock</description>
-      <field name="AdcClkDelay" start="0" bits="3" format="unsigned" scale="4" scaleoffset="4" unit="ns" />
+    
+    <register name="PLLNotLockCount" address="0004" purpose="status" mode="r">
+      <description>ADC Sampling PLL Clock Not Lock Counter</description>
+      <field name="PLLNotLockCount" start="0" bits="32" format="unsigned" errorflag="true" />
     </register>
 
-    <register name="AdcResetCounter" address="0006" purpose="status" mode="r">
-      <description>Number of ADC Resets</description>
-      <field name="AdcResetCounter" start="0" bits="32" format="unsigned"/>
+    <register name="JohnsonCtrSync" address="0005" purpose="config">
+      <description>johnson_counter_sync (experts only)</description>
+      <field name="JohnsonCtrSync" start="0" bits="2" format="unsigned"/>
     </register>
 
-    <register name="DebugMux" address="0007" purpose="config">
-      <description>Debug Multiplexer selection</description>
-      <field name="DebugMux" start="0" bits="2" format="enum">
-        <enumItem value="0">Normal Debug</enumItem>
-        <enumItem value="1">ADC Nxyter</enumItem>
-        <enumItem value="2">ADC Testchannel</enumItem>
-        <enumItem value="3">ADC Reset Handler</enumItem>
-      </field>
+    <register name="PllDPhase" address="0006" purpose="config">
+      <description>PLL ADC Sampling Clock DPHASE</description>
+      <field name="PllDPhase" start="0" bits="4" format="unsigned" scale="2" unit="ns" />
+    </register>
+    
+    <register name="PllFineDelb" address="0007" purpose="config">
+      <description>PLL ADC Sampling Clock FINEDELB</description>
+      <field name="PllFineDelb" start="0" bits="4" format="unsigned" scale="125" unit="ps" />
     </register>
 
-    <register name="AdcValue" address="0008" purpose="status" mode="r">
-      <description>Current ADC Fifo value</description>
-      <field name="AdcValue" start="0" bits="32" format="unsigned"/>
+    <register name="ADCValue" address="0008" purpose="status" mode="r">
+      <description>Current ADC value</description>
+      <field name="ADCValue" start="0" bits="32" format="unsigned"/>
     </register>
+   
+
+    <!--
+       <register name="DebugMux" address="000f" purpose="config">
+         <description>Debug Multiplexer selection</description>
+         <field name="DebugMux" start="0" bits="2" format="enum">
+           <enumItem value="0">Normal Debug</enumItem>
+           <enumItem value="1">ADC Nxyter</enumItem>
+           <enumItem value="2">ADC Testchannel</enumItem>
+           <enumItem value="3">ADC Reset Handler</enumItem>
+         </field>
+       </register>
+       -->
 
   </group>
+  
+  
+  <group name="NxyterI2C"
+         address="0200"  size="46"  purpose="status"  mode="rw" continuous="true">
 
+    <register name="I2CRegister" address="0000" purpose="config" repeat="46">
+      <description>Nxyter I2C Register</description>
+      
+      <field name="I2CWToken" start="31" bits="1" format="bitmask" purpose="status" mode="r">
+        <description>I2C Write Token</description>
+      </field> 
+      
+      <field name="I2CRToken" start="30" bits="1" format="bitmask" purpose="status" mode="r">
+        <description>I2C Read Token</description>
+      </field> 
+      
+      <field name="I2CReserved" start="29" bits="1" format="bitmask" purpose="status" mode="r">
+        <description>I2C Write Token</description>
+      </field> 
+      
+      <field name="I2CValue" start="0" bits="8" format="unsigned" purpose="config" mode="rw">
+        <description>I2c Register Value</description>
+      </field> 
+      
+    </register>
+  </group>
 
 </TrbNetEntity>
index 13cbb5a17fbcca909ccafc804a91061ffd39f94d..9e05f21524f6a0c3d4531141f660b1f1b45adf23 100755 (executable)
@@ -279,7 +279,6 @@ sub generateoutput {
       $addr = $obj->{address}+$slice*$stepsize;
       #### Prepare table header line
       
-      my $wr = 1 if $obj->{mode} =~ /w/;
       foreach my $b (sort keys %{$data->{$addr}}) {
         my $ttmp = "";
         my $sl;
@@ -291,6 +290,7 @@ sub generateoutput {
             my $fullc = $c;
             $fullc .= ".$slice" if ($once != 1 && defined $obj->{repeat});
             my $cstr = sprintf("%s-0x%04x-%s", $entity,$b,$fullc );
+            my $wr = 1 if $db->{$c}->{mode} =~ /w/;
             $ttmp .= FormatPretty($data->{$addr}->{$b},$db->{$c},"td",($wr?"editable":""),$cstr);
             }
           }
@@ -298,6 +298,7 @@ sub generateoutput {
           my $fullc = $name;
           $fullc .= ".$slice" if ($once != 1 && defined $obj->{repeat});
           my $cstr = sprintf("%s-0x%04x-%s", $entity,$b,$fullc );
+          my $wr = 1 if $obj->{mode} =~ /w/;
           $ttmp .= FormatPretty($data->{$addr}->{$b},$obj,"td",($wr?"editable":""),$cstr);
           }
         push (@tarr,$ttmp);
index ad325c82354c7de3961b6e2bfef917bb7d47b0f7..562e56f438c069e37c8d9ba4d91ba0cf1725d3f4 100755 (executable)
@@ -123,7 +123,7 @@ sub writedata {
     return -2;
     }
     
-  foreach my $b (keys $o) {
+  foreach my $b (keys %$o) {
     $old  = $o->{$b};
     my $mask = ~(((1<<$obj->{bits})-1) << $obj->{start});
     $old = $old & $mask;