2024-11-18 03:27:46 +08:00
\input { preamble.tex}
2024-10-23 02:34:00 +08:00
\graphicspath { { images/5432} { images} }
2021-12-09 12:33:42 +08:00
2022-02-04 13:49:06 +08:00
\title { 5432 DAC Zotino}
2021-12-09 12:33:42 +08:00
\author { M-Labs Limited}
2022-01-19 15:34:54 +08:00
\date { January 2022}
\revision { Revision 2}
2021-12-09 12:33:42 +08:00
\companylogo { \includegraphics [height=0.73in] { artiq_ sinara.pdf} }
\begin { document}
\maketitle
\section { Features}
\begin { itemize}
2024-11-18 03:27:46 +08:00
\item { 32-channel DAC}
\item { 16-bits resolution}
\item { 1 MSPS shared between all channels}
\item { Output voltage $ \pm $ 10V}
\item { HD68 connector}
\item { Can be broken out to BNC/SMA/MCX}
2021-12-09 12:33:42 +08:00
\end { itemize}
\section { Applications}
\begin { itemize}
2024-11-18 03:27:46 +08:00
\item { Controlling setpoints of PID controllers for laser power stabilization}
\item { Low-frequency arbitrary waveform generation}
\item { Driving DC electrodes in ion traps}
2021-12-09 12:33:42 +08:00
\end { itemize}
\section { General Description}
2024-11-18 03:27:46 +08:00
The 5432 Zotino is a 4hp EEM module and part of the ARTIQ/Sinara family. It adds digital-analog conversion capabilities to carrier cards such as 1124 Kasli and 1125 Kasli-SoC.
2021-12-09 12:33:42 +08:00
2024-11-18 03:27:46 +08:00
It provides four groups of eight analog channels each, exposed by one HD68 connector. Each channel supports output voltage from -10 V to 10 V. All channels can be updated simultaneously. Channels can broken out to BNC, SMA or MCX by adding external 5518 BNC-IDC, 5528 SMA-IDC or 5538 MCX-IDC cards.
2021-12-09 12:33:42 +08:00
% Switch to next column
\vfill \break
\begin { figure} [h]
\centering
\scalebox { 0.88} {
\begin { circuitikz} [european, scale=0.95, every label/.append style={ align=center} ]
% HD68 Connector
\draw (0, 0) node[muxdemux, muxdemux def={ Lh=6.5, Rh=8, w=2, NL=0, NB=0, NR=0} , circuitikz/bipoles/twoport/width=3.2, scale=0.7] (hd68) { HD68} ;
2022-01-17 11:39:57 +08:00
% IDC Connectors to IDC cards
2024-10-23 21:50:25 +08:00
\draw (2.2, 1.2) node[twoportshape, t={ \twocm { IDC} { DAC 16-23} } , circuitikz/bipoles/twoport/width=1.8, scale=0.5, rotate=-90] (eem2) { } ;
\draw (1.4, 1.2) node[twoportshape, t={ \twocm { IDC} { DAC 24-31} } , circuitikz/bipoles/twoport/width=1.8, scale=0.5, rotate=-90] (eem3) { } ;
\draw (2.2, -1.2) node[twoportshape, t={ \twocm { IDC} { DAC 8-15} } , circuitikz/bipoles/twoport/width=1.8, scale=0.5, rotate=-90] (eem1) { } ;
\draw (1.4, -1.2) node[twoportshape, t={ \twocm { IDC} { DAC 0-7} } , circuitikz/bipoles/twoport/width=1.8, scale=0.5, rotate=-90] (eem0) { } ;
2021-12-09 12:33:42 +08:00
% Op-amp x32
2022-01-14 17:28:20 +08:00
\draw (3, 0) node[buffer, circuitikz/bipoles/twoport/width=1.2, scale=-0.5] (amp) { } ;
2021-12-09 12:33:42 +08:00
% DAC AD5372
2024-10-23 21:50:25 +08:00
\draw (4.6, 0.2) node[twoportshape, t=\twocm { 32-CH} { DAC} , circuitikz/bipoles/twoport/width=1.2, circuitikz/bipoles/twoport/height=1.2, scale=0.7] (dac) { } ;
2021-12-09 12:33:42 +08:00
% LVDS Transceivers
2024-10-23 21:50:25 +08:00
\draw (6.6, 0) node[twoportshape, t=\fourcm { LVDS} { Transceiever} , circuitikz/bipoles/twoport/width=1.8, scale=0.5, rotate=-90] (lvds0) { } ;
\draw (6.6, -1.6) node[twoportshape, t=\fourcm { LVDS} { Transceiever} , circuitikz/bipoles/twoport/width=1.8, scale=0.5, rotate=-90] (lvds1) { } ;
2021-12-09 12:33:42 +08:00
% Aesthetic EEPROM
2022-01-14 17:28:20 +08:00
\draw (6.6, 1.6) node[twoportshape, t={ EEPROM} , circuitikz/bipoles/twoport/width=1.6, scale=0.5, rotate=-90] (eeprom) { } ;
2021-12-09 12:33:42 +08:00
% EEMs from core device / controllers
\draw (8.2, 0.0) node[twoportshape, t={ EEM Port} , circuitikz/bipoles/twoport/width=3.6, scale=0.7, rotate=-90] (eem_ in) { } ;
% Connect EEM IN to LVDS & EEMPROM
2022-01-14 17:28:20 +08:00
\draw [latexslim-latexslim] (eeprom.north) -- (7.85, 1.6);
\draw [latexslim-latexslim] (lvds0.north) -- (7.85, 0);
2021-12-09 12:33:42 +08:00
\draw [latexslim-latexslim] (lvds1.north) -- (7.85, -1.6);
% Connect LVDS to DAC
2022-01-14 17:41:57 +08:00
\draw [latexslim-latexslim] (lvds0.south) -- (5.2, 0);
2022-01-14 17:28:20 +08:00
\draw [latexslim-latexslim] (lvds1.south) -- (4.6, -1.6) -- (dac.south);
2021-12-09 12:33:42 +08:00
% Connect DAC to Op-amp, label op-amp width x32
2022-01-14 17:41:57 +08:00
\draw [-latexslim] (4, 0) -- (amp.west);
2022-01-14 17:28:20 +08:00
\node [label=below:\tiny { Op-amp x32} ] at (3.2, -0.2) { } ;
\node [label=below:\tiny { 1 per ch.} ] at (3.2, -0.45) { } ;
2021-12-09 12:33:42 +08:00
% Connect Op-amp to EEM OUT and HD68
\draw [-latexslim] (amp.east) -- (hd68.east);
\draw [-latexslim] (2.2, 0) -- (eem2.east);
\draw [-latexslim] (1.4, 0) -- (eem3.east);
\draw [-latexslim] (2.2, 0) -- (eem1.west);
\draw [-latexslim] (1.4, 0) -- (eem0.west);
2022-01-14 17:28:20 +08:00
% TEC Cooler on top of the DAC
% To make it more obvious that it is cooling the DAC
2024-10-23 21:50:25 +08:00
\draw (4.6, 1.45) node[twoportshape, t=\fourcm { TEC} { Cooler} , circuitikz/bipoles/twoport/width=1.2, circuitikz/bipoles/twoport/height=1.2, scale=0.7] (tec_ cooler) { } ;
2022-01-14 17:28:20 +08:00
% TEC Controller lined up with EEM IN
2024-10-23 21:50:25 +08:00
\draw (8.2, 3.5) node[twoportshape, t=\fourcm { TEC Controller} { Connector} , circuitikz/bipoles/twoport/width=2.6, scale=0.7, rotate=-90] (tec_ conn) { } ;
2022-01-14 17:28:20 +08:00
% Thermistor for TEC controller
2022-01-14 17:41:57 +08:00
\draw (6.6, 3.3) node[thermistorshape, scale=0.7, rotate=-90] (thermistor) { } ;
2022-01-14 17:48:24 +08:00
\draw [latexslim-] (7.85, 3.3) -- (6.75, 3.3);
2024-11-18 03:27:46 +08:00
2022-01-14 17:28:20 +08:00
% Connect the controller to the cooler
2022-01-14 17:47:19 +08:00
\draw [-latexslim] (7.85, 4.2) -- (4.6, 4.2) -- (tec_ cooler.north);
2022-01-14 17:41:57 +08:00
% Thermal connection between DAC and thermistor
\draw [densely dotted] (thermistor.south) -- (5.6, 3.3) -- (5.6, 0.5) -- (5.2, 0.5);
2022-01-14 14:33:39 +08:00
2021-12-09 12:33:42 +08:00
\end { circuitikz}
}
\caption { Simplified Block Diagram}
\end { figure}
2024-11-18 03:27:46 +08:00
\begin { figure} [hbt!]
2021-12-09 12:33:42 +08:00
\centering
2022-01-07 10:33:14 +08:00
\includegraphics [height=2in] { photo5432.jpg}
2024-11-18 03:27:46 +08:00
\caption { Zotino card photograph}
\end { figure}
\begin { figure} [hbt!]
\centering
\includegraphics [height=2.3in, angle=90] { Zotino_ FP.jpg}
\caption { Zotino front panel}
2021-12-09 12:33:42 +08:00
\end { figure}
% For wide tables, a single column layout is better. It can be switched
% page-by-page.
\onecolumn
2024-11-18 03:27:46 +08:00
\sourcesection { 5432 DAC Zotino} { https://github.com/sinara-hw/Zotino/}
2021-12-09 12:33:42 +08:00
\section { Electrical Specifications}
2022-01-18 12:10:11 +08:00
% \hypersetup{hidelinks}
% \urlstyle{same}
2024-11-18 03:27:46 +08:00
These specifications are based on the datasheet of the DAC IC
(AD5372BCPZ\footnote { \label { dac} \url { https://www.analog.com/media/en/technical-documentation/data-sheets/AD5372\_ 5373.pdf} } ),
and various information from the Sinara wiki\footnote { \label { zotino_ wiki} \url { https://github.com/sinara-hw/Zotino/wiki} } .
2022-01-18 12:10:11 +08:00
2021-12-09 12:33:42 +08:00
\begin { table} [h]
2022-01-19 12:27:36 +08:00
\centering
2021-12-09 12:33:42 +08:00
\begin { threeparttable}
\caption { Output Specifications}
2022-01-19 12:27:36 +08:00
\begin { tabularx} { 0.8\textwidth } { l | c c c | c | X}
2021-12-09 12:33:42 +08:00
\thickhline
2022-01-19 12:27:36 +08:00
\textbf { Parameter} & \textbf { Min.} & \textbf { Typ.} & \textbf { Max.} &
2021-12-09 12:33:42 +08:00
\textbf { Unit} & \textbf { Conditions} \\
\hline
2022-01-19 12:27:36 +08:00
Output voltage & -10 & & 10 & V & \\
2021-12-09 12:33:42 +08:00
\hline
2022-01-19 12:27:36 +08:00
Output impedance\repeatfootnote { zotino_ wiki} & \multicolumn { 4} { c|} { 470 $ \Omega $ $ || $ 2.2nF} & \\
2021-12-09 12:33:42 +08:00
\hline
2022-01-19 12:27:36 +08:00
Resolution\repeatfootnote { dac} & & 16 & & bits & \\
2021-12-09 12:33:42 +08:00
\hline
2022-01-19 12:27:36 +08:00
3dB bandwidth\repeatfootnote { zotino_ wiki} & & 75 & & kHz & \\
2021-12-09 12:33:42 +08:00
\hline
2022-01-19 12:27:36 +08:00
Power consumption\repeatfootnote { zotino_ wiki} & 3 & & 8.7 & W & \\
2021-12-09 12:33:42 +08:00
\thickhline
\end { tabularx}
\end { threeparttable}
\end { table}
2024-11-18 03:27:46 +08:00
The following table records the cross-talk and transient behavior of Zotino\footnote { \label { zotino21} \url { https://github.com/sinara-hw/Zotino/issues/21} } . In terms of output noise, measurements were made after a 15-cm IDC cable, IDC-SMA, 100 cm coax ($ \sim $ 50 pF), and 500 k$ \Omega $ $ || $ 150 pF\footnote { \label { zotino27} \url { https://github.com/sinara-hw/Zotino/issues/27} } . DAC output during noise measurement was 3.5 V.
2021-12-09 12:33:42 +08:00
\begin { table} [h]
2022-01-19 12:27:36 +08:00
\centering
2021-12-09 12:33:42 +08:00
\begin { threeparttable}
\caption { Electrical Characteristics}
2022-01-19 12:27:36 +08:00
\begin { tabularx} { 0.8\textwidth } { l | c c c | c | X}
2021-12-09 12:33:42 +08:00
\thickhline
2022-01-19 12:27:36 +08:00
\textbf { Parameter} & \textbf { Min.} & \textbf { Typ.} & \textbf { Max.} &
2021-12-09 12:33:42 +08:00
\textbf { Unit} & \textbf { Conditions / Comments} \\
\hline
2022-01-19 12:27:36 +08:00
DC cross-talk\repeatfootnote { zotino21} & & -116 & & dB & \\
2021-12-09 12:33:42 +08:00
\hline
2022-01-19 12:27:36 +08:00
Fall-time\repeatfootnote { zotino21} & & 18.5 & & $ \mu $ s & 10\% to 90\% fall-time \\
& & 25 & & $ \mu $ s & 1\% to 99\% fall-time \\
2021-12-09 12:33:42 +08:00
\hline
2022-01-19 12:27:36 +08:00
Negative overshoot\repeatfootnote { zotino21} & & 0.5\% & & - & \\
2021-12-09 12:33:42 +08:00
\hline
2022-01-19 12:27:36 +08:00
Rise-time\repeatfootnote { zotino21} & & 30 & & $ \mu $ s & 1\% to 99\% rise-time \\
2021-12-09 12:33:42 +08:00
\hline
2022-01-19 12:27:36 +08:00
Positive overshoot\repeatfootnote { zotino21} & & 0.65\% & & - & \\
2021-12-09 12:33:42 +08:00
\hline
2022-01-19 12:27:36 +08:00
Output noise\repeatfootnote { zotino27} & & & & & \\
\hspace { 18mm} @ 100 Hz & & 500 & & nV/rtHz & 6.9 Hz bandwidth \\
\hspace { 18mm} @ 300 Hz & & 300 & & nV/rtHz & 6.9 Hz bandwidth \\
\hspace { 18mm} @ 50 kHz & & 210 & & nV/rtHz & 6.9 kHz bandwidth \\
\hspace { 18mm} @ 1 MHz & & 4.6 & & nV/rtHz & 6.9 kHz bandwidth \\
\hspace { 18mm} $ > $ 4 MHz & & & 1 & nV/rtHz & 6.9 kHz bandwidth \\
2021-12-09 12:33:42 +08:00
\thickhline
\end { tabularx}
\end { threeparttable}
\end { table}
2021-12-30 14:33:51 +08:00
\newpage
2024-11-18 03:27:46 +08:00
Step response was found by setting the DAC register to 0x0000 (-10V) or 0xFFFF (10V) and observing the waveform\repeatfootnote { zotino21} .
2021-12-30 14:33:51 +08:00
2022-01-14 15:53:22 +08:00
\begin { figure} [hbt!]
2021-12-30 14:33:51 +08:00
\centering
2022-01-14 15:53:22 +08:00
\subfloat [\centering Switching from -10V to +10V] { {
\includegraphics [height=1.8in] { zotino_ step_ response_ rising.png}
} } %
\subfloat [\centering Switching from +10V to -10V] { {
\includegraphics [height=1.8in] { zotino_ step_ response_ falling.png}
} } %
\caption { Step response} %
2021-12-30 14:33:51 +08:00
\end { figure}
2024-11-18 03:27:46 +08:00
Far-end crosstalk was measured using the following setup\repeatfootnote { zotino21} :
2022-01-14 15:29:31 +08:00
\begin { enumerate}
\item CH1 as aggressor, CH0 as victim
\item CH0, 2-7 terminated, CH 8-31 open
2024-11-18 03:27:46 +08:00
\item Aggressor signal from BNC passed through 15cm IDC26, 2m HD68-HD68 SCSI-3 shielded twisted pair, 15cm IDC26, converted back to BNC with adapters between all different cables and connectors.
2022-01-14 15:29:31 +08:00
\end { enumerate}
2021-12-30 14:33:51 +08:00
\begin { figure} [hbt!]
\centering
\includegraphics [width=3.3in] { zotino_ fext.png}
\caption { Step crosstalk}
\end { figure}
\newpage
2024-11-18 03:27:46 +08:00
\codesection { 5432 DAC Zotino}
2022-01-21 13:49:01 +08:00
2024-11-18 03:27:46 +08:00
\subsection { Setting output voltage}
The following example initializes the Zotino card, then emits 1.0 V, 2.0 V, 3.0 V and 4.0 V at channels 0, 1, 2, and 3 respectively. Voltages of all 4 channels are updated simultaneously with the use of \texttt { set\char `_ dac()} .
2021-12-09 12:33:42 +08:00
2022-01-20 17:16:50 +08:00
\inputcolorboxminted { firstline=11,lastline=22} { examples/zotino.py}
2021-12-09 12:33:42 +08:00
2022-01-07 17:25:24 +08:00
\newpage
2024-11-18 03:27:46 +08:00
\subsection { Triangular wave}
Generates a triangular waveform at 10 Hz, 16 V peak-to-peak. Timing accuracy of the RTIO system can be demonstrated by the precision of the frequency.
2022-01-20 17:16:50 +08:00
2022-01-21 09:34:46 +08:00
Import \texttt { scipy.signal} and \texttt { numpy} modules to run this example.
\inputcolorboxminted { firstline=30,lastline=49} { examples/zotino.py}
2021-12-09 12:33:42 +08:00
2024-11-18 03:27:46 +08:00
\ordersection { 5432 DAC Zotino}
2021-12-09 12:33:42 +08:00
2024-11-18 03:27:46 +08:00
\finalfootnote
2021-12-09 12:33:42 +08:00
\end { document}