forked from sinara-hw/datasheets
initial commit
This commit is contained in:
commit
de4fd7bd0f
|
@ -0,0 +1,226 @@
|
|||
\documentclass[10pt]{datasheet}
|
||||
\usepackage{palatino}
|
||||
\usepackage{textgreek}
|
||||
\usepackage{minted}
|
||||
\usepackage{tcolorbox}
|
||||
\usepackage{etoolbox}
|
||||
\BeforeBeginEnvironment{minted}{\begin{tcolorbox}[colback=white]}%
|
||||
\AfterEndEnvironment{minted}{\end{tcolorbox}}%
|
||||
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage[english]{babel}
|
||||
\usepackage[english]{isodate}
|
||||
|
||||
\usepackage{graphicx}
|
||||
\usepackage{tikz}
|
||||
\usepackage{pgfplots}
|
||||
\usepackage{circuitikz}
|
||||
\usetikzlibrary{calc}
|
||||
|
||||
\title{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{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 2128 SMA-TTL card is a 4hp EEM module part of the ARTIQ Sinara family.
|
||||
It adds general-purpose digital I/O capabilities to carrier cards such as 1124 Kasli and 1125 Kasli-SoC.
|
||||
|
||||
It provides two banks of four digital channels each, with 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
|
||||
|
||||
\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)$);
|
||||
\end{circuitikz}
|
||||
\caption{Block diagram (TODO)}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}[h]
|
||||
\includegraphics[width=1.5in]{photo2128.jpg}
|
||||
\caption{Card photo}
|
||||
\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 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}
|
||||
|
||||
\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}
|
||||
|
||||
\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 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}
|
Binary file not shown.
|
@ -0,0 +1,129 @@
|
|||
%% LaTeX document class for formatting electronics datasheets.
|
||||
%%
|
||||
%% Copyright 2020 Petteri Aimonen
|
||||
%%
|
||||
%% https://github.com/PetteriAimonen/latex-datasheet-template/
|
||||
%%
|
||||
%% --------------------------------------------------------------------------
|
||||
%%
|
||||
%% This work may be distributed and/or modified under the
|
||||
%% conditions of the LaTeX Project Public License, either version 1.3
|
||||
%% of this license or (at your option) any later version.
|
||||
%% The latest version of this license is in
|
||||
%% http://www.latex-project.org/lppl.txt
|
||||
%% and version 1.3 or later is part of all distributions of LaTeX
|
||||
%% version 2003/12/01 or later.
|
||||
%%
|
||||
%% This work has the LPPL maintenance status "maintained".
|
||||
%%
|
||||
%% This Current Maintainer of this work is Petteri Aimonen.
|
||||
%%
|
||||
%% This work consists of the file datasheet.cls and the example
|
||||
%% document example.tex.
|
||||
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesClass{datasheet}[2020/11/13 LaTeX document class for datasheets]
|
||||
|
||||
% The class is based on the twocolumn article class.
|
||||
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
|
||||
\ProcessOptions\relax
|
||||
\LoadClass[twocolumn]{article}
|
||||
|
||||
% Useful symbol and color definitions
|
||||
\RequirePackage{gensymb}
|
||||
\RequirePackage{xcolor}
|
||||
|
||||
% These packages allow full-width tables and combining cells in tables.
|
||||
\RequirePackage{multirow}
|
||||
\RequirePackage{multicol}
|
||||
\RequirePackage{tabularx}
|
||||
\RequirePackage{threeparttable}
|
||||
|
||||
% Align figure and table captions to left.
|
||||
\RequirePackage[font=bf, skip=5pt, justification=raggedright, format=hang, singlelinecheck=off]{caption}
|
||||
|
||||
% Format hyperlinks as blue and set PDF title based on \title{} in the document.
|
||||
\RequirePackage[pdfusetitle]{hyperref}
|
||||
\hypersetup{
|
||||
pdftex,
|
||||
breaklinks=true,
|
||||
colorlinks=true,
|
||||
linkcolor=.,
|
||||
urlcolor=blue
|
||||
}
|
||||
|
||||
% Configure page margins
|
||||
\RequirePackage{geometry}
|
||||
\geometry{left=2cm, top=2cm, right=2cm, bottom=3cm}
|
||||
|
||||
% Command \companylogo{} can be used in document to specify a logo for the first page.
|
||||
\gdef\@companylogo{}
|
||||
\newcommand{\companylogo}[1]{\gdef\@companylogo{#1}}
|
||||
|
||||
% Command \revision{} can be used to include a document revision number in footer.
|
||||
\gdef\@revision{}
|
||||
\newcommand{\revision}[1]{\gdef\@revision{#1}}
|
||||
|
||||
% First page title layout is defined here
|
||||
\renewcommand{\maketitle}{%
|
||||
\twocolumn[%
|
||||
{\@companylogo}\\
|
||||
\vspace{1cm}\\
|
||||
{\Huge\sffamily\bfseries\@title}\\
|
||||
\noindent\rule{\textwidth}{1pt}
|
||||
\medskip
|
||||
]%
|
||||
\pagestyle{normalpage}
|
||||
\thispagestyle{firstpage}
|
||||
}
|
||||
|
||||
% First page has footer but no header
|
||||
\RequirePackage{fancyhdr}
|
||||
\RequirePackage{lastpage}
|
||||
\fancypagestyle{firstpage}{
|
||||
\fancyhf{}
|
||||
\renewcommand{\headrulewidth}{0pt}
|
||||
\renewcommand{\footrulewidth}{0.5pt}
|
||||
\fancyfoot[L]{\@revision}
|
||||
\fancyfoot[C]{\@date}
|
||||
\fancyfoot[R]{Page \thepage\ of \pageref{LastPage}}
|
||||
}
|
||||
|
||||
% Rest of the pages have both header and footer
|
||||
\fancypagestyle{normalpage}{
|
||||
\renewcommand{\headrulewidth}{0.5pt}
|
||||
\renewcommand{\footrulewidth}{0.5pt}
|
||||
\fancyhead[L]{\@author}
|
||||
\fancyhead[C]{\slshape\@title}
|
||||
\fancyhead[R]{\@date}
|
||||
\fancyfoot[L]{\@revision}
|
||||
\fancyfoot[C]{\@date}
|
||||
\fancyfoot[R]{Page \thepage\ of \pageref{LastPage}}
|
||||
}
|
||||
|
||||
% No line above footnotes
|
||||
\renewcommand\footnoterule{}
|
||||
|
||||
% Section header size and spacing
|
||||
\renewcommand{\section}{%
|
||||
\@startsection
|
||||
{section}{1}{0pt}{-3.5ex plus -2ex minus -1ex}%
|
||||
{2.5ex plus .5ex}{\Large\bfseries\sffamily}%
|
||||
}
|
||||
|
||||
% Spacing between paragraphs
|
||||
\setlength{\parskip}{2ex plus 0.5ex minus 0.2ex}
|
||||
\setlength{\parindent}{0pt}
|
||||
|
||||
% Spacing for tables.
|
||||
% Other alternative is to use booktabs package, but I think normal LaTeX tables
|
||||
% are more fitting in the usual data sheet style.
|
||||
\renewcommand{\arraystretch}{1.5}
|
||||
\newcommand{\thickhline}{\noalign {\ifnum 0=`}\fi \hrule height 1pt \futurelet \reserved@a \@xhline}
|
||||
|
||||
% No numbering for section titles
|
||||
\setcounter{secnumdepth}{0}
|
||||
|
||||
\usepackage{titlesec}
|
||||
\titlespacing*{\section}{0pt}{.2ex}{.2ex}
|
||||
\titlespacing*{\subsection}{0pt}{.2ex}{.2ex}
|
Binary file not shown.
After Width: | Height: | Size: 82 KiB |
Loading…
Reference in New Issue