477 lines
20 KiB
TeX
477 lines
20 KiB
TeX
\documentclass[10pt]{datasheet}
|
|
\usepackage{palatino}
|
|
\usepackage{textgreek}
|
|
\usepackage{minted}
|
|
\usepackage{tcolorbox}
|
|
\usepackage{etoolbox}
|
|
\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{subfig}
|
|
|
|
\usepackage{tikz}
|
|
\usepackage{pgfplots}
|
|
\usepackage{circuitikz}
|
|
\usetikzlibrary{calc}
|
|
\usetikzlibrary{fit,backgrounds}
|
|
|
|
\title{2118 BNC-TTL / 2128 SMA-TTL}
|
|
\author{M-Labs Limited}
|
|
\date{July 2021}
|
|
\revision{Revision 1}
|
|
\companylogo{\includegraphics[height=0.73in]{artiq_sinara.pdf}}
|
|
|
|
\begin{document}
|
|
\maketitle
|
|
|
|
\section{Features}
|
|
|
|
\begin{itemize}
|
|
\item{8 channels.}
|
|
\item{Input and output capable.}
|
|
\item{Galvanically isolated.}
|
|
\item{3ns minimum pulse width.}
|
|
\item{BNC/SMA connectors.}
|
|
\end{itemize}
|
|
|
|
\section{Applications}
|
|
|
|
\begin{itemize}
|
|
\item{Photon counting.}
|
|
\item{External equipment trigger.}
|
|
\item{Optical shutter control.}
|
|
\end{itemize}
|
|
|
|
\section{General Description}
|
|
The 2118 BNC-TTL card is a 8hp EEM module, while the 2128 SMA-TTL card is a 4hp EEM module.
|
|
Both TTL cards add general-purpose digital I/O capabilities to carrier cards such as 1124 Kasli and 1125 Kasli-SoC.
|
|
|
|
Each card provides two banks of four digital channels each, with BNC/SMA connectors.
|
|
Each bank has individual ground isolation.
|
|
The direction (input or output) of each bank can be selected using DIP switches.
|
|
Each channel supports 50\textOmega~terminations individually controllable using DIP switches.
|
|
Outputs tolerate short circuits indefinitely.
|
|
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]
|
|
\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={IO 0}, circuitikz/bipoles/twoport/width=1.2, scale=0.4] (io0) {};
|
|
\draw[color=white, text=black] (-0.1,-0.7) node[twoportshape,t={IO 1}, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (io1) {};
|
|
\draw[color=white, text=black] (-0.1,-1.4) node[twoportshape,t={IO 2}, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (io2) {};
|
|
\draw[color=white, text=black] (-0.1,-2.1) node[twoportshape,t={IO 3}, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (io3) {};
|
|
|
|
\node [label={[xshift=-0.18cm, yshift=-0.305cm]\tiny{IO 0}}] {};
|
|
\node [label={[xshift=-0.18cm, yshift=-0.97cm]\tiny{IO 1}}] {};
|
|
\node [label={[xshift=-0.18cm, yshift=-1.64cm]\tiny{IO 2}}] {};
|
|
\node [label={[xshift=-0.18cm, yshift=-2.302cm]\tiny{IO 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={IO 4}, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (io4) {};
|
|
\draw[color=white, text=black] (-0.1,-0.7) node[twoportshape,t={IO 5}, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (io5) {};
|
|
\draw[color=white, text=black] (-0.1,-1.4) node[twoportshape,t={IO 6}, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (io6) {};
|
|
\draw[color=white, text=black] (-0.1,-2.1) node[twoportshape,t={IO 7}, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (io7) {};
|
|
|
|
\node [label={[xshift=-0.18cm, yshift=-0.305cm]\tiny{IO 4}}] {};
|
|
\node [label={[xshift=-0.18cm, yshift=-0.97cm]\tiny{IO 5}}] {};
|
|
\node [label={[xshift=-0.18cm, yshift=-1.64cm]\tiny{IO 6}}] {};
|
|
\node [label={[xshift=-0.18cm, yshift=-2.302cm]\tiny{IO 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] (io0.east) -- ++(1,0);
|
|
\draw [latexslim-latexslim] (io1.east) -- ++(1,0);
|
|
\draw [latexslim-latexslim] (io2.east) -- ++(1,0);
|
|
\draw [latexslim-latexslim] (io3.east) -- ++(1,0);
|
|
\draw [latexslim-latexslim] (io4.east) -- ++(1,0);
|
|
\draw [latexslim-latexslim] (io5.east) -- ++(1,0);
|
|
\draw [latexslim-latexslim] (io6.east) -- ++(1,0);
|
|
\draw [latexslim-latexslim] (io7.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=(io0) (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=(io4)(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{Simplified Block Diagram}
|
|
\end{figure}
|
|
|
|
\begin{figure}[hbt!]
|
|
\centering
|
|
\subfloat[\centering BNC-TTL]{{\includegraphics[width=1.24in]{photo2118.jpg} }}%
|
|
\qquad
|
|
\subfloat[\centering SMA-TTL]{{\includegraphics[width=1.18in]{photo2128.jpg} }}%
|
|
\caption{BNC-TTL/SMA-TTL Card photos}%
|
|
\label{fig:example}%
|
|
\end{figure}
|
|
|
|
% For wide tables, a single column layout is better. It can be switched
|
|
% page-by-page.
|
|
\onecolumn
|
|
|
|
\section{Electrical Specifications}
|
|
All specifications are in $0\degree C \leq T_A \leq 70\degree C$ unless otherwise noted.
|
|
|
|
\begin{table}[h]
|
|
\begin{threeparttable}
|
|
\caption{Recommended Operating Conditions}
|
|
\begin{tabularx}{\textwidth}{l | c | c c c | c | X}
|
|
\thickhline
|
|
\textbf{Parameter} & \textbf{Symbol} & \textbf{Min.} & \textbf{Typ.} & \textbf{Max.} &
|
|
\textbf{Unit} & \textbf{Conditions} \\
|
|
\hline
|
|
High-level input voltage & $V_{IH}$ & 2 & & & V & \\
|
|
\hline
|
|
Low-level input voltage & $V_{IL}$ & & & 0.8 & V & \\
|
|
\hline
|
|
Input clamp current & $I_{OH}$ & & & -18 & mA & termination disabled \\
|
|
\hline
|
|
High-level output current & $I_{OH}$ & & & -160 & mA & \\
|
|
\hline
|
|
Low-level output current & $I_{OL}$ & & & 376 & mA & \\
|
|
\thickhline
|
|
\end{tabularx}
|
|
\end{threeparttable}
|
|
\end{table}
|
|
|
|
\begin{table}[h]
|
|
\begin{threeparttable}
|
|
\caption{Electrical Characteristics}
|
|
\begin{tabularx}{\textwidth}{l | c | c c c | c | X}
|
|
\thickhline
|
|
\textbf{Parameter} & \textbf{Symbol} & \textbf{Min.} & \textbf{Typ.} & \textbf{Max.} &
|
|
\textbf{Unit} & \textbf{Conditions} \\
|
|
\hline
|
|
High-level output voltage & $V_{OH}$ & 2 & & & V & $I_{OH}$=-160mA \\
|
|
& & 2.7 & & & V & $I_{OH}$=-6mA \\
|
|
\hline
|
|
Low-level output voltage & $V_{OL}$ & & 0.42 & 0.55 & V & $I_{OL}$=188mA \\
|
|
& & & & 0.7 & V & $I_{OL}$=376mA \\
|
|
\hline
|
|
Pulse width distortion & $PWD$ & & 0.2 & 4.5 & ns & \\
|
|
\hline
|
|
Peak jitter & $T_{JIT(PK)}$ & & 350 & & ps & \\
|
|
\thickhline
|
|
\end{tabularx}
|
|
\end{threeparttable}
|
|
\end{table}
|
|
|
|
\section{Example ARTIQ code}
|
|
The sections below demonstrate simple usage scenarios of the 2118 BNC-TTL/2128 SMA-TTL card with the ARTIQ control system.
|
|
They do not exhaustively demonstrate all the features of the ARTIQ system.
|
|
The full documentation for the ARTIQ software and gateware is available at \url{https://m-labs.hk}.
|
|
|
|
Timing accuracy in the examples below is well under 1 nanosecond thanks to the ARTIQ RTIO system.
|
|
|
|
\subsection{One pulse per second}
|
|
The channel should be configured as output in both the gateware and hardware.
|
|
|
|
\begin{minted}{python}
|
|
@kernel
|
|
def run(self):
|
|
self.core.reset()
|
|
while True:
|
|
self.ttl0.pulse(500*ms)
|
|
delay(500*ms)
|
|
\end{minted}
|
|
|
|
\newpage
|
|
|
|
\subsection{Morse code}
|
|
This example demonstrates some basic algorithmic features of the ARTIQ-Python language.
|
|
\begin{minted}{python}
|
|
def prepare(self):
|
|
# As of ARTIQ-6, the ARTIQ compiler has limited string handling
|
|
# capabilities, so we pass a list of integers instead.
|
|
message = ".- .-. - .. --.-"
|
|
self.commands = [{".": 1, "-": 2, " ": 3}[c] for c in message]
|
|
|
|
@kernel
|
|
def run(self):
|
|
self.core.reset()
|
|
for cmd in self.commands:
|
|
if cmd == 1:
|
|
self.led.pulse(100*ms)
|
|
delay(100*ms)
|
|
if cmd == 2:
|
|
self.led.pulse(300*ms)
|
|
delay(100*ms)
|
|
if cmd == 3:
|
|
delay(700*ms)
|
|
\end{minted}
|
|
|
|
\subsection{Counting rising edges in a 1ms window}
|
|
The channel should be configured as input in both the gateware and hardware.
|
|
|
|
\begin{minted}{python}
|
|
@kernel
|
|
def run(self):
|
|
self.core.reset()
|
|
gate_end_mu = self.ttl0.gate_rising(1*ms)
|
|
counts = self.ttl0.count()
|
|
print(counts)
|
|
\end{minted}
|
|
|
|
This example code uses the software counter, which has a maximum count rate of approximately 1 million events per second.
|
|
If the gateware counter is enabled on the TTL channel, it can typically count up to 125 million events per second:
|
|
\begin{minted}{python}
|
|
@kernel
|
|
def run(self):
|
|
self.core.reset()
|
|
self.edgecounter0.gate_rising(1*ms)
|
|
counts = self.edgecounter0.fetch_count()
|
|
print(counts)
|
|
\end{minted}
|
|
|
|
\newpage
|
|
|
|
\subsection{Responding to an external trigger}
|
|
One channel needs to be configured as input, and the other as output.
|
|
|
|
\begin{minted}{python}
|
|
@kernel
|
|
def run(self):
|
|
self.core.reset()
|
|
self.ttlin.gate_rising(5*ms)
|
|
timestamp_mu = self.ttlin.timestamp_mu()
|
|
at_mu(timestamp_mu + self.core.seconds_to_mu(10*ms))
|
|
self.ttlout.pulse(1*us)
|
|
\end{minted}
|
|
|
|
\section{Ordering Information}
|
|
To order, please visit \url{https://m-labs.hk} and select the 2118 BNC-TTL/2128 SMA-TTL in the ARTIQ Sinara crate configuration tool. The card may also be ordered separately by writing to \url{mailto:sales@m-labs.hk}.
|
|
|
|
\section*{}
|
|
\vspace*{\fill}
|
|
|
|
\begin{footnotesize}
|
|
Information furnished by M-Labs Limited is believed to be accurate and reliable. However, no responsibility is assumed by M-Labs Limited for its use, nor for any infringements of patents or other rights of third parties that may result from its use.
|
|
Specifications subject to change without notice.
|
|
\end{footnotesize}
|
|
|
|
\end{document}
|