update 2128

nix_fix
kai 2021-07-27 17:10:27 +08:00
parent de4fd7bd0f
commit a1e3cbd819
3 changed files with 308 additions and 17 deletions

BIN
2128.pdf Normal file

Binary file not shown.

281
2128.tex
View File

@ -7,15 +7,20 @@
\BeforeBeginEnvironment{minted}{\begin{tcolorbox}[colback=white]}%
\AfterEndEnvironment{minted}{\end{tcolorbox}}%
\usepackage[justification=centering]{caption}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[english]{isodate}
\usepackage{graphicx}
\usepackage{subfigure}
\usepackage{tikz}
\usepackage{pgfplots}
\usepackage{circuitikz}
\usetikzlibrary{calc}
\usetikzlibrary{fit,backgrounds}
\title{2128 SMA-TTL}
\author{M-Labs Limited}
@ -59,28 +64,266 @@ The card support a minimum pulse width of 3ns.
% Switch to next column
\vfill\break
\newcommand*{\MyLabel}[3][2cm]{\parbox{#1}{\centering #2 \\ #3}}
\newcommand*{\MymyLabel}[3][4cm]{\parbox{#1}{\centering #2 \\ #3}}
\begin{figure}[h]
\begin{circuitikz}[european]
\node[op amp] (amp1) {};
\node[op amp, below = 0.5cm, xscale = -1] (amp2) {};
\draw (amp1.out) |- (amp2.-);
\draw (amp2.-) ++(0, 0.3cm) node[circ]{} to +(2,0) node[above left]{5};
\draw (amp2.out) to (amp1.+);
\draw (amp1.+) ++(0, -0.3cm) node[circ]{} to +(-2,0) node[above right]{2};
\draw (amp1.-) to +(-2,0) node[above right]{1};
\draw (amp2.+) to +(2,0) node[above left]{4};
\draw (amp1.out) +(0,0.5cm) node (Vdd) {$\mathrm{V_{DD}}$};
\draw (Vdd.east) to +(1.5,0) node [above left]{6};
\draw (amp2.out) +(0,-0.5cm) node (Vss) {$\mathrm{V_{SS}}$};
\draw (Vss.west) to +(-1.6,0) node [above right]{3};
\draw ($(amp1.north west) + (-0.5,0.5)$) rectangle ($(amp2.south west) + (0.5,-0.5)$);
\centering
\scalebox{0.88}{
\begin{circuitikz}[european, scale=0.95, every label/.append style={align=center}]
\begin{scope}[yshift=1.3cm]
\draw[color=white, text=black] (-0.1,0) node[twoportshape,t={SMA 0}, circuitikz/bipoles/twoport/width=1.2, scale=0.4] (sma0) {};
\draw[color=white, text=black] (-0.1,-0.7) node[twoportshape,t={SMA 1}, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (sma1) {};
\draw[color=white, text=black] (-0.1,-1.4) node[twoportshape,t={SMA 2}, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (sma2) {};
\draw[color=white, text=black] (-0.1,-2.1) node[twoportshape,t={SMA 3}, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (sma3) {};
\node [label={[xshift=-0.18cm, yshift=-0.305cm]\tiny{SMA 0}}] {};
\node [label={[xshift=-0.18cm, yshift=-0.97cm]\tiny{SMA 1}}] {};
\node [label={[xshift=-0.18cm, yshift=-1.64cm]\tiny{SMA 2}}] {};
\node [label={[xshift=-0.18cm, yshift=-2.302cm]\tiny{SMA 3}}] {};
% draw female SMA_0,1,2,3
\begin{scope}[scale=0.07 , rotate=-90, xshift=0cm, yshift=2cm]
\draw (0,0.65) -- (0,3);
\clip (-1.5,0) rectangle (1.5,1.5);
\draw (0,0) circle(1.5);
\clip (-0.8,0) rectangle (0.8,0.8);
\draw (0,0) circle(0.8);
\end{scope}
\begin{scope}[scale=0.07 , rotate=-90, xshift=10cm, yshift=2cm]
\draw (0,0.65) -- (0,3);
\clip (-1.5,0) rectangle (1.5,1.5);
\draw (0,0) circle(1.5);
\clip (-0.8,0) rectangle (0.8,0.8);
\draw (0,0) circle(0.8);
\end{scope}
\begin{scope}[scale=0.07 , rotate=-90, xshift=20cm, yshift=2cm]
\draw (0,0.65) -- (0,3);
\clip (-1.5,0) rectangle (1.5,1.5);
\draw (0,0) circle(1.5);
\clip (-0.8,0) rectangle (0.8,0.8);
\draw (0,0) circle(0.8);
\end{scope}
\begin{scope}[scale=0.07 , rotate=-90, xshift=30cm, yshift=2cm]
\draw (0,0.65) -- (0,3);
\clip (-1.5,0) rectangle (1.5,1.5);
\draw (0,0) circle(1.5);
\clip (-0.8,0) rectangle (0.8,0.8);
\draw (0,0) circle(0.8);
\end{scope}
\draw (1.6,-1.05) node[twoportshape,t={Octal Bus Transceiver}, circuitikz/bipoles/twoport/width=2.5, scale=0.7, rotate=-90 ] (bus1) {};
\draw (3.05,-0) node[twoportshape,t={Isolator}, circuitikz/bipoles/twoport/width=1.3, scale=0.4] (iso1) {};
\draw (3.05,-0.7) node[twoportshape,t={Isolator}, circuitikz/bipoles/twoport/width=1.3, scale=0.4] (iso2) {};
\draw (3.05,-1.4) node[twoportshape,t={Isolator}, circuitikz/bipoles/twoport/width=1.3, scale=0.4] (iso3) {};
\draw (3.05,-2.1) node[twoportshape,t={Isolator}, circuitikz/bipoles/twoport/width=1.3, scale=0.4] (iso4) {};
\draw (3.05,-2.7) node[twoportshape,t={Isolator}, circuitikz/bipoles/twoport/width=1.3, scale=0.4] (i2ciso1) {};
\draw (4.5,-1.15) node[twoportshape,t=\MymyLabel{4-Channel LVDS}{Line Transceiver}, circuitikz/bipoles/twoport/width=2.6, scale=0.7, rotate=-90] (lvds1) {};
\draw (6.8,-0.9) -- ++(0.00001,0) node[twoportshape, anchor=left, t={EEM port}, circuitikz/bipoles/twoport/width=6, scale=0.6, rotate=-90] (kasli) {} ;
\draw (0.8,-3.5) node[twoportshape,t=\MymyLabel{Per-bank \phantom{spac} }{Input/Output Switch}, circuitikz/bipoles/twoport/width=2.7, scale=0.44] (ioswitch) {};
\draw (3.05,-3.5) node[twoportshape,t=\MymyLabel{IO Expander}{for I2C Bus}, circuitikz/bipoles/twoport/width=1.8, scale=0.5] (i2c) {};
\draw (5.68,-2.3) node[twoportshape,t=EEPROM, circuitikz/bipoles/twoport/width=1.2, scale=0.5] (eeprom) {};
\draw (0.8,-2.7) node[twoportshape,t=\MymyLabel{High-Z/50\textOmega}{Switch \phantom{ssssss} }, circuitikz/bipoles/twoport/width=2, scale=0.4] (termswitch1) {};
% Termination Switch 1,2,3,4
\begin{scope}[xshift=0.9cm, yshift=-2.66cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (0.4,0) to[short,-o](0.75,0);
\draw (0.78,0)-- +(30:0.46);
\draw (1.25,0)to[short,o-](1.6,0) ;
\end{scope}
\begin{scope}[xshift=1cm, yshift=-2.66cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (0.4,0) to[short,-o](0.75,0);
\draw (0.78,0)-- +(30:0.46);
\draw (1.25,0)to[short,o-](1.6,0) ;
\end{scope}
\begin{scope}[xshift=1.1cm, yshift=-2.66cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (0.4,0) to[short,-o](0.75,0);
\draw (0.78,0)-- +(30:0.46);
\draw (1.25,0)to[short,o-](1.6,0) ;
\end{scope}
\begin{scope}[xshift=1.2cm, yshift=-2.66cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (0.4,0) to[short,-o](0.75,0);
\draw (0.78,0)-- +(30:0.46);
\draw (1.25,0)to[short,o-](1.6,0) ;
\end{scope}
\end{scope}
% I/O Switch 1, 2
\begin{scope}[xshift=1.2cm, yshift=-1.98cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (0.4,0) to[short,-o](0.75,0);
\draw (0.78,0)-- +(30:0.46);
\draw (1.25,0)to[short,o-](1.6,0) ;
\end{scope}
\begin{scope}[xshift=1.32cm, yshift=-1.98cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (0.4,0) to[short,-o](0.75,0);
\draw (0.78,0)-- +(30:0.46);
\draw (1.25,0)to[short,o-](1.6,0) ;
\end{scope}
\draw (0.8,-3.05) node[twoportshape,t=\MymyLabel{High-Z/50\textOmega}{Switch \phantom{ssssss} }, circuitikz/bipoles/twoport/width=2, scale=0.4] (termswitch2) {};
% Termination Switch 5,6,7,8
\begin{scope}[xshift=0.9cm, yshift=-3.02cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (0.4,0) to[short,-o](0.75,0);
\draw (0.78,0)-- +(30:0.46);
\draw (1.25,0)to[short,o-](1.6,0) ;
\end{scope}
\begin{scope}[xshift=1cm, yshift=-3.02cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (0.4,0) to[short,-o](0.75,0);
\draw (0.78,0)-- +(30:0.46);
\draw (1.25,0)to[short,o-](1.6,0) ;
\end{scope}
\begin{scope}[xshift=1.1cm, yshift=-3.02cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (0.4,0) to[short,-o](0.75,0);
\draw (0.78,0)-- +(30:0.46);
\draw (1.25,0)to[short,o-](1.6,0) ;
\end{scope}
\begin{scope}[xshift=1.2cm, yshift=-3.02cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (0.4,0) to[short,-o](0.75,0);
\draw (0.78,0)-- +(30:0.46);
\draw (1.25,0)to[short,o-](1.6,0) ;
\end{scope}
% channel 5,6,7,8
\begin{scope}[yshift=-3.6cm]
\draw[color=white, text=black] (-0.1,0) node[twoportshape,t={SMA 4}, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (sma4) {};
\draw[color=white, text=black] (-0.1,-0.7) node[twoportshape,t={SMA 5}, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (sma5) {};
\draw[color=white, text=black] (-0.1,-1.4) node[twoportshape,t={SMA 6}, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (sma6) {};
\draw[color=white, text=black] (-0.1,-2.1) node[twoportshape,t={SMA 7}, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (sma7) {};
\node [label={[xshift=-0.18cm, yshift=-0.305cm]\tiny{SMA 4}}] {};
\node [label={[xshift=-0.18cm, yshift=-0.97cm]\tiny{SMA 5}}] {};
\node [label={[xshift=-0.18cm, yshift=-1.64cm]\tiny{SMA 6}}] {};
\node [label={[xshift=-0.18cm, yshift=-2.302cm]\tiny{SMA 7}}] {};
% draw female SMA 4,5,6,7
\begin{scope}[scale=0.07 , rotate=-90, xshift=0cm, yshift=2cm]
\draw (0,0.65) -- (0,3);
\clip (-1.5,0) rectangle (1.5,1.5);
\draw (0,0) circle(1.5);
\clip (-0.8,0) rectangle (0.8,0.8);
\draw (0,0) circle(0.8);
\end{scope}
\begin{scope}[scale=0.07 , rotate=-90, xshift=10cm, yshift=2cm]
\draw (0,0.65) -- (0,3);
\clip (-1.5,0) rectangle (1.5,1.5);
\draw (0,0) circle(1.5);
\clip (-0.8,0) rectangle (0.8,0.8);
\draw (0,0) circle(0.8);
\end{scope}
\begin{scope}[scale=0.07 , rotate=-90, xshift=20cm, yshift=2cm]
\draw (0,0.65) -- (0,3);
\clip (-1.5,0) rectangle (1.5,1.5);
\draw (0,0) circle(1.5);
\clip (-0.8,0) rectangle (0.8,0.8);
\draw (0,0) circle(0.8);
\end{scope}
\begin{scope}[scale=0.07 , rotate=-90, xshift=30cm, yshift=2cm]
\draw (0,0.65) -- (0,3);
\clip (-1.5,0) rectangle (1.5,1.5);
\draw (0,0) circle(1.5);
\clip (-0.8,0) rectangle (0.8,0.8);
\draw (0,0) circle(0.8);
\end{scope}
\draw (1.6,-1.05) node[twoportshape,t={Octal Bus Transceiver}, circuitikz/bipoles/twoport/width=2.5, scale=0.7, rotate=-90 ] (bus2) {};
\draw (3.05,-0) node[twoportshape,t={Isolator}, circuitikz/bipoles/twoport/width=1.3, scale=0.4] (iso5) {};
\draw (3.05,-0.7) node[twoportshape,t={Isolator}, circuitikz/bipoles/twoport/width=1.3, scale=0.4] (iso6) {};
\draw (3.05,-1.4) node[twoportshape,t={Isolator}, circuitikz/bipoles/twoport/width=1.3, scale=0.4] (iso7) {};
\draw (3.05,-2.1) node[twoportshape,t={Isolator}, circuitikz/bipoles/twoport/width=1.3, scale=0.4] (iso8) {};
\draw (3.05,0.6) node[twoportshape,t={Isolator}, circuitikz/bipoles/twoport/width=1.3, scale=0.4] (i2ciso2) {};
\draw (4.5,-1.05) node[twoportshape,t=\MymyLabel{4-Channel LVDS}{Line Transceiver}, circuitikz/bipoles/twoport/width=2.6, scale=0.7, rotate=-90] (lvds2) {};
\end{scope}
% Drawing Connections
\draw [latexslim-latexslim] (sma0.east) -- ++(1,0);
\draw [latexslim-latexslim] (sma1.east) -- ++(1,0);
\draw [latexslim-latexslim] (sma2.east) -- ++(1,0);
\draw [latexslim-latexslim] (sma3.east) -- ++(1,0);
\draw [latexslim-latexslim] (sma4.east) -- ++(1,0);
\draw [latexslim-latexslim] (sma5.east) -- ++(1,0);
\draw [latexslim-latexslim] (sma6.east) -- ++(1,0);
\draw [latexslim-latexslim] (sma7.east) -- ++(1,0);
\draw [latexslim-latexslim] (iso1.west) -- ++(-0.72,0) ;
\draw [latexslim-latexslim] (iso2.west) -- ++(-0.72,0) ;
\draw [latexslim-latexslim] (iso3.west) -- ++(-0.72,0) ;
\draw [latexslim-latexslim] (iso4.west) -- ++(-0.72,0) ;
\draw [latexslim-latexslim] (iso1.east) -- ++(0.69,0);
\draw [latexslim-latexslim] (iso2.east) -- ++(0.69,0);
\draw [latexslim-latexslim] (iso3.east) -- ++(0.69,0);
\draw [latexslim-latexslim] (iso4.east) -- ++(0.69,0);
\draw [latexslim-latexslim] (iso5.west) -- ++(-0.72,0) ;
\draw [latexslim-latexslim] (iso6.west) -- ++(-0.72,0) ;
\draw [latexslim-latexslim] (iso7.west) -- ++(-0.72,0) ;
\draw [latexslim-latexslim] (iso8.west) -- ++(-0.72,0) ;
\draw [latexslim-latexslim] (iso5.east) -- ++(0.7,0);
\draw [latexslim-latexslim] (iso6.east) -- ++(0.7,0);
\draw [latexslim-latexslim] (iso7.east) -- ++(0.7,0);
\draw [latexslim-latexslim] (iso8.east) -- ++(0.7,0);
\draw [latexslim-] (eeprom.south) -- ++(0,-0.95);
\draw [latexslim-latexslim] (lvds1.north) -- ++(1.61,0);
\draw [latexslim-latexslim] (lvds2.north) -- ++(1.62,0);
\draw [latexslim-latexslim] (i2c.east) -- ++(2.77,0);
\draw [latexslim-] (i2c.west) -- (ioswitch.east) ;
\draw [-latexslim] (i2c.north east) -- (lvds1.south east);
\draw [-latexslim] (i2c.south east) -- (lvds2.south west);
\draw [-latexslim] (i2ciso1.west) -- (bus1.north east);
\draw [thin] [-latexslim] (i2c.north) -- (i2ciso1.south);
\draw [-latexslim] (i2ciso2.west) -- (bus2.north west);
\draw [thin] [-latexslim] (i2c.south) -- (i2ciso2.north);
% termination switch connection
\draw (0.65,-1.18) -- ++(0,2.47) ;
\draw (0.75,-1.18) -- ++(0,1.77) ;
\draw (0.85,-1.18) -- ++(0,1.07) ;
\draw (0.95,-1.18) -- ++(0,0.37) ;
\draw (0.65,-3.25) -- ++(0,-2.45) ;
\draw (0.75,-3.25) -- ++(0,-1.75) ;
\draw (0.85,-3.25) -- ++(0,-1.05) ;
\draw (0.95,-3.25) -- ++(0,-0.35) ;
\node[draw, dotted, thick, rounded corners, inner xsep=0.7em, inner ysep=0.4em, fit=(sma0) (i2ciso1.south west)] (box1) {};
\node[fill=white, rotate=-90] at (box1.west) {GND BANK 1};
\node[fill=white,above] at (box1.north) {\tiny{Either all 4 channels are inputs or all 4 channels are outputs }};
\node[draw, dotted, thick, rounded corners, inner xsep=0.7em, inner ysep=0.4em, fit=(sma4)(termswitch2) (iso8.south west)] (box2) {};
\node[fill=white, rotate=-90] at (box2.west) {GND BANK 2};
\node[fill=white,below] at (box2.south) {\tiny{Either all 4 channels are inputs or all 4 channels are outputs }};
\end{circuitikz}
\caption{Block diagram (TODO)}
}
\caption{Simplified Block Diagram}
\end{figure}
\begin{figure}[h]
\includegraphics[width=1.5in]{photo2128.jpg}
\caption{Card photo}
\centering
\includegraphics[width=1.18in]{photo2128.jpg}
\caption{SMA-TTL Card photo}
\end{figure}
% For wide tables, a single column layout is better. It can be switched
@ -153,6 +396,8 @@ def run(self):
delay(500*ms)
\end{minted}
\newpage
\subsection{Morse code}
This example demonstrates some basic algorithmic features of the ARTIQ-Python language.
\begin{minted}{python}
@ -199,6 +444,8 @@ def run(self):
print(counts)
\end{minted}
\newpage
\subsection{Responding to an external trigger}
One channel needs to be configured as input, and the other as output.

44
shell.nix Normal file
View File

@ -0,0 +1,44 @@
let
pkgs = import <nixpkgs> {};
in
pkgs.mkShell {
buildInputs = [
#pkgs.texlive.combined.scheme-small
(pkgs.texlive.combine {
inherit (pkgs.texlive)
scheme-small
collection-latexextra
collection-fontsextra
collection-fontsrecommended
palatino
textgreek
minted
tcolorbox
etoolbox
maths-symbols
greek-inputenc
babel
isodate
pst-graphicx
visualtikz
quantikz
tikz-feynman
pgfplots
cbfonts-fd
cbfonts
mathpazo
helvetic
circuitikz ;
# To compile, call:
# $ pdflatex -shell-escape xxx.tex
# if missing packages, you can search if the required tex packages is in nixpkgs or not from here
# https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/tools/typesetting/tex/texlive/pkgs.nix
# if available, just add it to the above list
})
];
}