diff --git a/data/raspi-i2c/serv.py b/data/raspi-i2c/serv.py new file mode 120000 index 0000000..58483fd --- /dev/null +++ b/data/raspi-i2c/serv.py @@ -0,0 +1 @@ +/remote_media/m03/home/pi/serv.py \ No newline at end of file diff --git a/data/theory/i48.pdf b/data/theory/i48.pdf index e501fca..259980d 100644 Binary files a/data/theory/i48.pdf and b/data/theory/i48.pdf differ diff --git a/data/theory/mktheory.py b/data/theory/mktheory.py index 4b90b07..b00948c 100644 --- a/data/theory/mktheory.py +++ b/data/theory/mktheory.py @@ -5,6 +5,7 @@ plt.style.use('bmh') plt.rcParams['axes.facecolor'] = 'white' plt.figure(figsize=(8, 3)) + def gen_48v_theory(): xdata = np.linspace(43, 53, 100) ydata = xdata / 241 * 8 * 1.1 @@ -15,9 +16,9 @@ def gen_48v_theory(): plt.xlabel('V$_{pin}$ / V') plt.ylabel('V$_{48V in}$ / V') - plt.tight_layout() plt.savefig('v48.pdf') + def gen_48i_theory(): xdata = np.linspace(0, 2000/48, 100) ydata = xdata * 500e-6 * 8 * 1.1 @@ -28,9 +29,9 @@ def gen_48i_theory(): plt.xlabel('V$_{pin}$ / V') plt.ylabel('I$_{48V in}$ / A') - plt.tight_layout() plt.savefig('i48.pdf') + def gen_1v8_theory(): rpara = 75000 rseri = 2*4700 @@ -45,9 +46,9 @@ def gen_1v8_theory(): plt.xlabel("Potentiometer Setting") plt.ylabel("V$_{1.8V out}$") - plt.tight_layout() plt.savefig('v18.pdf') + if __name__ == "__main__": gen_48v_theory() gen_48i_theory() diff --git a/data/theory/v18.pdf b/data/theory/v18.pdf index 46fcecc..9bbc696 100644 Binary files a/data/theory/v18.pdf and b/data/theory/v18.pdf differ diff --git a/data/theory/v48.pdf b/data/theory/v48.pdf index 6671a4f..e08a9e1 100644 Binary files a/data/theory/v48.pdf and b/data/theory/v48.pdf differ diff --git a/parts/intro.tex b/parts/intro.tex index 217777e..111145f 100644 --- a/parts/intro.tex +++ b/parts/intro.tex @@ -5,55 +5,51 @@ \section{What is the BrainScale System?} -The BrainScaleS Wafer System, developed and used in the electronic visions Group at Heidelberg University is a neuromorhic hardware implementation. +The BrainScale Wafer System~\cite{hbpguidebook}, developed and used in the electronic visions Group at Heidelberg University is a neuromorhic hardware implementation.\\ -For this Thesis important core components, inside the System, are the mixed-signal ASICs, named HICANNs (on Wafer in fig. \ref{wss}), and FPGAs for controlling these HICANNs \cite{hbpguidebook} +For this thesis only some core components are important: +\begin{itemize} + \item the mixed-signal ASICs, named HICANNs, structured in packs of 8 into ``Reticles'' + \item the Control Units for Reticles, short CURE Boards + \item the analog breakout Boards, AnaB for short + \item and the power supply, called PowerIt. +\end{itemize} -\begin{figure}[h] +\begin{figure}[H] \centering \includegraphics[width=.9\textwidth]{pics/waferscale_system.png} - \caption{The BrainScaleS wafer-scale hardware system} - \label{wss} + \caption{The BrainScaleS wafer-scale hardware system, marked are the main components comprising a single wafer system.~\cite{hbpguidebook-brainscales}}\label{fig:wss} \end{figure} -\section{What's the PowerIt Subsystem?} +\section{About the PowerIt Subsystem} -The hardware used in this thesis is a PowerIt board (fig. \ref{}), developed in the electronic visions group. It functions as power supply inside of the Waferscale System (fig. \ref{wss}). +The main subject of this thesis is the PowerIt board (\autoref{fig:pitteststand}). It functions as power supply inside of the WaferScale System (\autoref{fig:wss}). +In which it is providing the Wafer with 1.8V and the FPGAs with 9.6V. Its maximum rated Powerdraw is 2kW.~\cite{poweritupgrade} \begin{figure}[h] \centering \includegraphics[width=.7\textwidth]{pics/poweritv2_teststand_2} - \caption{PowerIt Board, top view, receiving 48V as input (top left) and outputting 9.6V (top and bottom) as well as 1.8V (analog: top left, bottom right; digital: top right, bottom left)} - \label{} + \caption{PowerIt Board, top view, receiving 48V as input (top left) and outputting 9.6V (top and bottom) as well as 1.8V (analog: top left, bottom right; digital: top right, bottom left)}\label{fig:pitteststand} \end{figure} -In which it is providing the Wafer with 1.8V and the FPGAs with 9.6V. Its maximum rated Pwerdraw is 2kW. - -%TODO: fix cite \cite{poweritpgrade} - - - -%TODO: mv to theory +The ``Brain'' of these PowerIt Boards is a STM32 Chip\footnote{STM32F405RGT~\cite{stm32f405xx}} which runs a custom Firmware based on ChibiOS~\cite{chibios}. \newpage -\section{Goals} +\section{Intentions of this Work} \begin{itemize} - \item Upgrade the PowerIt Firmware to contain the ability for calibration of all on board measurements, voltage and current. + \item Upgrade the PowerIt Firmware to be able to calibrate all on board measurements, voltages and currents. - This requires the Firmware to handle calibration changes on the fly, also without assuming the degree of polynomials used (only that they are all of the same degree) - \item Provide a communication interface for changing those parameters on runtime. + This requires the Firmware to handle calibration changes on the fly. + \item Provide a communication interface for changing those parameters at runtime. - Assuming v2 of the communication Protocol (PItCOMM) we require access to all coefficients as writable objects, defining the degree of polynomial needs to be set here, resulting in setting the polynomial degrees at compile time. - \item Provide access to more parameters used within the PowerIt while unifying the protocol used. + Assuming v2 of the communication Protocol (PItCOMM) we require write access to all coefficients, defining the degree of polynomial is done at compile time. + \item Provide access to more parameters within the PowerIt while unifying the protocol used. Collect all writable, readable and static parameters in a single interface using PItCOMM v2, creating a mapping for reference to those values. \item Calibrate the onboard measurement circuits, using a database containing uniquely mappable values. Characterizing the circuits, providing a default for fallback and a Database file, readable by the BrainScaleS Monitoring System and the Person calibrating each Board. - \item Provide a manual for calibrating additional PowerIt Boards. - - This should contain all commands to be run on each device which is part of the calibration process, as well as instructions for writing new values to the database. - \item Using the calibrated measurements provide a regulation mechanism for stable 1.8V output at its endpoint. + \item Provide a regulation mechanism for stable, modifiable output at its endpoints. The connection between PowerIt and HICANNs can be seen as a non trivial Resistor, which requires the 1.8V output to regulate based on experimental data. \end{itemize} diff --git a/parts/theory.tex b/parts/theory.tex index c5d91d5..d1aebdd 100644 --- a/parts/theory.tex +++ b/parts/theory.tex @@ -1,17 +1,17 @@ %! TEX root = ../thesis.tex \chapter{Theory} -THis Chapter will be discribing the fundamental principles used in the done experimants. These will contain the circuis and their respective Equations as well as component behaviour as specified in their respective Datasheets by their Manufacturer +This Chapter will be discussing the fundamental principles used in the experiments. These will contain the circuis and their respective Equations as well as component behaviour as specified in their respective Datasheets by their Manufacturer \section{Hardware Component Behavior} Before discussing the experimental results it needs to be clear what circuitry is used in these experiments and what behavior we expect. -Keeping in mind, that these values are purely theoretical and will most likely not correspond to those found in actual harware. +Keeping in mind, that these values are purely theoretical and will most likely not be exactly the same as those found in actual hardware. -Each of the three voltage regimes that will be observed on the PowerIt Board, has a Voltage and in the cases of 48V and 1.8V also a current measuremet circuit. Additionaly we have a temperature sensor built into the STM32 Chip used on the Board. +Each of the three voltage regimes that will be observed on the PowerIt Board, 48V 9.6V and 1.8V, has a voltage- and in the cases of 48V and 1.8V also a current-measurement circuit. Additionaly we have a temperature sensor built into the STM32 Chip. \subsection{48V Input Voltage} \begin{figure}[H] \centering \includegraphics[width=.9\textwidth]{./tikz/mon48v.pdf} - \caption{Circuit for measuring the 48V input Voltage, consisting of input potential, two resistors as voltage divider, one full differential operational amplifier (full Diff Op Amp), one operational Amplifier, output voltage as well as the connection to the STM32-Chips input pin} + \caption{Circuit for measuring the 48V input Voltage, consisting of input potential (left), two resistors as voltage divider, one full differential isolation amplifier (full Diff Op Amp, left), one operational Amplifier (right), output voltage as well as the connection to the STM32-Chips input pin (right)}% \label{mon48v} \end{figure} @@ -19,33 +19,25 @@ The circuits for measuring input Voltage and current are the most complex, becau \begin{itemize} \item divide our input voltage into a usable potential range \item decouple the input from our signal potential - \item operate within the Chips possible Voltage range of 0 -- 3.3V + \item amplify the voltage, to be in the Chips Voltage range of 0--3.3V \end{itemize} -The already implemented Cicuit can be seen in \autoref{mon48v}. It consists of a 1:240 Voltage Divider, a full differential operational amplifier taking in the ~200mV (nominal), and amplifying it by a factor of 8 ($r_\text{diffOpAmp}$). It is also decoupling the input and output voltages, so our 48V and 3.3V circuit parts are electricly insulated. The remaining operational amplifier provides futher amplification by a factor of 1.1 ($r_\text{OpAmp}$) +The already implemented Cicuit can be seen in \autoref{mon48v}. It consists of a 1:240 Voltage Divider, a full differential isolation amplifier taking in the $\approx$ 200mV (nominal voltage range), and amplifying it by a factor of 8 ($r_\text{diffOpAmp}$~\cite{diffopamp}). It is also decoupling the input and output voltages, so our 48V and 3.3V circuit parts are electricly insulated. The remaining operational amplifier provides futher amplification by a factor of 1.1 ($r_\text{OpAmp}$) This circuit results in the following equation for calculating the input voltage from a pin voltage: -\begin{equation} - V_\text{48V in}\cdot\frac{R_1}{R_1+R_2} \cdot r_\text{diffOpAmp} \cdot r_\text{OpAmp} = V_\text{48V pin} -\end{equation} +\begin{align} + V_\text{48V in}\cdot\frac{R_1}{R_1+R_2} \cdot r_\text{diffOpAmp} \cdot r_\text{OpAmp} =&~V_\text{48V pin}\nonumber\\ + \Leftrightarrow \quad \frac{V_\text{48V pin}}{r_\text{diffOpAmp}\cdot r_\text{OpAmp}}\cdot\frac{R_1+R_2}{R_1} =&~V_\text{48V in} +\end{align} -% and the expected behavior, as seen in \autoref{beh48v} -% -% \begin{figure}[h] -% \centering -% \hspace*{-.16\textwidth} -% \includegraphics[width=1.3\textwidth]{./data/theory/v48.pdf} -% \caption{Expected behavior of our 48V measurement circuit} -% \label{beh48v} -% \end{figure} \subsection{48V Input Current} \begin{figure}[H] \centering \includegraphics[width=.9\textwidth]{./tikz/mon48i.pdf} - \caption{Circuit for measuring the 48V input Current, consisting of the powerit Input Circuit, one shunt-resistor, one full diff Op Amp, one Op Amp, output potential, as well as the connection to the STM32-Chip input pin} + \caption{Circuit for measuring the 48V input Current, consisting of the powerit Input Circuit, one shunt-resistor, one full diff isolating Amplifier, one operational amplifier, output potential, as well as the connection to the STM32-Chip input pin}% \label{mon48i} \end{figure} @@ -55,47 +47,68 @@ In case of the current measurement circuit we require the following: \item still providing a good resolution also within the Chips Specifications \end{enumerate} -Our calculation is based on: -\begin{equation} - I_\text{48V IN}\cdot R_{shunt} \cdot r_\text{diffOpAmp} \cdot r_\text{OpAmp} = V_\text{48I pin} -\end{equation} - -% so we expect: -% \begin{figure}[h] -% \centering -% \caption{Expected behavior of our input current measurement circuit} -% \hspace*{-.16\textwidth} -% \includegraphics[width=1.3\textwidth]{./data/theory/i48.pdf} -% \label{beh48i} -% \end{figure} +Here we use the same Amplifiers and so we can use the following equation for our input current: +\begin{align} + I_\text{48V IN}\cdot R_\text{shunt} \cdot r_\text{diffOpAmp} \cdot r_\text{OpAmp} = V_\text{48I pin}\nonumber\\ + \Leftrightarrow\qud \frac{V_\text{48I pin}}{R_\text{shunt}} \cdot \frac{1}{r_\text{diffOpAmp}\cdot r_\text{OpAmp}} = I_\text{48V IN} +\end{align} \subsection{9.6V Output Voltage} -Consists of a a simple 1:4 Voltage Divider. - -\subsection{1.8V Output Voltage} +This Circuit consists of a a simple 1:4 Voltage Divider. \begin{figure}[H] \centering - \includegraphics[width=.6\textwidth]{./tikz/gen18v.pdf} - \caption{Circuit for generating a changable Output Voltage} + + \resizebox{.55\columnwidth}{.12\paperheight}{% + \begin{circuitikz}[scale=2] + \draw[color=black, thick] + + (0,0) node[left]{GND} + to [short, o-] (1,0) + to [R, l_={R1 1k}] (1,1) + + (0,2) node[left]{9.6V} + to [short, o-] (1,2) + to [R, l={R2 3k}] (1,1) + to [short, *-] (3, 1) node[right, draw=black] {MONITOR\_10V}; + \end{circuitikz} + } + +\end{figure} + +And the following equation shows that: +\begin{align} + V_\text{10V PIN} = \frac{V_\text{10V IN} \cdot R_1}{R_1 + R_2} +\end{align} + + +\subsection{1.8V Output Voltage} + +until now the voltages and current could only be measured, now the mechanism for setting a resulting Voltage at the 1.8V Terminals is known. \autoref{fig:gen18v} is the circuit for generating 1.8V, it consists of a power module and a resulting resistance at given pind, defined by R$_\text{series}$, R$_\text{parallel}$ and R$_{pot}$, whose job is to set the output to a given voltage of around 1.8V, but we can vary R$_\text{pot}$, because this resistance is set vie a digital potentiometer. +\begin{figure}[t] + \centering + \includegraphics[width=.55\textwidth]{./tikz/gen18v.pdf} + \caption{Circuit for generating a changable Output Voltage, consisting of the DC-DC Converter, a resistor chain, supply voltage (left) and resulting voltage (right)}% \label{fig:gen18v} \end{figure} -The in \autoref{fig:gen18v} used 1.8V stepdown modules have a characteristic formual \cite{pth08t} +The in \autoref{fig:gen18v} used 1.8V Converters have a characteristic formual~\cite{pth08t}, and the in this circuit used Potentiometer is a linear 10k$\Omega$ Rheostat resulting in the following equations: \begin{align} - R_{potentiometer} = P_{val} \frac{10k\Omega}{256} \label{eq:rpot}\\ + R_{potentiometer} =& P_{val} \frac{10k\Omega}{256} \label{eq:rpot}\\ R_{SET} =& 1 / \left(\frac{1}{R_{potentiometer}} + \frac{1}{R_{parallel}}\right) + R_{series}\nonumber\\ =& \frac{R_\text{potentiometer}\cdot R_\text{parallel}}{R_\text{potentiometer} + R_\text{parallel}} + R_\text{series}\label{eq:rset}\\ V_O =& \frac{30.1 k\Omega}{R_{SET} + 6.49 k\Omega} \cdot 0.7V + 0.7V\label{eq:vout} \end{align} +This equation is in contrast to all previous behavior models not of a linear nature but proportional to $\frac1x$ as visualized in \autoref{fig:beh1v8} + \begin{figure}[H] \centering - \hspace*{-.13\textwidth} + \hspace*{-.165\textwidth} \includegraphics[width=1.3\textwidth]{./data/theory/v18.pdf} - \caption{Expected bahavior of our output voltage by setting the potentiometer} - \label{beh1v8} + \caption{Expected bahavior of our output voltage by setting the potentiometer}% + \label{fig:beh1v8} \end{figure} \subsection{1.8V Output Current} @@ -112,7 +125,7 @@ While the measurements done by the STM32-Chip are using a 12bit ADC, we don't ha %\section{Firmware Requirements} \section{Power Wafer} -To test the 1.8V Regulation the so called Power Wafer is going to be used, it bahves similarly to a in BrainScales used "fuctional" Wafer module. But it is fundamentally different, as it cannot be used for computation, but only to test for voltages and currents. Its internals behave like switchable ohmic resistors, which provides us with a macimum power draw per section (Reticle) of what is allowed inside a usable wafer. +To test the 1.8V Regulation the so called Power Wafer is going to be used, it bahves similarly to a in BrainScales used ``fuctional'' Wafer module. But it is fundamentally different, as it cannot be used for computation, but only to test for voltages and currents. Its internals behave like switchable ohmic resistors, which provides us with a macimum power draw per section (Reticle) of what is allowed inside a usable wafer. Like its counterparts, it has the same Layout @@ -125,7 +138,7 @@ Like its counterparts, it has the same Layout \begin{figure}[H] \centering \includegraphics[width=1\columnwidth]{./pics/waferpcb.png} - \caption{part of the mainpcb on which a wafer is placed, in its realworld orientation, visible are the 48 Reticles and two terminals each for 1.8V Digital and Analog} + \caption{part of the mainpcb on which a wafer is placed, in its realworld orientation, visible are the 48 Reticles and two terminals each for 1.8V Digital and Analog}% \label{} \end{figure} @@ -136,7 +149,7 @@ For this work the circuit model in \autoref{retmodel} can be used to describe th \begin{figure}[H] \centering \includegraphics[width=.4\columnwidth]{./tikz/reticlepower.pdf} - \caption{model of the to measure resistances and their currents, $R_0$ describes the resistance of a connection between the PowerIt Output and up to the FET, while $R_1$ is a Resistance between FET and Reticles. The measurement is done between a Output Terminal on the PowerIt an a correspontingpin on a Ana-Board} + \caption{model of the to measure resistances and their currents, $R_0$ describes the resistance of a connection between the PowerIt Output and up to the FET, while $R_1$ is a Resistance between FET and Reticles. The measurement is done between a Output Terminal on the PowerIt an a correspontingpin on a Ana-Board}% \label{retmodel} \end{figure} @@ -154,20 +167,20 @@ Therefore the voltage Differential as measured by a Voltmeter (\autoref{retmodel =&\ I_{ret} \cdot \left( R_1 + R_0 \cdot n_{ret} \right) \end{align} -Combining Equations \ref{eq:rset}, \ref{eq:vout} and %TODO +Combining Equations~\ref{eq:rset},~\ref{eq:vout} and %TODO we gather \autoref{eq:fullreg} \begin{align} \label{eq:fullreg} - P_{val} = \frac{ + P_{val} = \frac{% R_{par} \left[ \left( \frac{0.7V \cdot 30.1k\Omega}{V_{O}-0.7V} - 6.49k\Omega \right) - R_{ser}\right] - }{ + }{% R_{par} + \left( \frac{0.7V \cdot 30.1k\Omega}{V_{O}-0.7V} - 6.49k\Omega \right) - R_{ser} }\cdot \frac{256}{10k\Omega} \end{align} inside the code used for Regulation %TODO: reference -, \autoref{eq:fullreg} will be used to create a lookup table, while \autoref{eq:vout2} will be used at runtime, for which Equations \ref{eq:vdip} and \ref{eq:voff} are needed. +, \autoref{eq:fullreg} will be used to create a lookup table, while \autoref{eq:vout2} will be used at runtime, for which \autoref{eq:vdip} and~\ref{eq:voff} are needed. \begin{align} \label{eq:voff} V_{dip} =& V_O - V_{off}\\ @@ -180,7 +193,7 @@ Alternatively: \begin{figure}[H] \centering \includegraphics[width=.5\columnwidth]{tikz/reticlepower_2} - \caption{retpow2} + \caption{retpow2}% \label{fig:retmodelshell} \end{figure} @@ -189,6 +202,6 @@ so we expect the voltage to change depending on the reticles distance to the nea \begin{figure}[H] \centering \includegraphics[width=\columnwidth]{../pitstop/20180809/reticel_rtheo.pdf} - \caption{theoretr} + \caption{theoretr}% \label{fig:retmodelrdist} \end{figure} diff --git a/preamble.tex b/preamble.tex index 28c268a..0b6e7cc 100644 --- a/preamble.tex +++ b/preamble.tex @@ -3,6 +3,7 @@ \usepackage{titlesec} \input{tikz/tikzpreamble.tex} +\usepackage{fontawesome} \usepackage{titling} \usepackage{xcolor} %\definecolor{mintedbg}{HTML}{282c34} diff --git a/thesis.tex b/thesis.tex index 7272b9f..c03f37b 100644 --- a/thesis.tex +++ b/thesis.tex @@ -6,8 +6,8 @@ \input{./pitstop/20180807/res.tex} \usepackage{fontawesome} -\pretitle{\begin{center}\huge\bfseries} -\posttitle{\par\end{center}\vskip 0.5em} +\pretitle{\centering \huge \bfseries } +\posttitle{\par\vspace{0.5em}} \preauthor{\begin{center}\Large} \postauthor{\end{center}} \predate{\par\large\centering} @@ -25,6 +25,9 @@ \begin{abstract} Monitoring System status and regulation parameters within a complex System such as BrainScaleS, provides multiple critical points, which in case of misbehaviour can result in problems within the complete system. To reduce the eroneous data created within BarainScaleS, the PowerIt Board, one of its submodules, was upgraded and received a software ovehaul, containing calibration for the on board measurements and regultion capability for its most critical output terminal. + \\\\ + + Monitoring System Status und Regulations Parameter innherhalb eines komplexen Systems, wie etwa BrainScaleS, entahlten kritische Punkte des Systems, welche im Flalle eines Fehlers in Promblemen mit dem kompletten System resultieren können. Um die innerhalb von BrainScales erzeugten fehlerhaften Daten zu reduzieren, hat das PowerIt Submodul ein Firmware Upgrade erhalten, diese enthält nun Kalibrationen für die Board eigenen Messungen, sowie die Fähigkeit die Systemkritischen Ausgänge zu regulieren. \end{abstract} \setcounter{tocdepth}{1} diff --git a/ubib b/ubib index 479a79f..adf0d03 160000 --- a/ubib +++ b/ubib @@ -1 +1 @@ -Subproject commit 479a79f96a7e2262c98959f0291948ee3639ed51 +Subproject commit adf0d03a01759f4a92c08b3343def324db18cef6