From a065814d3b8da0fece6f4995ccbe7e2c8c1a6a56 Mon Sep 17 00:00:00 2001 From: architeuthis Date: Wed, 29 Jan 2025 19:51:02 +0100 Subject: [PATCH] 5108: sysdesc section and SUServo --- 5108.tex | 85 ++++++++++++++------------------------------------------ 1 file changed, 21 insertions(+), 64 deletions(-) diff --git a/5108.tex b/5108.tex index 5d55cac..b7d2527 100644 --- a/5108.tex +++ b/5108.tex @@ -32,7 +32,7 @@ \section{General Description} - The 5108 ADC Sampler is a 8hp EEM module, part of the ARTIQ/Sinara family. It adds analog-digital converting capabilities to carrier cards such as 1124 Kasli and 1125 Kasli-SoC. + The 5108 ADC Sampler is a 8hp EEM module, part of the ARTIQ/Sinara family. It adds analog-digital converting capabilities to carrier cards such as 1124 Kasli and 1125 Kasli-SoC. It can also be combined with 4410 DDS Urukul to form the ARTIQ SU-Servo configuration. It provides eight analog-to-digital channels, exposed by eight BNC connectors. Each channel supports input voltage ranges from \textpm 10mV to \textpm 10V. All channels can be sampled simultaneously. Channels can broken out to SMA by adding a 5528 SMA-IDC card. @@ -498,7 +498,7 @@ Bandwidth of small signal and large signal input is shown below\repeatfootnote{s \section{Configuring Termination} - The input termination must be configured by setting physical switches on the board. The termination switches are found at the middle left part of the card are by-channel. Switching the termination switches on adds a 50\textOmega~termination between the differential input signals. + The input termination must be configured by setting physical switches on the board. The termination switches are found at the middle left part of the card and by-channel. Setting these switches to \texttt{on} adds a 50\textOmega~termination between the differential input signals. Regardless of switch configurations, the differential input signals are separately terminated with 100k\textOmega~to the PCB ground. @@ -511,75 +511,32 @@ Bandwidth of small signal and large signal input is shown below\repeatfootnote{s \end{center} \end{multicols} +\sysdescsection + + 5108 Sampler should be entered into the peripherals list of the corresponding core device in the following format: + + \begin{tcolorbox}[colback=white] + \begin{minted}{json} + { + "type": "sampler", + "ports": [0, 1] + } + \end{minted} + \end{tcolorbox} + + Replace 0 and 1 with the EEM port numbers used on the core device. Any ports can be used. + +\newpage + \codesection{5108 ADC Sampler} \subsection{Get input voltage} - The following example initializes the Sampler card with 1x gain on all ADC channels. At the end all ADC channels are sampled. \inputcolorboxminted{firstline=9,lastline=21}{examples/sampler.py} -\newpage - -\subsection{Voltage-controlled DDS amplitude (SU-Servo only)} -SU-Servo configuration can be enabled by integrating the 5108 ADC Sampler with 4410 DDS Urukul. Amplitude of the DDS output can be controlled by the ADC input of the Sampler through PI control, characterised by the following transfer function: -\[H(s)=k_p+\frac{k_i}{s+\frac{k_i}{g}}\] -In the following example, the amplitude of DDS is proportional to the ADC input from Sampler. - -First, initialize the RTIO, SU-Servo and its channel with 1x gain. - -\inputcolorboxminted{firstline=10,lastline=17}{examples/suservo.py} - -Next, set up the PI control as an IIR filter. It has -1 proportional gain $k_p$ and no integrator gain $k_i$. - -\inputcolorboxminted{firstline=18,lastline=25}{examples/suservo.py} - -Then, configure the DDS frequency to 10 MHz with 3V input offset. When input voltage $\geq$ offset voltage, the DDS output amplitude is 0. - -\inputcolorboxminted{firstline=26,lastline=30}{examples/suservo.py} - -SU-Servo encodes the ADC voltage in a linear scale [-1, 1]. Therefore, 3V is converted to 0.3. Note that the ASF of all DDS channels are capped at 1.0; the amplitude clips when ADC input $\leq -7V$ with the above IIR filter. - -Finally, enable the SU-Servo channel with the IIR filter programmed beforehand: - -\inputcolorboxminted{firstline=32,lastline=33}{examples/suservo.py} - -\newpage - -A 10 MHz DDS signal is generated from the example above, with amplitude controllable by ADC. The RMS voltage of the DDS channel against the ADC voltage is plotted. The DDS channel is terminated with 50\textOmega. - -\begin{center} -\begin{tikzpicture}[ - declare function={ - func(\x)= and(\x>=-10, \x<-7) * (160) + - and(\x>=-7, \x<3) * (16*(3-x)) + - and(\x>=3, \x<10) * (0); - } -] -\begin{axis}[ - axis x line=middle, axis y line=middle, - every axis x label/.style={ - at={(axis description cs:0.5,-0.1)}, - anchor=north, - }, - every axis y label/.style={ - at={(ticklabel* cs:1.05)}, - anchor=south, - }, - minor x tick num=3, - grid=both, - height=8cm, - width=12cm, - ymin=-5, ymax=180, ytick={0,16,...,160}, ylabel=DDS RMS Voltage ($mV_{rms}$), - xmin=-10, xmax=10, xtick={-10,-8,...,10}, xlabel=Sampler Voltage ($V$), -] - -\addplot[very thick, blue, samples=21, domain=-10:10]{func(x)}; -\end{axis} -\end{tikzpicture} -\end{center} - -DDS signal should be attenuated. High output power affects the linearity due to the 1 dB compression point of the amplifier at 13 dBm output power. 15 dB attenuation at the digital attenuator was applied in this example. +% Direct input to avoid issues with minted +\input{shared/suservo.tex} \ordersection{5108 ADC Sampler}