diff --git a/data/theory/i48.pdf b/data/theory/i48.pdf index 1de0781..b367295 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 87b68ef..55373c1 100644 --- a/data/theory/mktheory.py +++ b/data/theory/mktheory.py @@ -1,5 +1,7 @@ import matplotlib.pyplot as plt import matplotlib.ticker as mpt +import matplotlib as mpl +import mpl_toolkits.axes_grid1.inset_locator as ins import matplotlib.cm as cm import numpy as np import wafer @@ -119,13 +121,16 @@ def gen_48i_theory(): def gen_1v8_theory(): rpara = 75000 rseri = 2*4700 - xdata = np.arange(0, 256, 4, dtype=int) + xdata = np.arange(0, 256, 1, dtype=int) ydata = (xdata / 256 * 10000) ydata = ydata * rpara / (ydata + rpara) + rseri ydata = 30100 / (ydata + 6490) * .7 + .7 + print(f'vmin: {(ydata[-2]-ydata[-1])*1000} mV') + print(f'vmin: {(ydata[0]-ydata[1])*1000} mV') + plt.clf() - plt.plot(xdata, ydata, label="Equation after Datasheet") + plt.step(xdata, ydata, label="Equation after Datasheet", where='mid', linewidth=.1) vps = vtp.fit( xdata, @@ -145,8 +150,21 @@ def gen_1v8_theory(): plt.xlabel("Potentiometer Setting P$_{val}$") plt.ylabel("V$_{MONITOR\_1V8}$ / V") - plt.savefig('v18.pdf', transparent=True) + rect = mpl.patches.Rectangle((48,1.81),32,.08,linewidth=1, edgecolor='gray',facecolor='none') + plt.gca().add_patch(rect) + plt.savefig('v18.pdf', transparent=True) + plt.cla() + plt.clf() + plt.figure(figsize=(4, 2)) + + + plt.step(xdata[48:80], ydata[48:80], label="Equation after Datasheet", where='mid', linewidth=.1) + plt.gca().xaxis.set_major_formatter(mpt.FuncFormatter( + lambda v, x: '0x{:02x}'.format(int(v)) + )) + + plt.savefig('v18_zoom.pdf', transparent=True) if __name__ == "__main__": gen_48v_theory() diff --git a/data/theory/reg.pdf b/data/theory/reg.pdf index f500d93..b798b1b 100644 Binary files a/data/theory/reg.pdf and b/data/theory/reg.pdf differ diff --git a/data/theory/theo.tex b/data/theory/theo.tex index 66bbb63..c624508 100644 --- a/data/theory/theo.tex +++ b/data/theory/theo.tex @@ -1,9 +1,9 @@ \ExplSyntaxOn \newcommand{\pyval}[1]{% \str_case:nn{#1}{% - { 0 }{ m = \SI{-1.6911+-0.0000}{ }} - { 1 }{ p = \SI{567.6618+-0.0000}{ }} - { 2 }{ a = \SI{-621.1199+-0.0000}{ }} + { 0 }{ m = \SI{-7.2588+-0.0000}{ }} + { 1 }{ p = \SI{2436.5476+-0.0000}{ }} + { 2 }{ a = \SI{-2666.0034+-0.0000}{ }} { 3 }{ c = \SI{0.9318+-0.0000}{ }} } } diff --git a/data/theory/v18.pdf b/data/theory/v18.pdf index f6af638..7b609dd 100644 Binary files a/data/theory/v18.pdf and b/data/theory/v18.pdf differ diff --git a/data/theory/v18_zoom.pdf b/data/theory/v18_zoom.pdf new file mode 100644 index 0000000..fc2fc66 Binary files /dev/null and b/data/theory/v18_zoom.pdf differ diff --git a/data/theory/v48.pdf b/data/theory/v48.pdf index efc783a..4d1531c 100644 Binary files a/data/theory/v48.pdf and b/data/theory/v48.pdf differ diff --git a/data/theory/wafer.pdf b/data/theory/wafer.pdf index c3f78fc..835b660 100644 Binary files a/data/theory/wafer.pdf and b/data/theory/wafer.pdf differ diff --git a/data/theory/wpattern.pdf b/data/theory/wpattern.pdf index 2adf222..b50726a 100644 Binary files a/data/theory/wpattern.pdf and b/data/theory/wpattern.pdf differ diff --git a/parts/intro.tex b/parts/intro.tex index 24ea218..036a654 100644 --- a/parts/intro.tex +++ b/parts/intro.tex @@ -61,19 +61,14 @@ The first goal was to be able to change the calibration parameters. An upgrade for the PowerIt firmware was added to accomodate any calibration parameters. - This was accomplished with a virtual memory map, which maps every parameter to a specific location in a virtual memory. - In this memory, any calibration parameter or measurment value is mapped and can be changed. + This was accomplished with a virtual memory map, which maps every parameter to a specific location and all of them can be changed.\\ - --- - - Calibrating the POwerIt was the next task. + Calibrating the PowerIt was the next task. The calibration characterizes the voltage measuring circuits, whose voltages are either coming into or leaving the PowerIt. Additionally there are a current measuring circuits for incoming current and both \SI{1.8}{\volt} output currents. + A reference voltage measurement was used to generate a fitted polynomial. + This polynomials coefficients are the calibration parameters used inside the PowerIt. - --- - - Taking these calibrations as basis, the \SI{1.8}{\volt} power supplies' behavior could be observed. - %Additionally the electrical behavior of actual hardware both static (no currents) and dynamic (changing currents) could be observed. - And with these measurements a model was applied and checked for fitting this situation. - - Lastly some statements could be made about the complete hardwares behavior and a first version of a regulation model could be implemented. + Taking these calibrations as basis, the \SI{1.8}{\volt} power supplies' behavior through different current draws could be observed. + A simple model was generated from these measurements and applied. + Also inside the formware a first iteration of that model was implemented and could now be tested. \ No newline at end of file diff --git a/parts/theory.tex b/parts/theory.tex index 755f378..42ce076 100644 --- a/parts/theory.tex +++ b/parts/theory.tex @@ -52,6 +52,8 @@ These will contain simplified circuits and their respective equations as well as V_\text{MONITOR\_48V, max} = \SI{52.8}{\volt}\cdot\frac{1}{240+1}\cdot 8\cdot 1.1 =&~\SI{1.9280}{\volt} \end{align} + The ADCs 12bit gives a maximum resolution of \SI{2.1}{\milli\volt}. + \subsection{\SI{48}{\volt} Input Current} The circuit has to satisfy the following constraints: @@ -85,6 +87,8 @@ These will contain simplified circuits and their respective equations as well as \SI{41.7}{\ampere}\cdot \SI{500}{\micro\ohm} \cdot 8\cdot 1.1 =& \SI{0.1833}{\volt} \end{align} + This results in a maximum resolution of \SI{.18}{\ampere}. + \subsection{9.6V Output Voltage} The measurement of \SI{9.6}{\volt} is quite simpler. This Circuit consists of a 1:3 Voltage Divider. @@ -120,48 +124,59 @@ These will contain simplified circuits and their respective equations as well as \subsection{1.8V Output Voltage} - To measure this Voltage the output is directly connected to a pin on the STM32-Chip. + This Voltage is measured directly with the STM32-Chip. - But until now the voltages and current could only be measured, now the mechanism for setting a resulting voltage at the \SI{1.8}{\volt} terminals is known. - The circuit for generating \SI{1.8}{\volt} can be seen in\autoref{fig:gen18v}. - It consists of a power module and a resulting resistance between two pins, defined by R\(_\text{series}\), R\(_\text{parallel}\) and R\(_\text{pot}\). - The resistances job is to set the output to a given voltage of around \SI{1.8}{\volt}. - That voltage can be varied based on R\(_\text{pot}\), because this resistance is set via a digital potentiometer\footnote{MCP4152 digital Rheostat~\cite{mcp4152}}. + Until now the voltages and currents could only be measured, now the mechanism for setting a resulting voltage at the \SI{1.8}{\volt} terminals is known. + The circuit for generating \SI{1.8}{\volt} can be seen in \autoref{fig:gen18v}. + It consists of a power module and the three resistors R\(_\text{series}\), R\(_\text{parallel}\) and R\(_\text{pot}\). + The resistances set the output to a given voltage of around \SI{1.8}{\volt}. + Based on R\(_\text{pot}\) this voltage is varied, because resistance is settable via a digital potentiometer\footnote{MCP4152 digital potentiometer~\cite{mcp4152}}. - \begin{figure}[H] - \centering - \includegraphics[width=.55\textwidth]{./tikz/gen18v.pdf} - \caption{1.8V supply circuit, featuring a DC-DC Converter, a resistor chain, supply voltage (left) and resulting voltage (right)}% - \label{fig:gen18v} - \end{figure} + \begin{figure}[H] + \centering + \includegraphics[width=.55\textwidth]{./tikz/gen18v.pdf} + \caption{% + Schema of a 1.8V supply circuit. It features a DC-DC Converter, a resistor chain, supply voltage (left) and resulting voltage (V\(_O\)). + }% + \label{fig:gen18v} + \end{figure} - The in \autoref{fig:gen18v} used \SI{1.8}{\volt} converter has a characteristic formula~\cite{pth08t}, and the in this circuit used potentiometer is a linear \SI{10}{\kilo\ohm} rheostat. + The in \autoref{fig:gen18v} used \SI{1.8}{\volt} converter has a characteristic output voltage formula~\cite{pth08t}, written in \autoref{eq:vout}. + The in this circuit used \SI{10}{\kilo\ohm} potentiometer is linear. - Therefore equations~\ref{eq:rpot},~\ref{eq:rset} and~\ref{eq:vout} can describe the circuit. - \begin{align} - R_\text{potentiometer} =& P_\text{val} \frac{\SI{10}{\kilo\ohm}}{256} \label{eq:rpot}\\ - R_\text{SET} =& \left(\frac{1}{R_\text{potentiometer}} + \frac{1}{R_\text{parallel}}\right)^{-1} + R_\text{series}\nonumber \\ - =& \frac{R_\text{potentiometer}\cdot R_\text{parallel}}{R_\text{potentiometer} + R_\text{parallel}} + R_\text{series}\label{eq:rset}\\ - V_\text{MONITOR\_1V8} =& \frac{\SI{30.1}{\kilo\ohm}}{R_\text{SET} + \SI{6.49}{\kilo\ohm}} \cdot \SI{0.7}{\volt} + \SI{0.7}{\volt} \label{eq:vout} - \end{align} + Therefore equations~\ref{eq:rpot},~\ref{eq:rset} and~\ref{eq:vout} describe the circuit. + \begin{align} + R_\text{pot} =& P_\text{val} \frac{\SI{10}{\kilo\ohm}}{256} \label{eq:rpot}\\ + R_S =& \left(\frac{1}{R_\text{pot}} + \frac{1}{R_\text{parallel}}\right)^{-1} + R_\text{series}\nonumber \\ + =& \frac{R_\text{pot}\cdot R_\text{parallel}}{R_\text{pot} + R_\text{parallel}} + R_\text{series}\label{eq:rset}\\ + V_\text{MONITOR\_1V8} =& \frac{\SI{30.1}{\kilo\ohm}}{R_S + \SI{6.49}{\kilo\ohm}} \cdot \SI{0.7}{\volt} + \SI{0.7}{\volt} \label{eq:vout} + \end{align} - Visualizing the \autoref{eq:rset} results in \autoref{fig:gen18v}, in which the limits of this circuit are visible. + Visualizing the \autoref{eq:rset} results in \autoref{fig:beh1v8}, in which the limits of this circuit are visible. - \begin{align} - V_\text{MONITOR\_1V8, min} =&~\SI{1.549}{\volt}\\ - V_\text{MONITOR\_1V8, max} =&~\SI{2.022}{\volt} - \end{align} + \begin{align} + V_\text{MONITOR\_1V8, min} =&~\SI{1.549}{\volt}\\ + V_\text{MONITOR\_1V8, max} =&~\SI{2.022}{\volt} + \end{align} - \begin{figure}[H] - \centering - \vspace{-1cm} - \hspace*{-.165\textwidth} - \includegraphics[width=1.3\textwidth]{./data/theory/v18.pdf} - \caption{Expected behavior of 1.8V output voltage vs potentiometer setting}% - \label{fig:beh1v8} - \end{figure} + And these extremes will be a limiting factor later on. + Also with 12bit ADCS that results in a maximum resolution of \SI{.8}{\milli\volt}. + + \begin{figure}[H] + \centering + \vspace{-.5cm} + \hspace*{-.152\textwidth} + \includegraphics[width=1.25\textwidth]{./tikz/v18.pdf} + \caption{% + Expected behavior curve of 1.8V output voltage vs potentiometer setting. + Shown is the complete range of possible settings and their resulting voltage. + The zoomed in partial view shows, that because the setting can only be of integer value any resulting values are also discrete. + A single step can increase the voltage by somewhere between \SI{1.0545}{\milli\volt} and \SI{3.2500}{\milli\volt} + }% + \label{fig:beh1v8} + \end{figure} \subsection{1.8V Output Current} - The circuit for measuring the outgoing current over 1.8V, consists of a current sensing IC, which is Hall sensor based. Each connection (digital and analog) has this IC in series to its load. + The outgoing current over 1.8V is measured by a hall sensor, which outputs a voltage to be measured. Each connection (digital and analog) has this sensor in series to its load. \begin{figure}[H] \centering @@ -169,25 +184,26 @@ These will contain simplified circuits and their respective equations as well as \begin{circuitikz}[scale=2] \draw[color=black, thick] - (0,0) node[left]{GND} - to [short, o-] (1,0) + (-1,0) %node[left]{GND} + to [short,f<^=I$_\text{1.8V}$, -] (1,0) to [] (1,.5) - (0,2) node[left]{1.8V} - to [short, o-] (1,2) + (-1,2) %node[left]{1.8V} + to [short, f>_=I$_\text{1.8V}$, -] (1,2) to [] (1,1.5) - (1.2,1) node[draw=black, regular polygon, regular polygon sides=4, minimum size=2.7cm]{acs758} + (1.2,1) node[draw=black, regular polygon, regular polygon sides=4, minimum size=2.7cm]{ACS758} - (1.7,1) + (1.75,1) to [short, *-] (3, 1) node[right, draw=black] {VDD\_1V8\_*}; \end{circuitikz} } - \caption{1.8V current sensing circuit, featuring a acs758, hall sensor based current sensing IC, input voltage (left) and output voltage (right)}% + \caption{Circuit for measuring 1.8V current. It features a ACS758 hall sensor, input voltage (left) and output voltage (right)}% \label{fig:mon18i} \end{figure} - The IC is rated for a maximum constant current draw of 100A, and features the following behavior: + The hall sensor is rated for a maximum constant current draw of 100A, and features the following behavior: + \begin{align} I_\text{1.8V, in} \cdot \SI{0.004}{\volt\per\ampere} + \SI{0.12}{\volt} =&~V_\text{MONITOR\_1I8}\\ \intertext{By applying the limits of \SI{0}{\ampere} and \SI{100}{\ampere}, the following voltage range can be observed:} @@ -195,6 +211,7 @@ These will contain simplified circuits and their respective equations as well as \SI{100}{\ampere} \cdot\SI{0.004}{\volt\per\ampere} + \SI{0.12}{\volt} =&~\SI{0.52}{\volt} \end{align} + These values and the used 12bit ADCs gives a maximum resolution of around \SI{.2}{\ampere} \section{1.8V Output Regulation} The method for regulating the \SI{1.8}{\volt} output voltage consists of two parts. @@ -203,7 +220,7 @@ First the voltage, wanted at the output terminal and second the corresponding po On the other hand, to calculate the voltage to output, it is necessary to classify the connections between the PowerIts output terminals and reticles. \subsection{Potentiometer Mapping} - Combining Equations~\ref{eq:rpot},~\ref{eq:rset}, and~\ref{eq:vout}, we gather \autoref{eq:fullreg}. This equation maps a given output voltage to a corresponding Potentiometer Setting (reverse to \autoref{fig:beh1v8}). + Combining Equations~\ref{eq:rpot},~\ref{eq:rset}, and~\ref{eq:vout}, we gather \autoref{eq:fullreg}. This equation maps a given output voltage to a corresponding potentiometer setting (reverse to \autoref{fig:beh1v8}). \begin{align} \label{eq:fullreg} P_\text{val} = \frac{% @@ -222,12 +239,12 @@ On the other hand, to calculate the voltage to output, it is necessary to classi But it is fundamentally different, as it cannot be used for any neuromorphic computations, but only to test for voltages and currents. Its internals are ohmic resistors, which provide a maximum power draw per reticle of what is possible inside a usable wafer module. - \begin{figure}[H] - \centering - \includegraphics[width=.8\columnwidth]{./data/theory/wafer.pdf} - \caption{Reticle diagram of a wafer in BrainScaleS. All 48 Reticles are shown. This Layout is an approximation of real world positioning. A single reticle has a width of \SI{20.0482}{\milli\meter} and height of \SI{20.145}{\milli\meter}, with additional space in between reticles of \SI{420}{\micro\meter} horizontally and \SI{250}{\micro\meter} vertically~\cite{waferembedding}}% - \label{fig:wafer} - \end{figure} + % \begin{figure}[H] + % \centering + % \includegraphics[width=.8\columnwidth]{./data/theory/wafer.pdf} + % \caption{Reticle diagram of a wafer in BrainScaleS. All 48 Reticles are shown. This Layout is an approximation of real world positioning. A single reticle has a width of \SI{20.0482}{\milli\meter} and height of \SI{20.145}{\milli\meter}, with additional space in between reticles of \SI{420}{\micro\meter} horizontally and \SI{250}{\micro\meter} vertically~\cite{waferembedding}}% + % \label{fig:wafer} + % \end{figure} It has the same layout as its system counterparts and each of the 48 reticles can be accessed, digitally as well as electrically. @@ -243,15 +260,17 @@ On the other hand, to calculate the voltage to output, it is necessary to classi \begin{figure}[H] \centering - \includegraphics[width=.9\columnwidth]{./tikz/mainpcb_back.pdf} - \caption{A photograph of the top of the MainPCB (courtesy of Maurice G\"{u}ttler~\cite{waferembedding}). - The board has a length and width of 43cm. - Visible in the center are the PowerFETs (Field Effect Transistors) (1) which switch the power supply of each reticle. - These are controlled via the CURE boards. - In yellow the corresponding Reticle and its position is marked. - The CUREs are placed at the 8 central positions (2). - The top-left and bottom right corner connectors (3) are for the AnaB boards. - The main supply voltages V\(_\text{DDA}\) (red) and V\(_\text{DDD}\) (blue) are generated on the PowerIt and inserted at the marked screw connections.}% + \includegraphics[width=\columnwidth]{./tikz/mainpcb_back.pdf} + \caption{% + A photograph of the top of the MainPCB (courtesy of Maurice G\"{u}ttler~\cite{waferembedding}). + The board has a length and width of 43cm. + Visible in the center are the PowerFETs (Field Effect Transistors) (1) which switch the power supply of each reticle. + These are controlled via the CURE boards (2). + In yellow the corresponding Reticle and its position is marked. + All 48 Reticles are shown. A single reticle has a width of \SI{20.0482}{\milli\meter} and height of \SI{20.145}{\milli\meter}, with additional space in between reticles of \SI{420}{\micro\meter} horizontally and \SI{250}{\micro\meter} vertically~\cite{waferembedding}. + The top-left and bottom right corner connectors (3) are for the AnaB boards. + The main supply voltages V\(_\text{DDA}\) (red) and V\(_\text{DDD}\) (blue) are generated on the PowerIt and inserted at the marked screw connections. + }% \label{fig:mainpcb} \end{figure} @@ -264,7 +283,10 @@ On the other hand, to calculate the voltage to output, it is necessary to classi \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 (depicted as switch), while \(R_1\) is a Resistance between FET and Reticles. The measurement is done between Output Terminals on the PowerIt and pins on a Analog readout 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 (depicted as switch), while \(R_1\) is a Resistance between FET and Reticles. + The measurement is done between Output Terminals on the PowerIt and pins on a Analog readout board. + }% \label{fig:retmodel} \end{figure} diff --git a/thesis.pdf b/thesis.pdf new file mode 100644 index 0000000..4a77390 Binary files /dev/null and b/thesis.pdf differ diff --git a/thesis.tex b/thesis.tex index d85bdfc..d6095c9 100644 --- a/thesis.tex +++ b/thesis.tex @@ -22,6 +22,8 @@ \titleformat*{\section}{\bfseries\Large} \titleformat*{\subsection}{\bfseries\large} +\renewcommand*{\figureautorefname}{figure} +\renewcommand*{\equationautorefname}{equation} \renewcommand{\listingscaption}{\sffamily Code} \newcommand{\codecaption}[1]{\caption{\parbox[t]{.9\linewidth}{#1}}} \providecommand*{\listingautorefname}{code} diff --git a/tikz/v18.pdf b/tikz/v18.pdf new file mode 100644 index 0000000..97f8220 Binary files /dev/null and b/tikz/v18.pdf differ diff --git a/tikz/v18.tex b/tikz/v18.tex new file mode 100644 index 0000000..ab4d767 --- /dev/null +++ b/tikz/v18.tex @@ -0,0 +1,12 @@ +\documentclass{standalone} +\input{./tikzpreamble} +\begin{document} + \begin{tikzpicture} + \node[anchor=south west,inner sep=0] (image) at (0,0) {\includegraphics[width=\textwidth]{../data/theory/v18.pdf}}; + \begin{scope}[x={(image.south east)},y={(image.north west)}] + \node[fill=white] at (.80, .80) {\includegraphics[width=.5\columnwidth]{../data/theory/v18_zoom.pdf}}; + \draw[draw=gray] (.381, .525) to (.613, .606); + \draw[draw=gray] (.381, .642) to (.613, 0.990); + \end{scope} + \end{tikzpicture} +\end{document} \ No newline at end of file