]> jspc29.x-matter.uni-frankfurt.de Git - mvd_docu.git/commitdiff
some progress, inserted the tables for the first time
authorMichael Wiebusch <antiquark@gmx.net>
Mon, 7 Jul 2014 12:29:07 +0000 (14:29 +0200)
committerMichael Wiebusch <antiquark@gmx.net>
Mon, 7 Jul 2014 12:29:07 +0000 (14:29 +0200)
20 files changed:
mvdsensorcontrol/appendix.tex
mvdsensorcontrol/daqsetup.tex
mvdsensorcontrol/documentation.tex
mvdsensorcontrol/remarks.tex
mvdsensorcontrol/tables/maketables.sh [deleted file]
mvdsensorcontrol/xml-dbtables/CbCtrlReg.caption [new file with mode: 0644]
mvdsensorcontrol/xml-dbtables/CbCtrlReg.pdf [new file with mode: 0644]
mvdsensorcontrol/xml-dbtables/CbCtrlReg.tex [new file with mode: 0644]
mvdsensorcontrol/xml-dbtables/CbSpiStream.caption [new file with mode: 0644]
mvdsensorcontrol/xml-dbtables/CbSpiStream.pdf [new file with mode: 0644]
mvdsensorcontrol/xml-dbtables/CbSpiStream.tex [new file with mode: 0644]
mvdsensorcontrol/xml-dbtables/CbUcReg.caption [new file with mode: 0644]
mvdsensorcontrol/xml-dbtables/CbUcReg.pdf [new file with mode: 0644]
mvdsensorcontrol/xml-dbtables/CbUcReg.tex [new file with mode: 0644]
mvdsensorcontrol/xml-dbtables/README.TXT [new file with mode: 0644]
mvdsensorcontrol/xml-dbtables/cache/CbController.entity [new file with mode: 0644]
mvdsensorcontrol/xml-dbtables/cache/CbController.entity.old [new file with mode: 0644]
mvdsensorcontrol/xml-dbtables/maketables.sh [new file with mode: 0755]
mvdsensorcontrol/xml-dbtables/update.sh [new file with mode: 0755]
mvdsensorcontrol/xml-dbtables/xml-db2tex.pl [moved from mvdsensorcontrol/tables/xml-db2tex.pl with 84% similarity]

index b0e56b44f52745c07203335471f5af392c2feebc..7292c63914c46d3ac8713681f0591cef489c1caf 100644 (file)
@@ -275,7 +275,7 @@ run.pl or manual with argument /path/to/setupFile
 \item
 extract sensor, chain and controller parameters from setup file
 \item
-generate all necessary low lewel JTAG configuration ini files from the high level configuration
+generate all necessary low level JTAG configuration ini files from the high level configuration
 XML files
 \item
 call JTAG programmer, program and initialize the sensors
@@ -284,22 +284,16 @@ call JTAG programmer, program and initialize the sensors
 
 \subsection{Register definitions}
 
-\subsubsection{converter board registers}
+\subsubsection{Converter board controller registers}
 
-\input{tables/table}
+\input{xml-dbtables/CbCtrlReg}
 
 \newpage
-\begin{table}
-\begin{tabular}{ l | c || r }
-  \hline                       
-  1 & 2 & 3 \\
-  4 & 5 & 6 \\
-  7 & 8 & 9 \\
-  \hline  
-\end{tabular}
-\caption{this is a simple table}
-\label{tab:simple}
-\end{table}
+\subsubsection{Converter board microcontroller registers}
+\input{xml-dbtables/CbUcReg}
+\newpage
+\subsubsection{Converter board SPI data stream registers}
+\input{xml-dbtables/CbSpiStream}
 
 
 
index 62295a7272228a08a1cf7a1d11132c26197ec41f..efce09c0016737795005a4b1866f78a1dd006838 100644 (file)
@@ -125,21 +125,21 @@ In addition to switching a supply off there is the possibility to short the powe
 so any following decoupling capacitors are discharged.
 There are eight individual control signals that can be set via slow control:
 \begin{description}
-\item[EnaA0]
+\item[EnaA.0]
 Enable analog power supply for sensor 0
-\item[EnaD0]
+\item[EnaD.0]
 Enable digital power supply for sensor 0
-\item[DisA0]
+\item[DisA.0]
 Short/discharge output of analog power supply for sensor 0
-\item[DisD0]
+\item[DisD.0]
 Short/discharge output of digital power supply for sensor 0
-\item[EnaA1]
+\item[EnaA.1]
 Enable analog power supply for sensor 1
-\item[EnaD1]
+\item[EnaD.1]
 Enable digital power supply for sensor 1
-\item[DisA1]
+\item[DisA.1]
 Short/discharge output of analog power supply for sensor 1
-\item[DisD1]
+\item[DisD.1]
 Short/discharge output of digital power supply for sensor 1
 \end{description}
 \subsubsection{ADC}
@@ -228,21 +228,21 @@ The FPGA can then decide whether to disable the power supply or not.
 \label{sec:Programmable_DAC}
 % \paragraph{Programmable DAC}
 On the converter board there is one programmable eight channel digital to analog converter (DAC).
-Six of its channels are used for the following purposes:
-\begin{itemize}
-\item
+Six of its channels are used to generate the following voltages:
+\begin{description}
+\item[DacCurLimA.0]
 Sensor 0 analog overcurrent threshold reference voltage
-\item
+\item[DacCurLimD.0]
 Sensor 0 digital overcurrent threshold reference voltage
-\item
+\item[DacVClp.0]
 Sensor 0 clamping voltage
-\item
+\item[DacCurLimA.1]
 Sensor 1 analog overcurrent threshold reference voltage
-\item
+\item[DacCurLimD.1]
 Sensor 1 digital overcurrent threshold reference voltage
-\item
+\item[DacVClp.1]
 Sensor 1 clamping voltage
-\end{itemize}
+\end{description}
 The clamping voltage outputs of the DAC is only connected to the sensors if the proper jumpers/solder
 bridges are closed.
 % \paragraph{Signal switches}
@@ -252,14 +252,14 @@ The converter board provides solid state switches to enable/disable the sensor c
 and to enable/bypass JTAG for each sensor.
 There are four individual control signals that can be set by slow control:
 \begin{description}
-\item[SensorEn0]
+\item[SensorEn.0]
 Enable CLKL, RESET and START for sensor 0.
-\item[JtagEn0]
+\item[JtagEn.0]
 Enable JTAG communication for sensor 0 if this signal is 1. Bypass sensor 0 in JTAG chain when
 signal is 0.
-\item[SensorEn1]
+\item[SensorEn.1]
 Enable CLKL, RESET and START for sensor 1.
-\item[JtagEn1]
+\item[JtagEn.1]
 Enable JTAG communication for sensor 1 if this signal is 1. Bypass sensor 1 in JTAG chain when
 signal is 0.
 \end{description}
index 229ece7e7115d60a9b240a82ac5318fc6f55fae4..926f502045e6c7d6fc006161772d87b31795ae33 100644 (file)
@@ -1,6 +1,6 @@
 \documentclass[a4paper,11pt]{article}
 \usepackage[T1]{fontenc}
-\usepackage[utf8]{inputenc}
+\usepackage[utf8]{inputenc}
 \usepackage{lmodern}
 \usepackage{graphicx}
 \usepackage{subfig}
@@ -23,6 +23,8 @@
 \usepackage{xcolor}
 \usepackage{booktabs}
 \usepackage{longtable}
+% \usepackage[table]{xcolor}  
+\definecolor{light-gray}{gray}{0.90}
 % \usepackage[singlelinecheck=off]{caption}
 
 % my macros
index 72b3e1cb01c5b37a91bd1f5a21533b6db736e7ad..cc3dfb94a8eaa138cd3f8bcc92db4fb1b69a3a14 100644 (file)
@@ -4,13 +4,7 @@ There are certain ambiguities in the naming conventions in/between the system an
 configuration files.
 \begin{itemize}
 \item
-\hyperref[sec:systemFile]{system} <-> DaqSetup
-\item
-\hyperref[sec:setupFile]{setup} <-> DetectorSetup
-\item
-<config> should be called <JTAGconfig>
-\item
-<controller> should be called roc
+(?)<controller> should be called roc
 \item
 Why are there rocs defined in the system file? Are the controller entries in the setup file
 not sufficient? -> for renaming by start.pl
@@ -21,7 +15,7 @@ not sufficient? -> for renaming by start.pl
 \begin{itemize}
 \item
 \label{trap:jtagswitch}
-The JTAG enable and Sensor enable switches in the converter boards are not set by statup.pl!
+(fixed)The JTAG enable and Sensor enable switches in the converter boards are not set by statup.pl!
 \item
 We don't have multiple JTAG chains and CbControllers in the peripheral FPGA yet.
 \item
@@ -88,6 +82,11 @@ what is slow control
 \item
 what is a DAQOPSERVER?
 \end{itemize}
+\subsection{known bugs}
+\begin{itemize}
+\item
+Last ADC value from Chip 1 is not received somehow
+\end{itemize}
 
 \subsection{to investigate}
 \begin{itemize}
diff --git a/mvdsensorcontrol/tables/maketables.sh b/mvdsensorcontrol/tables/maketables.sh
deleted file mode 100755 (executable)
index e669786..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/bash
-for i in "$@"; do
-./xml-db2tex.pl -e /home/micha/mnt/55local1/htdocs/daqtools/xml-db/cache/CbController.entity -g $i -o $i".tex" --pdf
-done
diff --git a/mvdsensorcontrol/xml-dbtables/CbCtrlReg.caption b/mvdsensorcontrol/xml-dbtables/CbCtrlReg.caption
new file mode 100644 (file)
index 0000000..1a98613
--- /dev/null
@@ -0,0 +1 @@
+A caption for me
diff --git a/mvdsensorcontrol/xml-dbtables/CbCtrlReg.pdf b/mvdsensorcontrol/xml-dbtables/CbCtrlReg.pdf
new file mode 100644 (file)
index 0000000..9f630c3
Binary files /dev/null and b/mvdsensorcontrol/xml-dbtables/CbCtrlReg.pdf differ
diff --git a/mvdsensorcontrol/xml-dbtables/CbCtrlReg.tex b/mvdsensorcontrol/xml-dbtables/CbCtrlReg.tex
new file mode 100644 (file)
index 0000000..cde705d
--- /dev/null
@@ -0,0 +1,52 @@
+% remember to include the following latex packages:
+%\usepackage{booktabs}
+%\usepackage{longtable}
+%\usepackage[table]{xcolor}  
+%\definecolor{light-gray}{gray}{0.90}
+  
+\begin{longtable}
+{ l l c p{8cm} }
+\toprule
+  \textbf{Register} & \textbf{Addr} & \textbf{Bits} & \textbf{Description} \\
+\midrule
+\midrule
+\endfirsthead\multicolumn{4}{c}{\tablename\ \thetable\ -- \textit{Continued from previous page}} \\\toprule
+  \textbf{Register} & \textbf{Addr} & \textbf{Bits} & \textbf{Description} \\
+\midrule
+\midrule
+\endhead\multicolumn{4}{r}{\textit{Continued on next page}} \\
+  \endfoot 
+  \endlastfoot  \textbf{GpioPort} & 0xc030 & 0--15 & Output bit pattern of the TRB3 peripheral SPARE lines \\
+\rowcolor{light-gray}
+  \textbf{GpioPin} & 0xc031 & 0--15 & Current state of the SPARE lines \\
+  \textbf{GpioDdr} & 0xc032 & 0--15 & Bitmask defining data direction (LO=input, HI=output) of the SPARE lines \\
+\rowcolor{light-gray}
+  \textbf{UartBaudrateDial} & 0xc040 & 0--3 & Select UART baudrate: 0->300, 1->600, 2->1200, 3->2400, 4->4800, 5->9600, 6->19200, 7->38400, 8->57600, 9->115200 \\
+  \textbf{UartDataIn} & 0xc041 & 0--7 & Write a byte here to send it via UART, returns fill status of input FIFO \\
+\rowcolor{light-gray}
+  \textbf{UartDataOut} & 0xc042 &   & Pops a byte from the UART receive buffer \\
+\rowcolor{light-gray}
+  \quad  UartDataOutWord &  & 0--7 & Received byte \\
+\rowcolor{light-gray}
+  \quad  UartRxBufEmpty &  & 8 & HI if UART receive buffer empty \\
+  \textbf{UartManOverride} & 0xc043 & 0 & Override the default UART functionality for debug reasons. If set HI, UartDataIn and UartDataOut operate the UART directly. \\
+\rowcolor{light-gray}
+  \textbf{UartDebug} & 0xc04f & 0--31 & Debug register for the UART \\
+  \textbf{SpiDataOut} & 0xc050 & 0--15 & Last received SPI word from CB uC \\
+\rowcolor{light-gray}
+  \textbf{SpiDataIn} & 0xc051 & 0--15 & This word is returned by the FPGA's SPI slave each transmission \\
+  \textbf{SpiCounter} & 0xc052 & 0--31 & Counts received SPI data words. 1 SPI word = 16 bit. \\
+\rowcolor{light-gray}
+  \textbf{SpiFifoSelect} & 0xc053 & 0--7 & Select an SPI data channel to monitor in the FIFO \\
+  \textbf{SpiFifoRead} & 0xc054 &   & Pops a word from the SPI monitor FIFO \\
+  \quad  SpiFifoD &  & 0--15 & SPI data word \\
+  \quad  SpiFifoTS &  & 16--31 & Reception timestamp \\
+\rowcolor{light-gray}
+  \textbf{UcReset} & 0xc060 & 0 & Reset CB uC when LO \\
+  \textbf{Overcurrent} & 0xc070 &   & Status of the four overcurrent detection inputs of the FPGA that are directly connected to the current drain comparators of the CB power supplies \\
+  \quad  OvCD0 &  & 0 & HI if overcurrent on digital voltage of sensor 0 \\
+  \quad  OvCA0 &  & 4 & HI if overcurrent on analog voltage of sensor 0 \\
+  \quad  OvCD1 &  & 8 & HI if overcurrent on digital voltage of sensor 1 \\
+  \quad  OvCA1 &  & 12 & HI if overcurrent on analog voltage of sensor 1 \\
+\bottomrule
+\caption{A caption for me}\label{tab:CbCtrlReg}\end{longtable}
diff --git a/mvdsensorcontrol/xml-dbtables/CbSpiStream.caption b/mvdsensorcontrol/xml-dbtables/CbSpiStream.caption
new file mode 100644 (file)
index 0000000..1a98613
--- /dev/null
@@ -0,0 +1 @@
+A caption for me
diff --git a/mvdsensorcontrol/xml-dbtables/CbSpiStream.pdf b/mvdsensorcontrol/xml-dbtables/CbSpiStream.pdf
new file mode 100644 (file)
index 0000000..7645973
Binary files /dev/null and b/mvdsensorcontrol/xml-dbtables/CbSpiStream.pdf differ
diff --git a/mvdsensorcontrol/xml-dbtables/CbSpiStream.tex b/mvdsensorcontrol/xml-dbtables/CbSpiStream.tex
new file mode 100644 (file)
index 0000000..94246c9
--- /dev/null
@@ -0,0 +1,191 @@
+% remember to include the following latex packages:
+%\usepackage{booktabs}
+%\usepackage{longtable}
+%\usepackage[table]{xcolor}  
+%\definecolor{light-gray}{gray}{0.90}
+  
+\begin{longtable}
+{ l l c p{8cm} }
+\toprule
+  \textbf{Register} & \textbf{Addr} & \textbf{Bits} & \textbf{Description} \\
+\midrule
+\midrule
+\endfirsthead\multicolumn{4}{c}{\tablename\ \thetable\ -- \textit{Continued from previous page}} \\\toprule
+  \textbf{Register} & \textbf{Addr} & \textbf{Bits} & \textbf{Description} \\
+\midrule
+\midrule
+\endhead\multicolumn{4}{r}{\textit{Continued on next page}} \\
+  \endfoot 
+  \endlastfoot  \textbf{CurrentDigital.0} & 0xc100 &   & Current on the digital power supply \\
+  \quad  CurrentDigitalD.0 &  & 0--15 & Current [mA] = AdcVal x 0.0038147 \\
+  \quad  CurrentDigitalTS.0 &  & 16--31 & Current on the digital power supply \\
+\rowcolor{light-gray}
+  \textbf{CurrentAnalog.0} & 0xc101 &   & Current on the analog power supply \\
+\rowcolor{light-gray}
+  \quad  CurrentAnalogD.0 &  & 0--15 & Current [mA] = AdcVal x 0.0038147 \\
+\rowcolor{light-gray}
+  \quad  CurrentAnalogTS.0 &  & 16--31 & Reception timestamp \\
+  \textbf{VoltageDigital.0} & 0xc102 &   & Voltage of the digital power supply, sensed at the FEB \\
+  \quad  VoltageDigitalD.0 &  & 0--15 & Voltage [mV] = AdcVal x 0.116752 \\
+  \quad  VoltageDigitalTS.0 &  & 16--31 & Reception timestamp \\
+\rowcolor{light-gray}
+  \textbf{VoltageAnalog.0} & 0xc103 &   & Voltage of the analog power supply, sensed at the FEB \\
+\rowcolor{light-gray}
+  \quad  VoltageAnalogD.0 &  & 0--15 & Voltage [mV] = AdcVal x 0.116752 \\
+\rowcolor{light-gray}
+  \quad  VoltageAnalogTS.0 &  & 16--31 & Reception timestamp \\
+  \textbf{VoltageGnd.0} & 0xc104 &   & Voltage on the ground sense line from the FEB \\
+  \quad  VoltageGndD.0 &  & 0--15 & Voltage [mV] = AdcVal x 0.038147 \\
+  \quad  VoltageGndTS.0 &  & 16--31 & Reception timestamp \\
+\rowcolor{light-gray}
+  \textbf{SensorTemperature.0} & 0xc105 &   & Voltage measured at the M26 temperature diode, relative to GND sense \\
+\rowcolor{light-gray}
+  \quad  SensorTemperatureD.0 &  & 0--15 & Voltage [mV] = AdcVal x 0.038147 \\
+\rowcolor{light-gray}
+  \quad  SensorTemperatureTS.0 &  & 16--31 & Reception timestamp \\
+  \textbf{ZeroSingle.0} & 0xc106 &   & Zero calibration of amplifier, single ended \\
+  \quad  ZeroSingleD.0 &  & 0--15 & Voltage [mV] = AdcVal x 0.038147 \\
+  \quad  ZeroSingleTS.0 &  & 16--31 & Reception timestamp \\
+\rowcolor{light-gray}
+  \textbf{ZeroDifferential.0} & 0xc107 &   & Zero calibration of amplifier, differential \\
+\rowcolor{light-gray}
+  \quad  ZeroDifferentialD.0 &  & 0--15 & Voltage [mV] = (AdcVal x 0.0012186)-39.932 \\
+\rowcolor{light-gray}
+  \quad  ZeroDifferentialTS.0 &  & 16--31 & Reception timestamp \\
+  \textbf{VDiscRef2A.0} & 0xc108 &   & Discr. baseline A \\
+  \quad  VDiscRef2AD.0 &  & 0--15 & Voltage [mV] = AdcVal x 0.116752 \\
+  \quad  VDiscRef2ATS.0 &  & 16--31 & Reception timestamp \\
+\rowcolor{light-gray}
+  \textbf{VDiscRef2B.0} & 0xc109 &   & Discr. baseline B \\
+\rowcolor{light-gray}
+  \quad  VDiscRef2BD.0 &  & 0--15 & Voltage [mV] = AdcVal x 0.116752 \\
+\rowcolor{light-gray}
+  \quad  VDiscRef2BTS.0 &  & 16--31 & Reception timestamp \\
+  \textbf{VDiscRef2C.0} & 0xc10a &   & Discr. baseline C \\
+  \quad  VDiscRef2CD.0 &  & 0--15 & Voltage [mV] = AdcVal x 0.116752 \\
+  \quad  VDiscRef2CTS.0 &  & 16--31 & Reception timestamp \\
+\rowcolor{light-gray}
+  \textbf{VDiscRef2D.0} & 0xc10b &   & Discr. baseline D \\
+\rowcolor{light-gray}
+  \quad  VDiscRef2DD.0 &  & 0--15 & Voltage [mV] = AdcVal x 0.116752 \\
+\rowcolor{light-gray}
+  \quad  VDiscRef2DTS.0 &  & 16--31 & Reception timestamp \\
+  \textbf{VDiscRefA.0} & 0xc10c &   & Discr. threshold voltage A (w/o baseline) \\
+  \quad  VDiscRefAD.0 &  & 0--15 & Voltage [mV] = (AdcVal x 0.0012186)-39.932 \\
+  \quad  VDiscRefATS.0 &  & 16--31 & Reception timestamp \\
+\rowcolor{light-gray}
+  \textbf{VDiscRefB.0} & 0xc10d &   & Discr. threshold voltage B (w/o baseline) \\
+\rowcolor{light-gray}
+  \quad  VDiscRefBD.0 &  & 0--15 & Voltage [mV] = (AdcVal x 0.0012186)-39.932 \\
+\rowcolor{light-gray}
+  \quad  VDiscRefBTS.0 &  & 16--31 & Reception timestamp \\
+  \textbf{VDiscRefC.0} & 0xc10e &   & Discr. threshold voltage C (w/o baseline) \\
+  \quad  VDiscRefCD.0 &  & 0--15 & Voltage [mV] = (AdcVal x 0.0012186)-39.932 \\
+  \quad  VDiscRefCTS.0 &  & 16--31 & Reception timestamp \\
+\rowcolor{light-gray}
+  \textbf{VDiscRefD.0} & 0xc10f &   & Discr. threshold voltage D (w/o baseline) \\
+\rowcolor{light-gray}
+  \quad  VDiscRefDD.0 &  & 0--15 & Voltage [mV] = (AdcVal x 0.0012186)-39.932 \\
+\rowcolor{light-gray}
+  \quad  VDiscRefDTS.0 &  & 16--31 & Reception timestamp \\
+  \textbf{CurrentDigital.1} & 0xc110 &   & Current on the digital power supply \\
+  \quad  CurrentDigitalD.1 &  & 0--15 & Current [mA] = AdcVal x 0.0038147 \\
+  \quad  CurrentDigitalTS.1 &  & 16--31 & Current on the digital power supply \\
+\rowcolor{light-gray}
+  \textbf{CurrentAnalog.1} & 0xc111 &   & Current on the analog power supply \\
+\rowcolor{light-gray}
+  \quad  CurrentAnalogD.1 &  & 0--15 & Current [mA] = AdcVal x 0.0038147 \\
+\rowcolor{light-gray}
+  \quad  CurrentAnalogTS.1 &  & 16--31 & Reception timestamp \\
+  \textbf{VoltageDigital.1} & 0xc112 &   & Voltage of the digital power supply, sensed at the FEB \\
+  \quad  VoltageDigitalD.1 &  & 0--15 & Voltage [mV] = AdcVal x 0.116752 \\
+  \quad  VoltageDigitalTS.1 &  & 16--31 & Reception timestamp \\
+\rowcolor{light-gray}
+  \textbf{VoltageAnalog.1} & 0xc113 &   & Voltage of the analog power supply, sensed at the FEB \\
+\rowcolor{light-gray}
+  \quad  VoltageAnalogD.1 &  & 0--15 & Voltage [mV] = AdcVal x 0.116752 \\
+\rowcolor{light-gray}
+  \quad  VoltageAnalogTS.1 &  & 16--31 & Reception timestamp \\
+  \textbf{VoltageGnd.1} & 0xc114 &   & Voltage on the ground sense line from the FEB \\
+  \quad  VoltageGndD.1 &  & 0--15 & Voltage [mV] = AdcVal x 0.038147 \\
+  \quad  VoltageGndTS.1 &  & 16--31 & Reception timestamp \\
+\rowcolor{light-gray}
+  \textbf{SensorTemperature.1} & 0xc115 &   & Voltage measured at the M26 temperature diode, relative to GND sense \\
+\rowcolor{light-gray}
+  \quad  SensorTemperatureD.1 &  & 0--15 & Voltage [mV] = AdcVal x 0.038147 \\
+\rowcolor{light-gray}
+  \quad  SensorTemperatureTS.1 &  & 16--31 & Reception timestamp \\
+  \textbf{ZeroSingle.1} & 0xc116 &   & Zero calibration of amplifier, single ended \\
+  \quad  ZeroSingleD.1 &  & 0--15 & Voltage [mV] = AdcVal x 0.038147 \\
+  \quad  ZeroSingleTS.1 &  & 16--31 & Reception timestamp \\
+\rowcolor{light-gray}
+  \textbf{ZeroDifferential.1} & 0xc117 &   & Zero calibration of amplifier, differential \\
+\rowcolor{light-gray}
+  \quad  ZeroDifferentialD.1 &  & 0--15 & Voltage [mV] = (AdcVal x 0.0012186)-39.932 \\
+\rowcolor{light-gray}
+  \quad  ZeroDifferentialTS.1 &  & 16--31 & Reception timestamp \\
+  \textbf{VDiscRef2A.1} & 0xc118 &   & Discr. baseline A \\
+  \quad  VDiscRef2AD.1 &  & 0--15 & Voltage [mV] = AdcVal x 0.116752 \\
+  \quad  VDiscRef2ATS.1 &  & 16--31 & Reception timestamp \\
+\rowcolor{light-gray}
+  \textbf{VDiscRef2B.1} & 0xc119 &   & Discr. baseline B \\
+\rowcolor{light-gray}
+  \quad  VDiscRef2BD.1 &  & 0--15 & Voltage [mV] = AdcVal x 0.116752 \\
+\rowcolor{light-gray}
+  \quad  VDiscRef2BTS.1 &  & 16--31 & Reception timestamp \\
+  \textbf{VDiscRef2C.1} & 0xc11a &   & Discr. baseline C \\
+  \quad  VDiscRef2CD.1 &  & 0--15 & Voltage [mV] = AdcVal x 0.116752 \\
+  \quad  VDiscRef2CTS.1 &  & 16--31 & Reception timestamp \\
+\rowcolor{light-gray}
+  \textbf{VDiscRef2D.1} & 0xc11b &   & Discr. baseline D \\
+\rowcolor{light-gray}
+  \quad  VDiscRef2DD.1 &  & 0--15 & Voltage [mV] = AdcVal x 0.116752 \\
+\rowcolor{light-gray}
+  \quad  VDiscRef2DTS.1 &  & 16--31 & Reception timestamp \\
+  \textbf{VDiscRefA.1} & 0xc11c &   & Discr. threshold voltage A (w/o baseline) \\
+  \quad  VDiscRefAD.1 &  & 0--15 & Voltage [mV] = (AdcVal x 0.0012186)-39.932 \\
+  \quad  VDiscRefATS.1 &  & 16--31 & Reception timestamp \\
+\rowcolor{light-gray}
+  \textbf{VDiscRefB.1} & 0xc11d &   & Discr. threshold voltage B (w/o baseline) \\
+\rowcolor{light-gray}
+  \quad  VDiscRefBD.1 &  & 0--15 & Voltage [mV] = (AdcVal x 0.0012186)-39.932 \\
+\rowcolor{light-gray}
+  \quad  VDiscRefBTS.1 &  & 16--31 & Reception timestamp \\
+  \textbf{VDiscRefC.1} & 0xc11e &   & Discr. threshold voltage C (w/o baseline) \\
+  \quad  VDiscRefCD.1 &  & 0--15 & Voltage [mV] = (AdcVal x 0.0012186)-39.932 \\
+  \quad  VDiscRefCTS.1 &  & 16--31 & Reception timestamp \\
+\rowcolor{light-gray}
+  \textbf{VDiscRefD.1} & 0xc11f &   & Discr. threshold voltage D (w/o baseline) \\
+\rowcolor{light-gray}
+  \quad  VDiscRefDD.1 &  & 0--15 & Voltage [mV] = (AdcVal x 0.0012186)-39.932 \\
+\rowcolor{light-gray}
+  \quad  VDiscRefDTS.1 &  & 16--31 & Reception timestamp \\
+  \textbf{SensorControlStatus.0} & 0xc120 &   & Status of CB switches and Overcurrent indicators (read only) \\
+  \quad  JtagEn\_.0 &  & 0 & JTAG enabled for current sensor \\
+  \quad  SensorEn\_.0 &  & 1 & Reset, Start and Clock signals enabled for current sensor \\
+  \quad  DisD\_.0 &  & 2 & Discharge digital sensor power \\
+  \quad  EnaD\_.0 &  & 3 & Digital sensor power enabled \\
+  \quad  DisA\_.0 &  & 4 & Discharge analog sensor power \\
+  \quad  EnaA\_.0 &  & 5 & Analog sensor power enabled \\
+  \quad  OvCD\_.0 &  & 6 & Current limit exceeded for digital sensor power \\
+  \quad  OvCA\_.0 &  & 7 & Current limit exceeded for analog sensor power \\
+\rowcolor{light-gray}
+  \textbf{SensorControlStatus.1} & 0xc121 &   & Status of CB switches and Overcurrent indicators (read only) \\
+\rowcolor{light-gray}
+  \quad  JtagEn\_.1 &  & 0 & JTAG enabled for current sensor \\
+\rowcolor{light-gray}
+  \quad  SensorEn\_.1 &  & 1 & Reset, Start and Clock signals enabled for current sensor \\
+\rowcolor{light-gray}
+  \quad  DisD\_.1 &  & 2 & Discharge digital sensor power \\
+\rowcolor{light-gray}
+  \quad  EnaD\_.1 &  & 3 & Digital sensor power enabled \\
+\rowcolor{light-gray}
+  \quad  DisA\_.1 &  & 4 & Discharge analog sensor power \\
+\rowcolor{light-gray}
+  \quad  EnaA\_.1 &  & 5 & Analog sensor power enabled \\
+\rowcolor{light-gray}
+  \quad  OvCD\_.1 &  & 6 & Current limit exceeded for digital sensor power \\
+\rowcolor{light-gray}
+  \quad  OvCA\_.1 &  & 7 & Current limit exceeded for analog sensor power \\
+\bottomrule
+\caption{A caption for me}\label{tab:CbSpiStream}\end{longtable}
diff --git a/mvdsensorcontrol/xml-dbtables/CbUcReg.caption b/mvdsensorcontrol/xml-dbtables/CbUcReg.caption
new file mode 100644 (file)
index 0000000..1a98613
--- /dev/null
@@ -0,0 +1 @@
+A caption for me
diff --git a/mvdsensorcontrol/xml-dbtables/CbUcReg.pdf b/mvdsensorcontrol/xml-dbtables/CbUcReg.pdf
new file mode 100644 (file)
index 0000000..1e3484c
Binary files /dev/null and b/mvdsensorcontrol/xml-dbtables/CbUcReg.pdf differ
diff --git a/mvdsensorcontrol/xml-dbtables/CbUcReg.tex b/mvdsensorcontrol/xml-dbtables/CbUcReg.tex
new file mode 100644 (file)
index 0000000..1d23136
--- /dev/null
@@ -0,0 +1,87 @@
+% remember to include the following latex packages:
+%\usepackage{booktabs}
+%\usepackage{longtable}
+%\usepackage[table]{xcolor}  
+%\definecolor{light-gray}{gray}{0.90}
+  
+\begin{longtable}
+{ l l c p{8cm} }
+\toprule
+  \textbf{Register} & \textbf{Addr} & \textbf{Bits} & \textbf{Description} \\
+\midrule
+\midrule
+\endfirsthead\multicolumn{4}{c}{\tablename\ \thetable\ -- \textit{Continued from previous page}} \\\toprule
+  \textbf{Register} & \textbf{Addr} & \textbf{Bits} & \textbf{Description} \\
+\midrule
+\midrule
+\endhead\multicolumn{4}{r}{\textit{Continued on next page}} \\
+  \endfoot 
+  \endlastfoot  \textbf{ReadBack} & 0xc000 &   & Read back register values from the microcontroller \\
+  \quad  ReadBackAddr &  & 0--7 & Address of the register that has to be sent to the FPGA \\
+  \quad  ReadBackAll &  & 8 & Set to 1 when you want to read back all registers from the microcontroller \\
+\rowcolor{light-gray}
+  \textbf{Switches.0} & 0xc001 &   & Set Converter Board switches for current sensor \\
+\rowcolor{light-gray}
+  \quad  JtagEn.0 &  & 0 & Enable JTAG for current sensor \\
+\rowcolor{light-gray}
+  \quad  SensorEn.0 &  & 1 & Enable Reset, Start and Clock signals for current sensor \\
+\rowcolor{light-gray}
+  \quad  DisD.0 &  & 2 & Discharge digital sensor power filter caps \\
+\rowcolor{light-gray}
+  \quad  EnaD.0 &  & 3 & Enable digital sensor power \\
+\rowcolor{light-gray}
+  \quad  DisA.0 &  & 4 & Discharge analog sensor power filter caps \\
+\rowcolor{light-gray}
+  \quad  EnaA.0 &  & 5 & Enable analog sensor power \\
+  \textbf{DacCurLimA.0} & 0xc002 & 0--15 & Current limit for analog sensor power. Max current [mA] = AdcVal x 0.005035 \\
+\rowcolor{light-gray}
+  \textbf{DacCurLimD.0} & 0xc003 & 0--15 & Current limit for digital sensor power. Max current [mA] = AdcVal x 0.005035 \\
+  \textbf{DacVClp.0} & 0xc004 & 0--15 & Clamping voltage for current sensor (if DAC physically connected to sensor via jumper). Vclp [mV] = AdcVal x 0.05035 \\
+\rowcolor{light-gray}
+  \textbf{OvCurStatus.0} & 0xc005 &   & Indicates overcurrent situation. Register has to be read from uC for update. Do not use to trigger latchup protection! \\
+\rowcolor{light-gray}
+  \quad  OvCD.0 &  & 0 & HI if digital current limit exceeded.  \\
+\rowcolor{light-gray}
+  \quad  OvCA.0 &  & 1 & HI if analog current limit exceeded.  \\
+  \textbf{Switches.1} & 0xc006 &   & Set Converter Board switches for current sensor \\
+  \quad  JtagEn.1 &  & 0 & Enable JTAG for current sensor \\
+  \quad  SensorEn.1 &  & 1 & Enable Reset, Start and Clock signals for current sensor \\
+  \quad  DisD.1 &  & 2 & Discharge digital sensor power filter caps \\
+  \quad  EnaD.1 &  & 3 & Enable digital sensor power \\
+  \quad  DisA.1 &  & 4 & Discharge analog sensor power filter caps \\
+  \quad  EnaA.1 &  & 5 & Enable analog sensor power \\
+\rowcolor{light-gray}
+  \textbf{DacCurLimA.1} & 0xc007 & 0--15 & Current limit for analog sensor power. Max current [mA] = AdcVal x 0.005035 \\
+  \textbf{DacCurLimD.1} & 0xc008 & 0--15 & Current limit for digital sensor power. Max current [mA] = AdcVal x 0.005035 \\
+\rowcolor{light-gray}
+  \textbf{DacVClp.1} & 0xc009 & 0--15 & Clamping voltage for current sensor (if DAC physically connected to sensor via jumper). Vclp [mV] = AdcVal x 0.05035 \\
+  \textbf{OvCurStatus.1} & 0xc00a &   & Indicates overcurrent situation. Register has to be read from uC for update. Do not use to trigger latchup protection! \\
+  \quad  OvCD.1 &  & 0 & HI if digital current limit exceeded.  \\
+  \quad  OvCA.1 &  & 1 & HI if analog current limit exceeded.  \\
+\rowcolor{light-gray}
+  \textbf{ADC\_conf} & 0xc00b &   &  \\
+\rowcolor{light-gray}
+  \quad  CycleRef &  & 0 & If HI, periodically read out all ADC channels and send the data \\
+  \textbf{CompileDate} & 0xc00f &   & The day the CB uC firmware was compiled \\
+  \quad  CDay &  & 0--4 & Day (1-31) \\
+  \quad  CMonth &  & 5--8 & Month (1-12) \\
+  \quad  CYear &  & 9--15 & Year (0-99) \\
+\rowcolor{light-gray}
+  \textbf{CompileTime} & 0xc010 &   & The time the CB uC firmware was compiled \\
+\rowcolor{light-gray}
+  \quad  CMin &  & 0--5 & Minutes (0-59) \\
+\rowcolor{light-gray}
+  \quad  CHours &  & 6--10 & Hours (0-23) \\
+  \textbf{MiscConf} & 0xc011 &   & Miscellaneous configuration options \\
+  \quad  Led1 &  & 0 & LED1 on if HI \\
+  \quad  Led2 &  & 1 & LED2 on if HI \\
+  \quad  Led3 &  & 2 & LED3 on if HI \\
+  \quad  Led4 &  & 3 & LED4 on if HI \\
+  \quad  OvRideLed1 &  & 4 & If HI, enable external control over LED 1 \\
+  \quad  OvRideLed2 &  & 5 & If HI, enable external control over LED 2 \\
+  \quad  OvRideLed3 &  & 6 & If HI, enable external control over LED 3 \\
+  \quad  OvRideLed4 &  & 7 & If HI, enable external control over LED 4 \\
+\rowcolor{light-gray}
+  \textbf{ReadBackCounter} & 0xc013 & 0--15 & shows count of uC register read back operations \\
+\bottomrule
+\caption{A caption for me}\label{tab:CbUcReg}\end{longtable}
diff --git a/mvdsensorcontrol/xml-dbtables/README.TXT b/mvdsensorcontrol/xml-dbtables/README.TXT
new file mode 100644 (file)
index 0000000..0651400
--- /dev/null
@@ -0,0 +1,22 @@
+#######################
+## a short anti-WTF? ##
+#######################
+
+In this folder lies everything to generate the register documentation tables for the CbController and everything else that is 
+related to that. 
+
+In most cases you would just want to type "./update.sh"
+
+
+
+update.sh:
+when executed, will fetch the CbController.entity file from jspc55, check if anything has changed, compared to the old
+entity and if so, call maketables.sh to regenerate all tables.
+If called with argument "anyway", the script will skip the check and regenate all tables anyway.
+
+maketables.sh:
+Give it a list of (xml-db) group names as arguments, then it will generate the tex output of the tables and also
+generate the tables as standalone pdf files.
+
+xml-db2tex.pl:
+Does the actual work. See ./xml-db2tex.pl --help for a summary of all options.
diff --git a/mvdsensorcontrol/xml-dbtables/cache/CbController.entity b/mvdsensorcontrol/xml-dbtables/cache/CbController.entity
new file mode 100644 (file)
index 0000000..ba1cb72
Binary files /dev/null and b/mvdsensorcontrol/xml-dbtables/cache/CbController.entity differ
diff --git a/mvdsensorcontrol/xml-dbtables/cache/CbController.entity.old b/mvdsensorcontrol/xml-dbtables/cache/CbController.entity.old
new file mode 100644 (file)
index 0000000..a60e7c9
Binary files /dev/null and b/mvdsensorcontrol/xml-dbtables/cache/CbController.entity.old differ
diff --git a/mvdsensorcontrol/xml-dbtables/maketables.sh b/mvdsensorcontrol/xml-dbtables/maketables.sh
new file mode 100755 (executable)
index 0000000..c868ca9
--- /dev/null
@@ -0,0 +1,5 @@
+#!/bin/bash
+for i in "$@"; do
+#./xml-db2tex.pl -e /home/micha/mnt/55local1/htdocs/daqtools/xml-db/cache/CbController.entity -g $i -o $i".tex" --pdf 
+./xml-db2tex.pl -e CbController -g $i -o $i".tex" --pdf -l "tab:"$i -c "$(cat $i".caption")"
+done
diff --git a/mvdsensorcontrol/xml-dbtables/update.sh b/mvdsensorcontrol/xml-dbtables/update.sh
new file mode 100755 (executable)
index 0000000..8b2ff7f
--- /dev/null
@@ -0,0 +1,17 @@
+#!/bin/bash
+cp ./cache/CbController.entity ./cache/CbController.entity.old
+echo "fetching current CbController.entity file from jspc55"
+scp maps@jspc55:/local.1/htdocs/daqtools/xml-db/cache/CbController.entity ./cache/
+touch ./cache/CbController.entity # modification date of entity files is the time the "snapshot" was taken
+
+
+groups="CbCtrlReg CbSpiStream CbUcReg"
+
+if [ -n "$1$(diff ./cache/CbController.entity ./cache/CbController.entity.old)" ]; then
+  for i in $groups; do
+    ./maketables.sh $i
+  done
+else
+  echo "no change in entity file, nothing to be done"
+fi
+
similarity index 84%
rename from mvdsensorcontrol/tables/xml-db2tex.pl
rename to mvdsensorcontrol/xml-dbtables/xml-db2tex.pl
index c799bf965ac1898ff35d69c9dccc627cb933ee88..82754670eb8ddec8a964205ae4680f42baed8d04 100755 (executable)
@@ -15,6 +15,8 @@ use File::Copy;
 
 my $opt;
 
+$opt->{style} = "altgray";
+
 Getopt::Long::Configure(qw(gnu_getopt));
 GetOptions(
            'help|h'      => \$opt->{help},
@@ -24,6 +26,7 @@ GetOptions(
            'entity|e=s'  => \$opt->{entity},
            'output|o=s'  => \$opt->{output},
            'pdf'         => \$opt->{pdf},
+           'style=s'      => \$opt->{style},
            'standalone'  => \$opt->{standalone}
           );
 
@@ -31,21 +34,23 @@ printHelpMessage() if $opt->{help};
 printHelpMessage() unless $opt->{entity} && $opt->{group};
 
 
-my $me = this->new();
+my $self = this->new();
+
+$self->{opt} = $opt; # assimilate options
 
-$me->setEntity($opt->{entity});
-# $me->{entityFile} = "/home/micha/mnt/55local1/htdocs/daqtools/xml-db/cache/CbController.entity";
-$me->{group} = $opt->{group};
-$me->{table}->{label}   = $opt->{label}||"tab:".$opt->{group};
-$me->{table}->{caption} = $opt->{caption}||"Registers in group ".$opt->{group};
-$me->produceTable();
+$self->setEntity($opt->{entity});
+# $self->{entityFile} = "/home/micha/mnt/55local1/htdocs/daqtools/xml-db/cache/CbController.entity";
+$self->{group} = $opt->{group};
+$self->{table}->{label}   = $opt->{label}||"tab:".$opt->{group};
+$self->{table}->{caption} = $opt->{caption}||"Registers in group ".$opt->{group};
+$self->produceTable();
 
 
-$me->writeTexFile($opt->{output}, $opt->{standalone} );
+$self->writeTexFile($opt->{output}, $opt->{standalone} );
 
 if ($opt->{pdf}){
   if ($opt->{output}){
-    $me->pdflatex($opt->{output});
+    $self->pdflatex($opt->{output});
   } else {
     die "\n\ncannot make pdf!\nno output file specified, use the -o <file.tex> argument!\n";
   }
@@ -60,6 +65,8 @@ print <<EOF;
 xml-db2tex.pl -e <entityName> -g <group> [-o <output.tex>] [OPTIONS]
 
 Generates a latex table of an xml-db group.
+The tex file must be compiled at least two times for the table alignment
+to work out correctly.
 
 Options:
   -h, --help       brief help/usage message
@@ -71,8 +78,14 @@ Options:
   -c, --caption    caption of the table
   -l, --label      latex label of the table
   
+  --style          hline   : separate registers by
+                     horizontal lines
+                   altgray : separate registers with 
+                     alternating gray and white boxes
+                     (default)
+  
   --standalone     generate standalone compilable latex file
-  --pdf            compile directly to pdf
+  --pdf            compile directly to pdf (compiles twice)
   
 
 EOF
@@ -127,7 +140,7 @@ sub produceTable {
     my $type = $node->{type};
     my $repeat = $node->{repeat} || 1;
     my $stepsize = $node->{stepsize}||0;
-    my $bits = "";
+    my $bits = " ";
     if ($type ne 'register'){
       my $start = $node->{start};
       my $stop = $node->{start}+$node->{bits}-1;
@@ -169,11 +182,15 @@ sub produceTable {
 
   @$data = sort {
     # sort numerically by first number in the bits string
-    $a->{bits} =~ m/^(\d+)/;
-    my $aa=$1;
-    $b->{bits} =~ m/^(\d+)/;
-    my $bb=$1;
-    return ($aa||-1) <=> ($bb||-1); 
+    my $aa=-1;
+    my $bb=-1;
+    if($a->{bits} =~ m/^(\d+)/){
+      $aa=$1;
+    }
+    if($b->{bits} =~ m/^(\d+)/){
+      $bb=$1;
+    }
+    return $aa <=> $bb;
   } @$data; # bit fields in ascending order
   
   @$data = sort { $a->{addr_uint} cmp $b->{addr_uint} } @$data; # addresses in ascending order
@@ -189,7 +206,9 @@ sub produceTable {
     my $cur_addr = $item->{addr_uint};
     if($last_addr){
       if($last_addr != $cur_addr){
-#         $self->{table}->addData(plain_code => '\hline');
+        if($self->{opt}->{style} eq "hline"){
+          $self->{table}->addData(plain_code => '\hline');
+        }
         $addr_counter++;
       }
     }
@@ -198,8 +217,10 @@ sub produceTable {
 #     if($item->{type} eq 'register' || $item->{type} eq 'registerfield'){
 #       $self->{table}->addData(plain_code => '\rowcolor{lightgray}');
 #     }
-    if($addr_counter % 2){
-      $self->{table}->addData(plain_code => '\rowcolor{light-gray}');
+    if($self->{opt}->{style} eq "altgray"){
+      if($addr_counter % 2){
+        $self->{table}->addData(plain_code => '\rowcolor{light-gray}');
+      }
     }
     $self->{table}->addData(%$item); # fill it with the sorted data
     $last_addr = $cur_addr;
@@ -244,21 +265,21 @@ sub writeTexFile {
 
 sub pdflatex{
   my $self = shift;
-  my $output = shift||$me->{group};
+  my $output = shift||$self->{group};
   my $here = qx("pwd");
   $here =~ s/\n//g;
   my $directory = "/dev/shm/xml-db2tex".rand();
   unless(-e $directory or mkdir $directory) {
          die "Unable to create $directory\n";
   }
-  my $texfile = $me->{group}.".tex";
-  my $pdffile = $me->{group}.".pdf";
+  my $texfile = $self->{group}.".tex";
+  my $pdffile = $self->{group}.".pdf";
   
   $output =~ s/\.(tex|pdf)//;
   $output.= ".pdf";
   
   chdir $directory;
-  $me->writeTexFile($texfile, "standalone");
+  $self->writeTexFile($texfile, "standalone");
   system("pdflatex $texfile");
   system("pdflatex $texfile");
   copy("$directory/$pdffile","$here/$output");
@@ -351,8 +372,11 @@ sub addData {
 sub generateString {
   my $self = shift;
   my $str = '% remember to include the following latex packages:
-  % booktabs
-  % longtable'."\n";
+%\usepackage{booktabs}
+%\usepackage{longtable}
+%\usepackage[table]{xcolor}  
+%\definecolor{light-gray}{gray}{0.90}
+  '."\n";
   
   my $header;