From 99c6d77ad840d99d47efb23c3301a077eb179a45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20K=C3=A4berich?= Date: Thu, 23 Feb 2023 23:04:50 +0100 Subject: [PATCH] Device protocol update: support device with up to 4 ports --- .../DeveloperInfo/Device_protocol_v13.pdf | Bin 0 -> 239308 bytes .../DeveloperInfo/Device_protocol_v13.tex | 1392 +++++++++++++++++ .../Device/LibreVNA/librevnadriver.cpp | 25 +- .../.settings/stm32cubeide.project.prefs | 4 +- .../Application/Communication/Protocol.hpp | 53 +- .../VNA_embedded/Application/Hardware.hpp | 1 + 6 files changed, 1443 insertions(+), 32 deletions(-) create mode 100644 Documentation/DeveloperInfo/Device_protocol_v13.pdf create mode 100644 Documentation/DeveloperInfo/Device_protocol_v13.tex diff --git a/Documentation/DeveloperInfo/Device_protocol_v13.pdf b/Documentation/DeveloperInfo/Device_protocol_v13.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e5ca993605d2318131193252df52b751b1475239 GIT binary patch literal 239308 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

tT92wHrkwqp2!$|mDEr42kwc7q}LK%>316R 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 literal 0 HcmV?d00001 diff --git a/Documentation/DeveloperInfo/Device_protocol_v13.tex b/Documentation/DeveloperInfo/Device_protocol_v13.tex new file mode 100644 index 0000000..e0107e6 --- /dev/null +++ b/Documentation/DeveloperInfo/Device_protocol_v13.tex @@ -0,0 +1,1392 @@ +\documentclass[a4paper,11pt]{article} +\usepackage{titlesec} +\titleformat{\paragraph} +{\normalfont\normalsize\bfseries}{\theparagraph}{1em}{} +\titlespacing*{\paragraph} +{0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} % LY1 also works +\usepackage[margin=1in]{geometry} +\usepackage{tabularx} +%% Font settings suggested by fbb documentation. +\usepackage{textcomp} % to get the right copyright, etc. +\usepackage[lining,tabular]{fbb} % so math uses tabular lining figures +\usepackage[scaled=.95,type1]{cabin} % sans serif in style of Gill Sans +\usepackage[varqu,varl]{zi4}% inconsolata typewriter +\useosf % change normal text to use proportional oldstyle figures +%\usetosf would provide tabular oldstyle figures in text + +\usepackage{microtype} +\usepackage{siunitx} +\DeclareSIUnit{\belmilliwatt}{Bm} +\DeclareSIUnit{\dBm}{\deci\belmilliwatt} +\sisetup{range-phrase=--, range-units=single, binary-units = true} +\usepackage{graphicx} +\usepackage{tikz} +\usepackage{svg} +%\usepackage{hyperref} +\usetikzlibrary{arrows, shadows} +\tikzset{% + cascaded/.style = {% + general shadow = {% + shadow scale = 1, + shadow xshift = -1ex, + shadow yshift = 1ex, + draw, + thick, + fill = white}, + general shadow = {% + shadow scale = 1, + shadow xshift = -.5ex, + shadow yshift = .5ex, + draw, + thick, + fill = white}, + fill = white, + draw, + thick, + minimum width = 1.5cm, + minimum height = 2cm}} + +\usepackage{enumitem} +\setitemize{noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt} +\setenumerate{noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt} +\setlist{leftmargin=*} +\usepackage{listings} +\lstset{ + basicstyle=\ttfamily, + frame=single, + breaklines=true, + morecomment=[l][\color{green}]{\#}, +} +\usepackage[os=win]{menukeys} +\renewmenumacro{\keys}[+]{shadowedroundedkeys} + +\usepackage{booktabs,caption} +\usepackage{threeparttable} +\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}} +\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}} +\newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}} +\usepackage{tabularx} + +\usepackage{multirow} +\usepackage{longtable,booktabs,threeparttablex} + +\usepackage{stackengine} +\usepackage{scalerel} +\usepackage{xcolor,mdframed} + +\newcommand\danger[1][5ex]{% + \renewcommand\stacktype{L}% + \scaleto{\stackon[1.3pt]{\color{red}$\triangle$}{\tiny !}}{#1}% +} + +\newenvironment{important}[1][]{% + \begin{mdframed}[% + backgroundcolor={red!15}, hidealllines=true, + skipabove=0.7\baselineskip, skipbelow=0.7\baselineskip, + splitbottomskip=2pt, splittopskip=4pt, #1]% + \makebox[0pt]{% ignore the withd of ! + \smash{% ignor the height of ! + %\fontsize{32pt}{32pt}\selectfont% make the ! bigger + \hspace*{-45pt}% move ! to the left + \raisebox{-5pt}{% move ! up a little + {\danger}% type the bold red ! + }% + }% + }% +}{\end{mdframed}} + +\newcommand\info[1][5ex]{% + \renewcommand\stacktype{L}% + \scaleto{\stackon[1.2pt]{\color{blue}$\bigcirc$}{\raisebox{-1.5pt}{\small i}}}{#1}% +} + +\newenvironment{information}[1][]{% + \begin{mdframed}[% + backgroundcolor={blue!15}, hidealllines=true, + skipabove=0.7\baselineskip, skipbelow=0.7\baselineskip, + splitbottomskip=2pt, splittopskip=4pt, #1]% + \makebox[0pt]{% ignore the withd of ! + \smash{% ignor the height of ! + %\fontsize{32pt}{32pt}\selectfont% make the ! bigger + \hspace*{-45pt}% move ! to the left + \raisebox{-5pt}{% move ! up a little + {\info}% type the bold red ! + }% + }% + }% +}{\end{mdframed}} + +\pgfdeclarelayer{background} +\pgfdeclarelayer{foreground} +\pgfsetlayers{background,main,foreground} + +\newcommand{\bitrect}[2]{ + \begin{pgfonlayer}{foreground} + \draw [thick] (0,0) rectangle (#1,1); + \pgfmathsetmacro\result{#1-1} + \foreach \x in {1,...,\result} + \draw [thick] (\x,1) -- (\x, 0.8); + \end{pgfonlayer} +% \node [below left, align=right] at (0,0) {Type \\ Reset}; + \bitlabels{#1}{#2} +} +\newcommand{\rwbits}[3]{ + \draw [thick] (#1,0) rectangle ++(#2,1) node[pos=0.5]{#3}; + \pgfmathsetmacro\start{#1+0.5} + \pgfmathsetmacro\finish{#1+#2-0.5} +% \foreach \x in {\start,...,\finish} +% \node [below, align=center] at (\x, 0) {R/W \\ 0}; +} +\newcommand{\robits}[3]{ + \begin{pgfonlayer}{background} + \draw [thick, fill=lightgray] (#1,0) rectangle ++(#2,1) node[pos=0.5]{#3}; + \end{pgfonlayer} + \pgfmathsetmacro\start{#1+0.5} + \pgfmathsetmacro\finish{#1+#2-0.5} +% \foreach \x in {\start,...,\finish} +% \node [below, align=center] at (\x, 0) {RO \\ 0}; +} +\newcommand{\bitlabels}[2]{ + \foreach \bit in {1,...,#1}{ + \pgfmathsetmacro\result{#2} + \node [above] at (\bit-0.5, 1) {\pgfmathprintnumber{\result}}; + } +} + +\usepackage{makecell} +\usepackage{hyperref} +\newcommand{\vna}{LibreVNA} + +\title{LibreVNA Device Protocol\\\small{Version 13}} + +\begin{document} +\maketitle +\tableofcontents +\clearpage + +\section{Introduction} +This document describes the device protocol of the LibreVNA. This is the protocol used by the LibreVNA to communicate with the LibreVNA-GUI (or other custom implementations). In the context of this document, the LibreVNA is also referred to as the ``device'' and the LibreVNA-GUI as the ``host''. + +\section{Hardware interface} +Depending on the LibreVNA, different hardware interfaces may be used for the implementation of this protocol. + +\subsection{USB device} +The LibreVNA implements a ``custom class'' USB device. It uses a VID of 0x0483 and a PID of 0x4121. The custom class contains a single interface with three bulk endpoints: +\begin{itemize} +\item \textbf{Endpoint 0x01:} Communication data from the USB host to the LibreVNA +\item \textbf{Endpoint 0x81:} Communication data from the LibreVNA to the USB host +\item \textbf{Endpoint 0x82:} Debug messages from the LibreVNA +\end{itemize} + +Endpoint 0x82 is exclusively used for debug messages. They are transmitted in ASCII format. All protocol packets described in this document are always transmitted over endpoints 0x01 and 0x81. + +\subsection{Ethernet interface} +The ethernet interface implements two TCP servers, one for protocol data and one for debug messages: +\begin{itemize} +\item \textbf{Port 19544:} Data interface +\item \textbf{Port 19545:} Debug interface +\end{itemize} +Each server only supports a single connection. If another connection request is received, the existing connection is closed before accepting the new one. + +Incoming data on the debug interface is ignored. Debug messages are transmitted in ASCII format. All protocol packets described in this document are always transmitted over the data interface. + +\subsubsection{Device Discovery} +Initially, the IP addresses of connected LibreVNAs may not be known. To automatically detect any devices, the LibreVNA implements SSDP and responds to M-SEARCH packets looking for either +\begin{lstlisting} +ssdp:all +\end{lstlisting} +or +\begin{lstlisting} +urn:schemas-upnp-org:device:LibreVNA:1 +\end{lstlisting} +services. + + +\section{General packet structure} +The data traffic can be viewed as a stream of bytes. The communication between the LibreVNA and the host is done in packets. To detect the packets within the data stream, some framing is needed. This general package structure is described in this section. + +Each packet consists of the following fields: +\begin{enumerate} +\item \textbf{Header:} 1 byte, always 0x5A +\item \textbf{Length:} 2 bytes, length of the overall packet in bytes, including the header and the checksum +\item \textbf{Type:} 1 byte, defines the type of packet and subsequently the data encoding within the payload +\item \textbf{Payload:} Any amount of bytes, content depends on the packet type +\item \textbf{CRC:} 4 bytes, CRC32 over all other packet bytes (header, length, type and payload) +\end{enumerate} +\noindent +All values in the device protocol are little-endian. + +\section{Packet types} +The following packet types are available: +\begin{ThreePartTable} +\setlength\tabcolsep{3pt} + +\begin{TableNotes} + \item[a] Direction of packet transfer: + \begin{footnotesize} + \begin{itemize} + \item \textbf{D$\rightarrow$H:} Device to host + \item \textbf{H$\rightarrow$D:} Host to device + \item \textbf{D$\leftrightarrow$H:} Both directions used + \end{itemize} + \end{footnotesize} + \item[b] Packet type that will be sent in response to this packet + \item[c] The response will be sent multiple times +\end{TableNotes} + +\begin{longtable}{p{0.06\textwidth} | p{0.3\textwidth} | p{0.07\textwidth} | p{0.4\textwidth} |p{0.1\textwidth} } +\toprule +\textbf{Type} &\textbf{Name} & \textbf{Dir}\tnote{a} &\textbf{Description} &\textbf{Answer}\tnote{a} \\ +\hline +\endhead +\midrule[\heavyrulewidth] +\endfoot +\midrule[\heavyrulewidth] +\insertTableNotes % tell LaTeX where to insert the table-related notes +\endlastfoot + +2 & SweepSettings & H$\rightarrow$D & Sets the sweep paramaters and starts the sweep in VNA mode& 27\tnote{c}\\ +3 & ManualStatus & D$\rightarrow$H & Contains the hardware status when in manual control mode & None\\ +4 & ManualControl & H$\rightarrow$D & Transfers the manual control configuration, switches the device into manual control mode & 3\tnote{c}\\ +5 & DeviceInfo & D$\rightarrow$H & Contains the device information (firmware/hardware version, capabilities,...)&None \\ +6 & FirmwarePacket & H$\rightarrow$D & Contains a piece of firmware data &None \\ +7 & Ack & D$\rightarrow$H & Sent as a response to every successfully received and handled packet&None \\ +8 & ClearFlash & H$\rightarrow$D & Triggers the flash erase procedure. Must be issues before transferring firmware data&None \\ +9 & PerformFirmwareUpdate & H$\rightarrow$D & Triggers the firmware update once all firmware data has been transferred&None \\ +10 & Nack & D$\rightarrow$H & Sent as a response to every unknown command or failure to execute the requested command&None \\ +11 & Reference & H$\rightarrow$D & Configure the external/internal reference &None \\ +12 & Generator & H$\rightarrow$D & Switches the VNA into generator mode and configures the generator output&None \\ +13 & SpectrumAnalyzerSettings & H$\rightarrow$D & Sets the sweep parameters and starts the sweep in spectrum analyzer mode&14\tnote{c} \\ +14 & SpectrumAnalyzerResult & D$\rightarrow$H & Sent for every sampled frequency within the sweep in spectrum analyzer mode&None \\ +15 & RequestDeviceInfo & H$\rightarrow$D & Makes the device send the DeviceInfo packet &5 \\ +16 & RequestSourceCal & H$\rightarrow$D & Makes the device send the source calibration packets & 18\tnote{c}\\ +17 & RequestReceiverCal & H$\rightarrow$D & Makes the device send the receiver calibration packets & 19\tnote{c}\\ +18 & SourceCalPoint & D$\leftrightarrow$H & Contains a single source amplitude calibration point &None\\ +19 & ReceiverCalPoint & D$\leftrightarrow$H & Contains a single receiver amplitude calibration point &None \\ +20 & SetIdle & H$\rightarrow$D & Stops all device activity & None \\ +21 & RequestFrequencyCorrection & H$\rightarrow$D & Makes the device send the frequency calibration packet &22 \\ +22 & FrequencyCorrection & D$\leftrightarrow$H & Contains the frequency calibration factor & None\\ +23 & RequestDeviceConfig & H$\rightarrow$D & Makes the device send its device configuration & 24\\ +24 & DeviceConfig & D$\rightarrow$H & Contains the configuration of various global device settings &None \\ +25 & DeviceStatus & D$\rightarrow$H & Contains the hardware device status (lock, temperatures,...) &None \\ +26 & RequestDeviceStatus & H$\rightarrow$D & Makes the device send the device status &25 \\ +27 & VNADatapoint & D$\rightarrow$H & Sent for every sampled frequency within the sweep in VNA mode &None \\ +28 & SetTrigger & D$\leftrightarrow$H & Updates the trigger status for synchronization over the data interface & None\\ +29 & ClearTrigger & D$\leftrightarrow$H & Updates the trigger status for synchronization over the data interface & None\\ +30 & StopStatusUpdates & H$\rightarrow$D & Stops the automatic transmission of device status packets & None\\ +31 & StartStatusUpdates & H$\rightarrow$D & Starts the automatic transmission of device status packets & None\\ +32 & InitiateSweep & H$\rightarrow$D & Initiates a single sweep when configured for standby operation & None\\ +\end{longtable} +\end{ThreePartTable} +An Ack is transmitted by the device for every received command after it has been handled successfully. + +Received packets from the device are not acknowledged by the host; the host never sends an Ack packet. + +\subsection{SweepSettings} +Transmitting this packet will switch the LibreVNA into VNA mode and start the sweep. During the sweep, VNADatapoint packets are generated for each completed point in the sweep. + +The sampling for each frequency (or power) point in the sweep is done in stages. In each stage, the stimulus can be active at another port. A typical full two-port sweep would therefore use two stages, with the stimulus being active on port 1 during stage 0 and on port 2 during stage 1. For faster measurements, this could be reduced to a single stage if only a subset of the S-parameters is required. Similarly, more stages than the number of ports can be used (with the stimulus inactive during some) when multiple devices are synchronized. Another device in the setup will have to generate the stimulus during the inactive stages. + + +The packet contains the following fields: +\begin{ThreePartTable} +\setlength\tabcolsep{3pt} + +\begin{longtable}{p{0.08\textwidth} | p{0.08\textwidth} | p{0.1\textwidth}| p{0.25\textwidth} | p{0.43\textwidth}} +\toprule +\textbf{Offset} &\textbf{Length} &\textbf{Type} & \textbf{Name} &\textbf{Description} \\ +\hline +\endhead +\midrule[\heavyrulewidth] +\endfoot +\midrule[\heavyrulewidth] +%\insertTableNotes % tell LaTeX where to insert the table-related notes +\endlastfoot + +0 & 8 & UINT64 & f\_start & Start frequency in Hz \\ +8 & 8 & UINT64 & f\_stop & Stop frequency in Hz \\ +16 & 2 & UINT16 & points & Number of points in the sweep \\ +18 & 4 & UINT32 & IF\_bandwidth & Bandwidth of the IF sampling in Hz \\ +22 & 2 & INT16 &cdbm\_excitation\_start & Stimulus power at the first point in $\frac{1}{100}$dBm \\ +24 & 1 & UINT8 & Configuration & Bitmap for configuration, see below \\ +25 & 2 & UINT16 & Stages & Bitmap for stage configuration, see below \\ +27 & 2 & INT16 &cdbm\_excitation\_stop & Stimulus power at the last point in $\frac{1}{100}$dBm \\ +\end{longtable} +\end{ThreePartTable} + +\paragraph{Configuration:} +\begin{center} +\begin{tikzpicture} +\bitrect{8}{8-\bit} +%\rwbits{0}{2}{syncMode} +%\rwbits{2}{3}{P2 Stage} +%\rwbits{5}{3}{P1 Stage} +%\rwbits{1}{3}{Stages} +\robits{0}{1}{} +\rwbits{1}{2}{syncMode} +\rwbits{3}{1}{LOG} +\rwbits{4}{1}{FP} +\rwbits{5}{1}{SP} +\rwbits{6}{1}{SM} +\rwbits{7}{1}{SO} +\end{tikzpicture} +\end{center} +\begin{itemize} +\item \textbf{syncMode:} Synchronization mode when multiple devices are used together +\begin{center} +\begin{tabular}{ c|c } +Setting & Synchronization\\ + \hline +00 & Disabled \\ +01 & Protocol\\ +10 & Reserved\\ +11 & External trigger\\ +\end{tabular} +\end{center} +\item \textbf{LOG:} Set for a logarithmic sweep (only for frequency, power adjustment during the sweep is always linear) +\item \textbf{FP:} Fixed power setting. This must be enabled for power sweeps (when cdbm\_excitation\_start $\neq$ cdbm\_excitation\_stop) +\begin{center} +\begin{tabularx}{\textwidth}{ c|X } +Setting & Behavior\\ + \hline +0 & Attenuator setting is fixed during the sweep. This will result in inaccurate stimulus level but prevent discrete jumps in output power. \\ +1 & Attenuator setting is changed during the sweep. This will result in more accurate stimulus level but also create discrete jumps in output power. \\ +\end{tabularx} +\end{center} +\item \textbf{SP:} Suppress peaks. Recommended setting: always enabled. +\begin{center} +\begin{tabularx}{\textwidth}{ c|X } +Setting & Behavior\\ + \hline +0 & 2.LO is adjusted to compensate for limited frequency resolution in 1.LO. Slight decrease in maximum sweep speed. \\ +1 & 2.LO is kept at its nominal value. Slightly faster sweep but this will result in peaks at frequencies where the 1.LO it too far off the ideal frequency. \\ +\end{tabularx} +\end{center} +\item \textbf{SM:} Sync Master. Must be set to 1 at exactly one device when multiple devices are synchronized. Set to 0 when synchronization is disabled. +\item \textbf{SO:} Standby Operation. Indicates whether the VNA will begin sweep immediately, or wait in the configured state to be triggered manually by InitiateSweep packets. Standy operation allows for lower latency of intermittent single sweeps. +\begin{center} +\begin{tabularx}{\textwidth}{ c|X } +Setting & Behavior\\ + \hline +0 & VNA will begin sweep immediately and timeout to idle mode 1000ms after sweep is completed or 100ms after entering the halted state. \\ +1 & VNA will wait in a configured state for InitiateSweep packets. The host application is responsible for putting the VNA into idle mode with a SetIdle packet.\\ +\end{tabularx} +\end{center} +\end{itemize} + +\paragraph{Stages:} +\begin{center} +\begin{tikzpicture} +\bitrect{16}{16-\bit} +\robits{0}{1}{} +\rwbits{1}{3}{P4 Stage} +\rwbits{4}{3}{P3 Stage} +\rwbits{7}{3}{P2 Stage} +\rwbits{10}{3}{P1 Stage} +\rwbits{13}{3}{Stages} +\end{tikzpicture} +\end{center} +\begin{itemize} +\item \textbf{P1 Stage:} Sets the stage number when the stimulus is active at port 1. Stage number indizes start at 0. +\item \textbf{P2 Stage:} Sets the stage number when the stimulus is active at port 2. Stage number indizes start at 0. +\item \textbf{P3 Stage:} Sets the stage number when the stimulus is active at port 3. Stage number indizes start at 0. +\item \textbf{P4 Stage:} Sets the stage number when the stimulus is active at port 4. Stage number indizes start at 0. +\item \textbf{Stages:} Sets the number of used stages. The number of stages is one more than this value. E.g. set to 1 for 2 stages +\end{itemize} + +\subsection{ManualStatus} +This packet is generated by the LibreVNA when in manual control mode. It is transmitted in regular intervals on its own. + +The content of this packet varies according to the hardware version reported in the DeviceInfo packet. Each hardware version sends a different ManualStatus packet according to the available hardware information. As the different content is implemented as a ``union'' in the protocol layer, the packet size always matches the largest content possible. For hardware versions whose content is smaller, the extra bytes can be ignored. + +\subsubsection{Hardware Version 0x01} +The packet contains the following fields: +\begin{ThreePartTable} +\setlength\tabcolsep{3pt} + +\begin{longtable}{p{0.08\textwidth} | p{0.08\textwidth} | p{0.1\textwidth}| p{0.15\textwidth} | p{0.53\textwidth}} +\toprule +\textbf{Offset} &\textbf{Length} &\textbf{Type} & \textbf{Name} &\textbf{Description} \\ +\hline +\endhead +\midrule[\heavyrulewidth] +\endfoot +\midrule[\heavyrulewidth] +%\insertTableNotes % tell LaTeX where to insert the table-related notes +\endlastfoot + +0 & 2 & INT16 & port1min & Minimum value of the ADC at port 1 \\ +2 & 2 & INT16 & port1max & Maximum value of the ADC at port 1 \\ +4 & 2 & INT16 & port2min & Minimum value of the ADC at port 2 \\ +6 & 2 & INT16 & port2max & Maximum value of the ADC at port 2 \\ +8 & 2 & INT16 & refmin & Minimum value of the ADC at the reference receiver \\ +10 & 2 & INT16 & refmax & Maximum value of the ADC at the reference receiver \\ +12 & 4 & FLOAT & port1real & Real part of the complex signal at port 1 \\ +16 & 4 & FLOAT & port1imag & Imaginary part of the complex signal at port 1 \\ +20 & 4 & FLOAT & port2real & Real part of the complex signal at port 2 \\ +24 & 4 & FLOAT & port2imag & Imaginary part of the complex signal at port 2 \\ +28 & 4 & FLOAT & refreal & Real part of the complex signal at the reference receiver \\ +32 & 4 & FLOAT & refimag & Imaginary part of the complex signal at the reference receiver \\ +36 & 1 & UINT8 & temp\_source & Temperature of the source PLL in \si{\celsius} \\ +37 & 1 & UINT8 & temp\_LO & Temperature of the LO PLL in \si{\celsius} \\ +38 & 1 & UINT8 & Lock status & Bit 0: lock status of source PLL. Bit 1: lock status of LO PLL \\ +\end{longtable} +\end{ThreePartTable} + +\subsubsection{Hardware Version 0xFF} +The packet contains the following fields: +\begin{ThreePartTable} +\setlength\tabcolsep{3pt} + +\begin{longtable}{p{0.08\textwidth} | p{0.08\textwidth} | p{0.1\textwidth}| p{0.15\textwidth} | p{0.53\textwidth}} +\toprule +\textbf{Offset} &\textbf{Length} &\textbf{Type} & \textbf{Name} &\textbf{Description} \\ +\hline +\endhead +\midrule[\heavyrulewidth] +\endfoot +\midrule[\heavyrulewidth] +%\insertTableNotes % tell LaTeX where to insert the table-related notes +\endlastfoot + +0 & 2 & INT16 & port1min & Minimum value of the ADC at port 1 \\ +2 & 2 & INT16 & port1max & Maximum value of the ADC at port 1 \\ +4 & 2 & INT16 & refmin & Minimum value of the ADC at the reference receiver \\ +6 & 2 & INT16 & refmax & Maximum value of the ADC at the reference receiver \\ +8 & 4 & FLOAT & port1real & Real part of the complex signal at port 1 \\ +12 & 4 & FLOAT & port1imag & Imaginary part of the complex signal at port 1 \\ +16 & 4 & FLOAT & refreal & Real part of the complex signal at the reference receiver \\ +20 & 4 & FLOAT & refimag & Imaginary part of the complex signal at the reference receiver \\ +24 & 1 & UINT8 & Lock status & Bit 0: lock status of source PLL. Bit 1: lock status of LO PLL \\ +\end{longtable} +\end{ThreePartTable} + +\subsection{ManualControl} +This packet switches the LibreVNA to manual control mode. As long as the manual control mode is active, the LibreVNA will generate ManualStatus packets and send them to the host. + +The content of this packet varies according to the hardware version reported in the DeviceInfo packet. Each hardware version expects a different ManualControl packet according to the available hardware information. + +\subsubsection{Hardware Version 0x01} +The packet contains the following fields: +\begin{ThreePartTable} +\setlength\tabcolsep{3pt} + +\begin{longtable}{p{0.08\textwidth} | p{0.08\textwidth} | p{0.1\textwidth}| p{0.25\textwidth} | p{0.43\textwidth}} +\toprule +\textbf{Offset} &\textbf{Length} &\textbf{Type} & \textbf{Name} &\textbf{Description} \\ +\hline +\endhead +\midrule[\heavyrulewidth] +\endfoot +\midrule[\heavyrulewidth] +%\insertTableNotes % tell LaTeX where to insert the table-related notes +\endlastfoot + +0 & 1 & UINT8 & Source High Config & Configuration of the highband source \\ +1 & 8 & UINT64 & Source High Frequency & Frequency of the highband source in Hz \\ +9 & 1 & UINT8 & Source Low Config & Configuration of the lowband source \\ +10 & 4 & UINT32 & Source Low Frequency & Frequency of the lowband source in Hz \\ +14 & 2 & UINT16 & Source Path Config & Configuration of the source signal from the PLLs to the ports \\ +16 & 1 & UINT8 & 1.LO Config & Configuration of the 1.LO \\ +17 & 8 & UINT64 & 1.LO Frequency & Frequency of the 1.LO in Hz \\ +25 & 1 & UINT8 & 2.LO Enable & Set to 1 to enable the 2.LO. Set to 0 to disable the 2.LO \\ +26 & 4 & UINT32 & 2.LO Frequency & Frequency of the 2.LO in Hz \\ +\hline +30 & 1 & UINT8 & Receiver enable & \makecell[l]{Bit 0: Enable port 1 receiver\\Bit 1: Enable port 1 receiver\\Bit 2: Enable reference receiver} \\ +\hline +31 & 4 & UINT32 & Samples & Number of ADC samples for each complex wave calculation \\ +32 & 1 & UINT8 & WindowType & Window selection for the complex wave calculation \\ +\end{longtable} +\end{ThreePartTable} + +\paragraph{Source High Config:} +\begin{center} +\begin{tikzpicture} +\bitrect{8}{8-\bit} +\robits{0}{2}{} +\rwbits{2}{2}{LP} +\rwbits{4}{2}{Power} +\rwbits{6}{1}{RFEN} +\rwbits{7}{1}{CE} +\end{tikzpicture} +\end{center} + +\begin{itemize} +\item \textbf{LP:} Lowpass setting +\begin{center} +\begin{tabular}{ c|c } +Setting & Cut-off frequency\\ + \hline +00 & \SI{947}{\mega\hertz} \\ +01 & \SI{1.88}{\giga\hertz}\\ +10 & \SI{3.5}{\giga\hertz}\\ +11 & No filter\\ +\end{tabular} +\end{center} +\item \textbf{Power:} Power output of the highband source PLL +\begin{center} +\begin{tabular}{ c|c } +Setting & Power\\ + \hline +00 & \SI{-4}{\dBm} \\ +01 & \SI{-1}{\dBm}\\ +10 & \SI{2}{\dBm}\\ +11 & \SI{5}{\dBm}\\ +\end{tabular} +\end{center} +\item \textbf{RFEN:} RF output enable +\item \textbf{CE:} Chip enable +\end{itemize} + +\paragraph{Source Low Config:} +\begin{center} +\begin{tikzpicture} +\bitrect{8}{8-\bit} +\robits{0}{5}{} +\rwbits{5}{2}{Power} +\rwbits{7}{1}{EN} +\end{tikzpicture} +\end{center} + +\begin{itemize} +\item \textbf{Power:} Power output of the lowband source PLL +\begin{center} +\begin{tabular}{ c|c } +Setting & Drive Strength\\ + \hline +00 & \SI{2}{\milli\ampere} \\ +01 & \SI{4}{\milli\ampere}\\ +10 & \SI{6}{\milli\ampere}\\ +11 & \SI{8}{\milli\ampere}\\ +\end{tabular} +\end{center} +\item \textbf{EN:} Lowband source enable +\end{itemize} + +\paragraph{Source Path Config:} +\begin{center} +\begin{tikzpicture} +\bitrect{16}{16-\bit} +\robits{0}{6}{} +\rwbits{6}{1}{PS} +\rwbits{7}{1}{AEN} +\rwbits{8}{1}{BS} +\rwbits{9}{7}{Attenuator} +\end{tikzpicture} +\end{center} + +\begin{itemize} +\item \textbf{PS:} Port switch. Set to 1 to route the source signal to port 2, set to 0 to route the source signal to port 1. +\item \textbf{AEN:} Amplifier enable. +\item \textbf{PS:} Band select. Set to 1 to use the highband source, set to 0 to use the lowband source. +\item \textbf{Attenuator:} Attenuation of the source signal in \SI{0.25}{\dBm}. +\end{itemize} + +\paragraph{1.LO Config:} +\begin{center} +\begin{tikzpicture} +\bitrect{8}{8-\bit} +\robits{0}{6}{} +\rwbits{6}{1}{RFEN} +\rwbits{7}{1}{CE} +\end{tikzpicture} +\end{center} + +\begin{itemize} +\item \textbf{RFEN:} RF output enable +\item \textbf{CE:} Chip enable +\end{itemize} + +\paragraph{WindowType:} +\begin{center} +\begin{tabular}{ c|c } +Setting & Window\\ + \hline +0 & None \\ +1 & Kaiser\\ +2 & Hann\\ +3 & Flattop\\ +\end{tabular} +\end{center} + +\subsubsection{Hardware Version 0xFF} +The packet contains the following fields: +\begin{ThreePartTable} +\setlength\tabcolsep{3pt} + +\begin{longtable}{p{0.08\textwidth} | p{0.08\textwidth} | p{0.1\textwidth}| p{0.25\textwidth} | p{0.43\textwidth}} +\toprule +\textbf{Offset} &\textbf{Length} &\textbf{Type} & \textbf{Name} &\textbf{Description} \\ +\hline +\endhead +\midrule[\heavyrulewidth] +\endfoot +\midrule[\heavyrulewidth] +%\insertTableNotes % tell LaTeX where to insert the table-related notes +\endlastfoot + +0 & 1 & UINT8 & Source Config & Configuration of the source \\ +1 & 8 & UINT64 & Source Frequency & Frequency of the source in Hz \\ +9 & 1 & UINT8 & Source Path Config & Configuration of the source signal from the PLL to the port \\ +10 & 1 & UINT8 & LO Config & Configuration of the LO \\ +11 & 8 & UINT64 & LO Frequency & Frequency of the LO in Hz \\ +19 & 2 & UINT16 & Acquisition Config & Configuration of the acquisition hardware \\ +21 & 2 & UINT16 & Samples & Number of ADC samples for each complex wave calculation \\ +\end{longtable} +\end{ThreePartTable} + +\paragraph{Source Config:} +\begin{center} +\begin{tikzpicture} +\bitrect{8}{8-\bit} +\robits{0}{3}{} +\rwbits{3}{3}{Power} +\rwbits{6}{1}{RFEN} +\rwbits{7}{1}{CE} +\end{tikzpicture} +\end{center} + +\begin{itemize} +\item \textbf{Power:} Power output of the source PLL +\begin{center} +\begin{tabular}{ c|c } +Setting & Power\\ + \hline +000 & \SI{-1}{\dBm} \\ +001 & \SI{+1}{\dBm}\\ +010 & \SI{+2.5}{\dBm}\\ +011 & \SI{+3.5}{\dBm}\\ +100 & \SI{+4.5}{\dBm}\\ +101 & \SI{+5.5}{\dBm}\\ +110 & \SI{+6.5}{\dBm}\\ +111 & \SI{+7}{\dBm}\\ +\end{tabular} +\end{center} +\item \textbf{RFEN:} RF output enable +\item \textbf{CE:} Chip enable +\end{itemize} + +\paragraph{Source Path Config:} +\begin{center} +\begin{tikzpicture} +\bitrect{8}{8-\bit} +\rwbits{0}{1}{AEN} +\rwbits{1}{7}{Attenuator} +\end{tikzpicture} +\end{center} + +\begin{itemize} +\item \textbf{AEN:} Amplifier enable. +\item \textbf{Attenuator:} Attenuation of the source signal in \SI{0.25}{\dBm}. +\end{itemize} + +\paragraph{LO Config:} +\begin{center} +\begin{tikzpicture} +\bitrect{8}{8-\bit} +\robits{0}{4}{} +\rwbits{4}{1}{EXT} +\rwbits{5}{1}{AEN} +\rwbits{6}{1}{RFEN} +\rwbits{7}{1}{CE} +\end{tikzpicture} +\end{center} + +\begin{itemize} +\item \textbf{EXT:} Use external LO input. +\item \textbf{AEN:} Amplifier enable. +\item \textbf{RFEN:} RF output enable +\item \textbf{CE:} Chip enable +\end{itemize} + + +\paragraph{Acquisition Config:} +\begin{center} +\begin{tikzpicture} +\bitrect{16}{16-\bit} +\robits{0}{4}{} +\rwbits{4}{4}{RefGain} +\rwbits{8}{4}{PortGain} +\rwbits{12}{2}{Window} +\rwbits{14}{1}{REN} +\rwbits{15}{1}{PEN} +\end{tikzpicture} +\end{center} +\begin{itemize} +\item \textbf{RefGain/PortGain:} Gain setting of the PGA in the frontend of the port or reference receiver. +\begin{center} +\begin{tabular}{ c|c } +Setting & Gain\\ + \hline +0 & 1 V/V \\ +1 & 10 V/V\\ +2 & 20 V/V\\ +3 & 30 V/V\\ +4 & 40 V/V\\ +5 & 60 V/V\\ +6 & 80 V/V\\ +7 & 120 V/V\\ +8 & 157 V/V\\ +9 & 0.25 V/V\\ +\end{tabular} +\end{center} +\item \textbf{Window:} +\begin{center} +\begin{tabular}{ c|c } +Setting & Window\\ + \hline +0 & None \\ +1 & Kaiser\\ +2 & Hann\\ +3 & Flattop\\ +\end{tabular} +\end{center} +\item \textbf{REN:} Reference receiver enable. +\item \textbf{PEN:} Port receiver enable. +\end{itemize} + +\subsection{DeviceInfo} +This packet contains information about the connected device. It can be requested by sending a RequestDeviceInfo packet. This request is the first thing that should happen after the device has been enumerated to make sure the right protocol version is used. + +The packet contains the following fields: +\begin{ThreePartTable} +\setlength\tabcolsep{3pt} + +\begin{longtable}{p{0.08\textwidth} | p{0.08\textwidth} | p{0.1\textwidth}| p{0.25\textwidth} | p{0.43\textwidth}} +\toprule +\textbf{Offset} &\textbf{Length} &\textbf{Type} & \textbf{Name} &\textbf{Description} \\ +\hline +\endhead +\midrule[\heavyrulewidth] +\endfoot +\midrule[\heavyrulewidth] +%\insertTableNotes % tell LaTeX where to insert the table-related notes +\endlastfoot + +0 & 2 & UINT16 & ProtocolVersion & Set to 12. If another value is reported, refer to the corresponding protocol description.\\ +2 & 1 & UINT8 & FW\_major & Major firmware version \\ +3 & 1 & UINT8 & FW\_minor & Minor firmware version \\ +4 & 1 & UINT8 & FW\_patch & Patch of the firmware version \\ +5 & 1 & UINT8 & hardware\_version & Version of the hardware, currently only `1' \\ +6 & 1 & CHAR & HW\_revision & Revision of the hardware, currently only `B' is used \\ +7 & 8 & UINT64 & MinFreq & Minimum supported frequency in Hz \\ +15 & 8 & UINT64 & MaxFreq & Maximum supported frequency in Hz \\ +23 & 4 & UINT64 & MinIFBW & Minimum supported IF bandwidth in Hz \\ +27 & 4 & UINT64 & MaxIFBW & Maximum supported IF bandwidth in Hz \\ +31 & 2 & UINT16 & MaxPoints & Maximum number of points per sweep \\ +33 & 2 & INT16 & MincdBm & Minimum stimulus power in $\frac{1}{100}$dBm \\ +35 & 2 & INT16 & MaxcdBm & Maximum stimulus power in $\frac{1}{100}$dBm \\ +37 & 4 & UINT32 & MinRBW & Minimum supported resolution bandwidth in Hz \\ +41 & 4 & UINT32 & MaxRBW & Maximum supported resolution bandwidth in Hz \\ +45 & 1 & UINT8 & MaxAmplitudePoints & Maximum supported number of amplitude calibration points \\ +46 & 8 & UINT64 & MaxHarmonicFrequency & Maximum supported frequency when using harmonic mixing \\ +54 & 1 & UINT8 & NumPorts & The number of frontend VNA ports the device supports \\ +\end{longtable} +\end{ThreePartTable} + +\subsection{FirmwarePacket} +This packet contains a part of the firmware. When updating the firmware, this packet must be transmitted multiple times until the whole firmware has been transferred. + +The packet contains the following fields: +\begin{ThreePartTable} +\setlength\tabcolsep{3pt} + +\begin{longtable}{p{0.08\textwidth} | p{0.08\textwidth} | p{0.1\textwidth}| p{0.25\textwidth} | p{0.43\textwidth}} +\toprule +\textbf{Offset} &\textbf{Length} &\textbf{Type} & \textbf{Name} &\textbf{Description} \\ +\hline +\endhead +\midrule[\heavyrulewidth] +\endfoot +\midrule[\heavyrulewidth] +%\insertTableNotes % tell LaTeX where to insert the table-related notes +\endlastfoot + +0 & 4 & UINT32 & Address & Address at which the firmware data starts\\ +4 & 256 & UINT8 & Data & Binary firmware data \\ +\end{longtable} +\end{ThreePartTable} + +\subsection{Ack} +This packet is sent by the device whenever a valid packet has been received. It has no payload. + +\subsection{ClearFlash} +This packet must be sent before transferring the first piece of firmware data. It has no payload. + +\subsection{PerformFirmwareUpdate} +This packet must be sent after the complete firmware data has been transmitted. It triggers the actual update process. The device will reboot during the update process. It has no payload. + +\subsection{Nack} +This packet is sent by the device whenever an error occured while processing a received packet. It has no payload. + +\subsection{Reference} +This packet is used to configure the external reference input and output. + +The packet contains the following fields: +\begin{ThreePartTable} +\setlength\tabcolsep{3pt} + +\begin{longtable}{p{0.08\textwidth} | p{0.08\textwidth} | p{0.1\textwidth}| p{0.21\textwidth} | p{0.47\textwidth}} +\toprule +\textbf{Offset} &\textbf{Length} &\textbf{Type} & \textbf{Name} &\textbf{Description} \\ +\hline +\endhead +\midrule[\heavyrulewidth] +\endfoot +\midrule[\heavyrulewidth] +%\insertTableNotes % tell LaTeX where to insert the table-related notes +\endlastfoot + +0 & 4 & UINT32 & OutputFrequency & Frequency of the external reference output. Not every frequency can be reached by the PLL. Set to 0 to disable the reference output.\\ +4 & 1 & UINT8 & ExternalInputConfig & \makecell[l]{Bit 0: Switch to external when signal detected\\Bit 1: Force usage of the external reference} \\ +\end{longtable} +\end{ThreePartTable} + +\subsection{Generator} +This packet switches the LibreVNA into signal generator mode and configures the output signal. + +The packet contains the following fields: +\begin{ThreePartTable} +\setlength\tabcolsep{3pt} + +\begin{longtable}{p{0.08\textwidth} | p{0.08\textwidth} | p{0.1\textwidth}| p{0.25\textwidth} | p{0.43\textwidth}} +\toprule +\textbf{Offset} &\textbf{Length} &\textbf{Type} & \textbf{Name} &\textbf{Description} \\ +\hline +\endhead +\midrule[\heavyrulewidth] +\endfoot +\midrule[\heavyrulewidth] +%\insertTableNotes % tell LaTeX where to insert the table-related notes +\endlastfoot + +0 & 8 & UINT64 & OutputFrequency & Output frequency of the generator in Hz\\ +8 & 2 & INT16 & cdBmLevel & Output level in $\frac{1}{100}$dBm \\ +10 & 1 & UINT8 & Configuration & Configuration bitmap, see below \\ +\end{longtable} +\end{ThreePartTable} + +\paragraph{Configuration:} +\begin{center} +\begin{tikzpicture} +\bitrect{8}{8-\bit} +\robits{0}{4}{} +\rwbits{4}{1}{AC} +\rwbits{5}{3}{Port} +\end{tikzpicture} +\end{center} + +\begin{itemize} +\item \textbf{AC:} Amplitude correction enable. If set to 1, the source amplitude calibration is used to reach better amplitude accuracy. +\item \textbf{Port:} Port selection: +\begin{center} +\begin{tabular}{ c|c } +Setting & Window\\ + \hline +0 & Disabled \\ +1 & Output on port 1\\ +2 & Output on port 2\\ +3 & Output on port 3\\ +4 & Output on port 4\\ +\end{tabular} +\end{center} +\end{itemize} + +\subsection{SpectrumAnalyzerSettings} +Transmitting this packet will switch the LibreVNA into spectrum analyzer mode and start the sweep. During the sweep, SpectrumAnalyzerResult packets are generated for each completed point in the sweep. + +The packet contains the following fields: +\begin{ThreePartTable} +\setlength\tabcolsep{3pt} + +\begin{longtable}{p{0.08\textwidth} | p{0.08\textwidth} | p{0.1\textwidth}| p{0.25\textwidth} | p{0.43\textwidth}} +\toprule +\textbf{Offset} &\textbf{Length} &\textbf{Type} & \textbf{Name} &\textbf{Description} \\ +\hline +\endhead +\midrule[\heavyrulewidth] +\endfoot +\midrule[\heavyrulewidth] +%\insertTableNotes % tell LaTeX where to insert the table-related notes +\endlastfoot + +0 & 8 & UINT64 & f\_start & Start frequency in Hz \\ +8 & 8 & UINT64 & f\_stop & Stop frequency in Hz \\ +16 & 4 & UINT32 & RBW & Resolution bandwidth in Hz \\ +20 & 2 & UINT16 & pointNum & Number of reported points in the sweep. The internally used number of points can be higher (depending on the RBW) \\ +22 & 2 & UINT16 & Configuration & Bitmap for configuration, see below \\ +24 & 8 & INT64 & TrackingOffset & Offset of the tracking generator in Hz \\ +32 & 2 & INT16 & TrackingPower & Power of the tracking generator in $\frac{1}{100}$dBm \\ +\end{longtable} +\end{ThreePartTable} + +\paragraph{Configuration:} +\begin{center} +\begin{tikzpicture} +\bitrect{16}{16-\bit} +\robits{0}{1}{} +\rwbits{1}{1}{SM} +\rwbits{2}{2}{syncMode} +\rwbits{4}{2}{TGP} +\rwbits{6}{1}{ASC} +\rwbits{7}{1}{TGE} +\rwbits{8}{1}{ARC} +\rwbits{9}{1}{DFT} +\rwbits{10}{3}{Detector} +\rwbits{13}{1}{SID} +\rwbits{14}{2}{Window} +\end{tikzpicture} +\end{center} +\begin{itemize} +\item \textbf{SM:} Sync Master. Must be set to 1 at exactly one device when multiple devices are synchronized. Set to 0 when synchronization is disabled. +\item \textbf{syncMode:} Synchronization mode when multiple devices are used together +\begin{center} +\begin{tabular}{ c|c } +Setting & Synchronization\\ + \hline +00 & Disabled \\ +01 & Protocol\\ +10 & Reserved\\ +11 & External trigger\\ +\end{tabular} +\end{center} +\item \textbf{TGP:} Tracking generator port. Port count starts at zero. E.g. set this to 1 for tracking generator active on port 2. Ignored if TGE is 0. +\item \textbf{ASC:} Apply source amplitude corrections. If enabled, the amplitude calibration is used to reach better accuracy of the tracking generator output. +\item \textbf{TGE:} Tracking generator enable. +\item \textbf{ARC:} Apply receiver amplitude corrections. If enabled, the amplitude calibration is used to reach better measurement accuracy. +\item \textbf{DFT:} Use DFT to speed up the acquisition. Can not be used when the tracking generator is enabled. Only useful for low resolution bandwidths. +\item \textbf{Detector:} +\begin{center} +\begin{tabular}{ c|c } +Setting & Detector type\\ + \hline +0 & Positive peak \\ +1 & Negative peak \\ +2 & Sample \\ +3 & Normal \\ +4 & Average \\ +\end{tabular} +\end{center} +\item \textbf{SID:} Signal ID enable. +\item \textbf{Window:} +\begin{center} +\begin{tabular}{ c|c } +Setting & Window\\ + \hline +0 & None \\ +1 & Kaiser\\ +2 & Hann\\ +3 & Flattop\\ +\end{tabular} +\end{center} +\end{itemize} + + +\subsection{SpectrumAnalyzerResult} +This packet is transmitted by the LibreVNA for every point in the sweep when in spectrum analyzer mode. + +The packet contains the following fields: +\begin{ThreePartTable} +\setlength\tabcolsep{3pt} + +\begin{longtable}{p{0.08\textwidth} | p{0.08\textwidth} | p{0.1\textwidth}| p{0.12\textwidth} | p{0.56\textwidth}} +\toprule +\textbf{Offset} &\textbf{Length} &\textbf{Type} & \textbf{Name} &\textbf{Description} \\ +\hline +\endhead +\midrule[\heavyrulewidth] +\endfoot +\midrule[\heavyrulewidth] +%\insertTableNotes % tell LaTeX where to insert the table-related notes +\endlastfoot + +0 & 4 & FLOAT & Port 1 & Voltage signal level at port 1 (1.0 equals \SI{1}{\milli\watt} into \SI{50}{\ohm})\\ +4 & 4 & FLOAT & Port 2 & Voltage signal level at port 2 (1.0 equals \SI{1}{\milli\watt} into \SI{50}{\ohm})\\ +8 & 4 & FLOAT & Port 3 & Voltage signal level at port 3 (1.0 equals \SI{1}{\milli\watt} into \SI{50}{\ohm})\\ +12 & 4 & FLOAT & Port 4 & Voltage signal level at port 4 (1.0 equals \SI{1}{\milli\watt} into \SI{50}{\ohm})\\ +16 & 8 & UINT64 & Frequency or Time & Frequency of the point (or time since beginning of SA mode if in zerospan) \\ +24 & 2 & UINT16 & PointNum & Number of the point in the sweep \\ +\end{longtable} +\end{ThreePartTable} + +\subsection{RequestDeviceInfo} +This packet is used to make the device send the DeviceInfo packet. It has no payload. + +\subsection{RequestSourceCal} +This packet is used to make the device send the source amplitude calibration. It has no payload. For each source amplitude calibration point one SourceCalPoint packet will be returned. + +\subsection{RequestReceiverCal} +This packet is used to make the device send the receiver amplitude calibration. It has no payload. For each receiver amplitude calibration point one ReceiverCalPoint packet will be returned. + +\subsection{SourceCalPoint} +This packet contains one source calibration point. It can be transmitted in both directions. When reading the source calibration, it is transmitted from the device to the host. When writing the source calibration multiple of these packets are transferred from the host to the device. In both cases the packet for the point with the highest point number must be transmitted last. + +The packet contains the following fields: +\begin{ThreePartTable} +\setlength\tabcolsep{3pt} + +\begin{longtable}{p{0.08\textwidth} | p{0.08\textwidth} | p{0.1\textwidth}| p{0.25\textwidth} | p{0.43\textwidth}} +\toprule +\textbf{Offset} &\textbf{Length} &\textbf{Type} & \textbf{Name} &\textbf{Description} \\ +\hline +\endhead +\midrule[\heavyrulewidth] +\endfoot +\midrule[\heavyrulewidth] +%\insertTableNotes % tell LaTeX where to insert the table-related notes +\endlastfoot + +0 & 1 & UINT8 & TotalPoints & Amount of total points in the amplitude calibration \\ +1 & 1 & UINT8 & PointNum & Number of the calibration point contained in this packet \\ +2 & 4 & UINT32 & Frequency & Frequency of the calibration point in \SI{10}{\hertz} \\ +6 & 2 & INT16 & Port 1 & Correction value for port 1 in $\frac{1}{100}$dB \\ +8 & 2 & INT16 & Port 2 & Correction value for port 2 in $\frac{1}{100}$dB \\ +10 & 2 & INT16 & Port 3 & Correction value for port 3 in $\frac{1}{100}$dB \\ +12 & 2 & INT16 & Port 4 & Correction value for port 4 in $\frac{1}{100}$dB \\ +\end{longtable} +\end{ThreePartTable} + +\subsection{ReceiverCalPoint} +This packet contains one receiver calibration point. It can be transmitted in both directions. When reading the receiver calibration, it is transmitted from the device to the host. When writing the receiver calibration multiple of these packets are transferred from the host to the device. In both cases the packet for the point with the highest point number must be transmitted last. + +The packet payload is identical to the SourceCalPoint packet. + +\subsection{SetIdle} +This packet is used to stop any data acquisition from the LibreVNA. It has no payload. + +\subsection{RequestFrequencyCorrection} +This packet is used to make the device send the FrequencyCorrection packet. It has no payload. + +\subsection{FrequencyCorrection} +This packet contains the frequency correction factor for the internal reference. It can be transmitted in both directions. When reading the frequency correction, it is transmitted from the device to the host. When writing the frequency correction, it is transmitted from the host to the device. + +The packet contains the following fields: +\begin{ThreePartTable} +\setlength\tabcolsep{3pt} + +\begin{longtable}{p{0.08\textwidth} | p{0.08\textwidth} | p{0.1\textwidth}| p{0.25\textwidth} | p{0.43\textwidth}} +\toprule +\textbf{Offset} &\textbf{Length} &\textbf{Type} & \textbf{Name} &\textbf{Description} \\ +\hline +\endhead +\midrule[\heavyrulewidth] +\endfoot +\midrule[\heavyrulewidth] +%\insertTableNotes % tell LaTeX where to insert the table-related notes +\endlastfoot + +0 & 4 & FLOAT & PPM & Error of the internal TCXO in ppm \\ +\end{longtable} +\end{ThreePartTable} + +\subsection{RequestDeviceConfig} +This packet is used to make the device send the AcquisitionFrequencySettings packet. It has no payload. + +\subsection{DeviceConfig} +This packet contains hardware specific configuration. + +The content of this packet varies according to the hardware version reported in the DeviceInfo packet. Each hardware version sends a different DeviceConfig packet according to the available hardware information. As the different content is implemented as a ``union'' in the protocol layer, the packet size always matches the largest content possible. For hardware versions whose content is smaller, the extra bytes can be ignored. + +These settings are at default values after the device has booted. It is normally not required to send this packet but changing these settings might be useful in special use cases. It can be transmitted in both directions. When reading the acquisition settings, it is transmitted from the device to the host. When writing the acquisition settings, it is transmitted from the host to the device. + +\subsubsection{Hardware Version 0x01} +The packet contains the following fields: +\begin{ThreePartTable} +\setlength\tabcolsep{3pt} + +\begin{longtable}{p{0.08\textwidth} | p{0.08\textwidth} | p{0.1\textwidth}| p{0.25\textwidth} | p{0.43\textwidth}} +\toprule +\textbf{Offset} &\textbf{Length} &\textbf{Type} & \textbf{Name} &\textbf{Description} \\ +\hline +\endhead +\midrule[\heavyrulewidth] +\endfoot +\midrule[\heavyrulewidth] +%\insertTableNotes % tell LaTeX where to insert the table-related notes +\endlastfoot + +0 & 4 & UINT32 & 1.IF frequency & 1.IF frequency in Hz \\ +4 & 1 & UINT8 & ADC prescaler & Prescaler used for the ADC sampling (refer to the FPGA protocol) \\ +5 & 2 & UINT16 & DFT phase increment & Phase increment of the DFT between ADC samples (refer to the FPGA protocol). Together with the ADC prescaler it also sets the 2.IF frequency. \\ +\end{longtable} +\end{ThreePartTable} + +\subsubsection{Hardware Version 0xFF} +The packet contains the following fields: +\begin{ThreePartTable} +\setlength\tabcolsep{3pt} + +\begin{longtable}{p{0.08\textwidth} | p{0.08\textwidth} | p{0.1\textwidth}| p{0.25\textwidth} | p{0.43\textwidth}} +\toprule +\textbf{Offset} &\textbf{Length} &\textbf{Type} & \textbf{Name} &\textbf{Description} \\ +\hline +\endhead +\midrule[\heavyrulewidth] +\endfoot +\midrule[\heavyrulewidth] +%\insertTableNotes % tell LaTeX where to insert the table-related notes +\endlastfoot + +0 & 4 & UINT32 & IP address\tnote{s} & IPv4 address in network byte order \\ +4 & 4 & UINT32 & IP mask\tnote{s} & IPv4 mask in network byte order \\ +8 & 4 & UINT32 & IP gateway\tnote{s} & IPv4 gateway address in network byte order \\ +12 & 1 & UINT8 & DHCP\tnote{s} & 1 if DHCP is enabled, 0 otherwise \\ +12 & 2 & UINT16 & Gain Config & Additional gain configuration bits, see below \\ +\end{longtable} +\begin{tablenotes} +\item[s] This parameter is stored on the device and retains its value after a reboot. +\end{tablenotes} +\end{ThreePartTable} + +\paragraph{Gain Config:} +\begin{center} +\begin{tikzpicture} +\bitrect{16}{16-\bit} +\robits{0}{7}{} +\rwbits{7}{4}{RefGain} +\rwbits{11}{4}{PortGain} +\rwbits{15}{1}{AG} +\end{tikzpicture} +\end{center} +\begin{itemize} +\item \textbf{RefGain/PortGain:} Gain setting of the PGA in the frontend of the port or reference receiver. +\begin{center} +\begin{tabular}{ c|c } +Setting & Gain\\ + \hline +0 & 1 V/V \\ +1 & 10 V/V\\ +2 & 20 V/V\\ +3 & 30 V/V\\ +4 & 40 V/V\\ +5 & 60 V/V\\ +6 & 80 V/V\\ +7 & 120 V/V\\ +8 & 157 V/V\\ +9 & 0.25 V/V\\ +\end{tabular} +\end{center} +\item \textbf{AG:} Autogain. If set to 1, the gain values are ignored and the best PGA gain for each point is automatically determined while sweeping (reduces sweep speed). +\end{itemize} + +\subsection{DeviceStatus} +This packet contains the status of the device. It can be requested by sending a RequestDeviceStatus packet. The device also sends this packet on its own. The interval in which this packet is sent depends on the currently active mode. + +The content of this packet varies according to the hardware version reported in the DeviceInfo packet. Each hardware version sends a different DeviceStatus packet according to the available hardware information. As the different content is implemented as a ``union'' in the protocol layer, the packet size always matches the largest content possible. For hardware versions whose content is smaller, the extra bytes can be ignored. + +\subsubsection{Hardware Version 0x01} +The packet contains the following fields: +\begin{ThreePartTable} +\setlength\tabcolsep{3pt} + +\begin{longtable}{p{0.08\textwidth} | p{0.08\textwidth} | p{0.1\textwidth}| p{0.25\textwidth} | p{0.43\textwidth}} +\toprule +\textbf{Offset} &\textbf{Length} &\textbf{Type} & \textbf{Name} &\textbf{Description} \\ +\hline +\endhead +\midrule[\heavyrulewidth] +\endfoot +\midrule[\heavyrulewidth] +%\insertTableNotes % tell LaTeX where to insert the table-related notes +\endlastfoot + +0 & 1 & UINT8 & StatusBits & Bitmap of various states. See below.\\ +1 & 1 & UINT8 & temp\_source & Temperature of the source PLL in \si{\celsius} \\ +2 & 1 & UINT8 & temp\_LO1 & Temperature of the 1.LO PLL in \si{\celsius} \\ +3 & 1 & UINT8 & temp\_MCU & Temperature of the microcontroller in \si{\celsius} \\ +\end{longtable} +\end{ThreePartTable} + +\paragraph{StatusBits:} +\begin{center} +\begin{tikzpicture} +\bitrect{8}{8-\bit} +\robits{0}{1}{} +\rwbits{1}{1}{ULV} +\rwbits{2}{1}{OVL} +\rwbits{3}{1}{LLO} +\rwbits{4}{1}{SLO} +\rwbits{5}{1}{FC} +\rwbits{6}{1}{ERU} +\rwbits{7}{1}{ERA} +\end{tikzpicture} +\end{center} +\begin{itemize} +\item \textbf{ULV:} Unlevel. The requested output signal amplitude can not be reached. This is not actually measured and based on calculations only. +\item \textbf{OVL:} ADC overload. The amplitude of at least one of the ADCs reached the non-linear region and the signal level can not be trusted. +\item \textbf{LLO:} 1.LO locked. +\item \textbf{SLO:} Source locked. +\item \textbf{FC:} FPGA successfully configured. +\item \textbf{ERU:} External reference used. The external reference input is used for all PLLs. +\item \textbf{ERA:} External reference available. A signal is detected at the external reference input. +\end{itemize} + +\subsubsection{Hardware Version 0xFF} +The packet contains the following fields: +\begin{ThreePartTable} +\setlength\tabcolsep{3pt} + +\begin{longtable}{p{0.08\textwidth} | p{0.08\textwidth} | p{0.1\textwidth}| p{0.25\textwidth} | p{0.43\textwidth}} +\toprule +\textbf{Offset} &\textbf{Length} &\textbf{Type} & \textbf{Name} &\textbf{Description} \\ +\hline +\endhead +\midrule[\heavyrulewidth] +\endfoot +\midrule[\heavyrulewidth] +%\insertTableNotes % tell LaTeX where to insert the table-related notes +\endlastfoot + +0 & 1 & UINT8 & StatusBits & Bitmap of various states. See below.\\ +1 & 1 & UINT8 & temp\_MCU & Temperature of the microcontroller in \si{\celsius} \\ +\end{longtable} +\end{ThreePartTable} + +\paragraph{StatusBits:} +\begin{center} +\begin{tikzpicture} +\bitrect{8}{8-\bit} +\robits{0}{4}{} +\rwbits{4}{1}{ULV} +\rwbits{5}{1}{OVL} +\rwbits{6}{1}{LLO} +\rwbits{7}{1}{SLO} +\end{tikzpicture} +\end{center} +\begin{itemize} +\item \textbf{ULV:} Unlevel. The requested output signal amplitude can not be reached. This is not actually measured and based on calculations only. +\item \textbf{OVL:} ADC overload. The amplitude of at least one of the ADCs reached the non-linear region and the signal level can not be trusted. +\item \textbf{LLO:} 1.LO locked. +\item \textbf{SLO:} Source locked. +\end{itemize} + +\subsection{RequestDeviceStatus} +This packet is used to make the device send the DeviceStatus packet. It has no payload. + +\subsection{VNADatapoint} +The VNADatapoint packet is generated by the device for every completed sweep point when in VNA mode. +\begin{important} +This packet has the CRC set to 0x00000000 as the CRC calculation would take too long when using high IF bandwidths. +\end{important} + +The packet contains the following fields: +\begin{ThreePartTable} +\setlength\tabcolsep{3pt} + +\begin{longtable}{p{0.08\textwidth} | p{0.08\textwidth} | p{0.1\textwidth}| p{0.25\textwidth} | p{0.43\textwidth}} +\toprule +\textbf{Offset} &\textbf{Length} &\textbf{Type} & \textbf{Name} &\textbf{Description} \\ +\hline +\endhead +\midrule[\heavyrulewidth] +\endfoot +\midrule[\heavyrulewidth] +%\insertTableNotes % tell LaTeX where to insert the table-related notes +\endlastfoot + +0 & 8 & UINT64 & Frequency & Frequency of the sweep point in Hz\\ +8 & 2 & INT16 & PowerLevel & Stimulus level of the sweep point in $\frac{1}{100}$dBm \\ +10 & 2 & UINT16 & PointNumber & Number of this point in the sweep \\ +12 & 4*x & Array of FLOAT & Real values & The real parts of a variable amount of receiver data \\ +12+4*x & 4*x & Array of FLOAT & Imag values & The imaginary parts of a variable amount of receiver data \\ +12+8*x & 1*x & UINT8 & Array of UINT8 & Variable amount of data description bitmasks\\ +\end{longtable} +\end{ThreePartTable} + +The sampling data consists of a variable amount of values. The amount of values depend on the amount of configured stages and also on the hardware architecture (might change in the future). The VNADatapoint contains three arrays of equal length. Two of the arrays contain the real and imaginary parts of the acquired data. The third array contains a bitmask for every value, describing the content. The length of all arrays is not explicitly transmitted and must be inferred from the overall packet length. + + +\paragraph{Data description bitmask:} +\begin{center} +\begin{tikzpicture} +\bitrect{8}{8-\bit} +\rwbits{0}{3}{Stage} +\rwbits{3}{1}{Ref} +\rwbits{4}{1}{P4} +\rwbits{5}{1}{P3} +\rwbits{6}{1}{P2} +\rwbits{7}{1}{P1} +\end{tikzpicture} +\end{center} +\begin{itemize} +\item \textbf{Stage:} The active stage when the value was acquired. The port on which the stimulus was active during this stage is known from the SweepSettings packet that was used to set up the currently active sweep. +\item \textbf{Ref:} The value is from a reference receiver. +\item \textbf{P4:} The value is from a port 4 receiver. +\item \textbf{P3:} The value is from a port 3 receiver. +\item \textbf{P2:} The value is from a port 2 receiver. +\item \textbf{P1:} The value is from a port 1 receiver. +\end{itemize} +In case of a three receiver architecture (as the LibreVNA 1.0 has), multiple port bits can be set for reference receiver values. For a typical full two-port sweep, the LibreVNA 1.0 will generate six values for every sweep point: +\begin{ThreePartTable} +\setlength\tabcolsep{3pt} + +\begin{longtable}{p{0.08\textwidth} | p{0.1\textwidth} | p{0.6\textwidth}} +\toprule +\textbf{\#} &\textbf{Bitmask} &\textbf{Content} \\ +\hline +\endhead +\midrule[\heavyrulewidth] +\endfoot +\midrule[\heavyrulewidth] +%\insertTableNotes % tell LaTeX where to insert the table-related notes +\endlastfoot + +1 & 0x01 & Port 1 receiver signal during stage 0 \\ +2 & 0x02 & Port 2 receiver signal during stage 0 \\ +3 & 0x13 & Reference receiver signal during stage 0 \\ +4 & 0x21 & Port 1 receiver signal during stage 1 \\ +5 & 0x22 & Port 2 receiver signal during stage 1 \\ +6 & 0x33 & Reference receiver signal during stage 1 \\ +\end{longtable} +\end{ThreePartTable} + +The host must assemble the S-parameter data from these receiver values. This calculation has to be offloaded to the host because the reference and port receiver measurements may be split across different devices when synchronizing multiple LibreVNAs. + +\paragraph{Example procedure to assemble S21} +Some definitions and assumptions: +\begin{itemize} +\item S21 is the through measurement from port 1 to port 2, meaning we need the reference receiver data from port 1 and the port receiver data from port 2 +\item Port 1 had the stimulus signal at stage 0 and port 2 had the stimulus signal at stage 1. This is the default for a full two-port sweep. If configured differently in the SweepSettings packet, adjust the stage values accordingly +\end{itemize} + +\hfill\newline +The host must perform the following operations: +\begin{enumerate} +\item Wait for reception of a VNADatapoint packet +\item Determine the array length of the received data: $$array\_length = (packet\_size - 12) / 9$$ +\item Find the port receiver data of port 2 for the correct stage (when port 1 had the stimulus, in this example stage 0) +\begin{enumerate} +\item Iterate over all data description bitmasks in the VNADatapoint +\item Find the one with bitmask 0b0000xx1x (stage 0, port 2, not a reference receiver measurement). Bits marked ``x'' are ``don't care''. +\item Note the index $n$ of this data description bitmask in the data description bitmask array +\item Use the index $n$ to get the real and imaginary values of the port receiver data from the real and imaginary arrays: $$port\_receiver = Real\_values[n] + i * Imag\_values[n]$$ +\end{enumerate} +\item Find the reference receiver data of port 1 for the correct stage (when port 1 had the stimulus, in this example stage 0) +\begin{enumerate} +\item Iterate over all data description bitmasks in the VNADatapoint +\item Find the one with bitmask 0b0001xxx1 (stage 0, port 1, reference receiver measurement). Bits marked ``x'' are ``don't care''. +\item Note the index $n$ of this data description bitmask in the data description bitmask array +\item Use the index $n$ to get the real and imaginary values of the reference receiver data from the real and imaginary arrays: $$reference\_receiver = Real\_values[n] + i * Imag\_values[n]$$ +\end{enumerate} +\item Calculate S21 as the ratio between the port and reference receiver data: $$ S21 = \frac{port\_receiver}{reference\_receiver}$$ +\end{enumerate} + +\subsection{SetTrigger} +This packet is used when multiple devices are synchronized over the data protocol and can be transmitted in both directions. It has no payload. Synchronized devices must be logically organized in a closed loop. When a SetTrigger packet is received from any devices in the loop it must be passed on to the next device in the loop. + +\subsection{ClearTrigger} +This packet is used when multiple devices are synchronized over the data protocol and can be transmitted in both directions. It has no payload. Synchronized devices must be logically organized in a closed loop. When a ClearTrigger packet is received from any devices in the loop it must be passed on to the next device in the loop. + +\subsection{StopStatusUpdates} +This packet instructs the device to stop sending automatically scheduled DeviceStatus packets. Device status can still be requested explicitly via RequestDeviceStatus packets. + +\subsection{StartStatusUpdates} +This packet instructs the device to start sending automatically scheduled DeviceStatus packets. This restores default update behaviour if a StopStatusUpdates packet has previously been sent. + +\subsection{InitiateSweep} +This packet instructs the device to initiate a new single sweep when the VNA is configured for standby operation. This triggering method can be used for fast intermittent single sweeps with minimum latency. If the SweepSettings are not configured for standby operation, this packet will result in a Nack response. + +\end{document} diff --git a/Software/PC_Application/LibreVNA-GUI/Device/LibreVNA/librevnadriver.cpp b/Software/PC_Application/LibreVNA-GUI/Device/LibreVNA/librevnadriver.cpp index 3458a11..64d4a6f 100644 --- a/Software/PC_Application/LibreVNA-GUI/Device/LibreVNA/librevnadriver.cpp +++ b/Software/PC_Application/LibreVNA-GUI/Device/LibreVNA/librevnadriver.cpp @@ -245,7 +245,7 @@ QString LibreVNADriver::getStatus() } break; case 0xFF: - ret.append("MCU Temp: "+QString::number(lastStatus.VFF.temp_MCU)+"°C"); + ret.append(" MCU Temp: "+QString::number(lastStatus.VFF.temp_MCU)+"°C"); break; } return ret; @@ -358,6 +358,8 @@ bool LibreVNADriver::setVNA(const DeviceDriver::VNASettings &s, std::function cb) QStringList LibreVNADriver::availableExtRefInSettings() { QStringList ret; - for(auto r : Reference::getReferencesIn()) { - ret.push_back(Reference::TypeToLabel(r)); + if(hardwareVersion == 0x01) { + for(auto r : Reference::getReferencesIn()) { + ret.push_back(Reference::TypeToLabel(r)); + } } return ret; } @@ -491,8 +495,10 @@ QStringList LibreVNADriver::availableExtRefInSettings() QStringList LibreVNADriver::availableExtRefOutSettings() { QStringList ret; - for(auto r : Reference::getOutFrequencies()) { - ret.push_back(Reference::OutFreqToLabel(r)); + if(hardwareVersion == 0x01) { + for(auto r : Reference::getOutFrequencies()) { + ret.push_back(Reference::OutFreqToLabel(r)); + } } return ret; } @@ -579,8 +585,7 @@ void LibreVNADriver::handleReceivedPacket(const Protocol::PacketInfo &packet) Feature::SA, Feature::SATrackingGenerator, Feature::SATrackingOffset, Feature::ExtRefIn, Feature::ExtRefOut, }; - auto ports = packet.info.hardware_version == 0xFF ? 1 : 2; - info.Limits.VNA.ports = ports; + info.Limits.VNA.ports = packet.info.num_ports; info.Limits.VNA.minFreq = packet.info.limits_minFreq; info.Limits.VNA.maxFreq = harmonicMixing ? packet.info.limits_maxFreqHarmonic : packet.info.limits_maxFreq; info.Limits.VNA.maxPoints = packet.info.limits_maxPoints; @@ -589,13 +594,13 @@ void LibreVNADriver::handleReceivedPacket(const Protocol::PacketInfo &packet) info.Limits.VNA.mindBm = (double) packet.info.limits_cdbm_min / 100; info.Limits.VNA.maxdBm = (double) packet.info.limits_cdbm_max / 100; - info.Limits.Generator.ports = ports; + info.Limits.Generator.ports = packet.info.num_ports; info.Limits.Generator.minFreq = packet.info.limits_minFreq; info.Limits.Generator.maxFreq = packet.info.limits_maxFreq; info.Limits.Generator.mindBm = (double) packet.info.limits_cdbm_min / 100; info.Limits.Generator.maxdBm = (double) packet.info.limits_cdbm_max / 100; - info.Limits.SA.ports = ports; + info.Limits.SA.ports = packet.info.num_ports; info.Limits.SA.minFreq = packet.info.limits_minFreq; info.Limits.SA.maxFreq = packet.info.limits_maxFreq; info.Limits.SA.minRBW = packet.info.limits_minRBW; diff --git a/Software/VNA_embedded/.settings/stm32cubeide.project.prefs b/Software/VNA_embedded/.settings/stm32cubeide.project.prefs index 35098be..bdf9c08 100644 --- a/Software/VNA_embedded/.settings/stm32cubeide.project.prefs +++ b/Software/VNA_embedded/.settings/stm32cubeide.project.prefs @@ -1,5 +1,5 @@ -2F62501ED4689FB349E356AB974DBE57=EF826FD321FB312AEADE4DB74B81458C +2F62501ED4689FB349E356AB974DBE57=6F84FD31C089E822CF61FFCABCD0B7D1 66BE74F758C12D739921AEA421D593D3=2 -8DF89ED150041C4CBC7CB9A9CAA90856=EF826FD321FB312AEADE4DB74B81458C +8DF89ED150041C4CBC7CB9A9CAA90856=6F84FD31C089E822CF61FFCABCD0B7D1 DC22A860405A8BF2F2C095E5B6529F12=A01929E06A3F8E0B7C263320E5AF494F eclipse.preferences.version=1 diff --git a/Software/VNA_embedded/Application/Communication/Protocol.hpp b/Software/VNA_embedded/Application/Communication/Protocol.hpp index fbcfdcd..58defaf 100644 --- a/Software/VNA_embedded/Application/Communication/Protocol.hpp +++ b/Software/VNA_embedded/Application/Communication/Protocol.hpp @@ -10,7 +10,7 @@ using namespace PacketConstants; namespace Protocol { -static constexpr uint16_t Version = 12; +static constexpr uint16_t Version = 13; #pragma pack(push, 1) @@ -158,21 +158,27 @@ using SweepSettings = struct _sweepSettings { uint16_t points; uint32_t if_bandwidth; int16_t cdbm_excitation_start; // in 1/100 dbm - uint16_t standby:1; - uint16_t syncMaster:1; - uint16_t suppressPeaks:1; - uint16_t fixedPowerSetting:1; // if set the attenuator and source PLL power will not be changed across the sweep - uint16_t logSweep:1; - uint16_t stages:3; - uint16_t port1Stage:3; - uint16_t port2Stage:3; + uint8_t standby:1; + uint8_t syncMaster:1; + uint8_t suppressPeaks:1; + uint8_t fixedPowerSetting:1; // if set the attenuator and source PLL power will not be changed across the sweep + uint8_t logSweep:1; /* * 0: no synchronization * 1: USB synchronization * 2: External reference synchronization * 3: Trigger synchronization (not supported yet by hardware) */ - uint16_t syncMode:2; + uint8_t syncMode:2; + uint8_t unused1:1; + + uint16_t stages:3; + uint16_t port1Stage:3; + uint16_t port2Stage:3; + uint16_t port3Stage:3; + uint16_t port4Stage:3; + uint16_t unused2:1; + int16_t cdbm_excitation_stop; // in 1/100 dbm }; @@ -185,8 +191,9 @@ using ReferenceSettings = struct _referenceSettings { using GeneratorSettings = struct _generatorSettings { uint64_t frequency; int16_t cdbm_level; - uint8_t activePort :2; + uint8_t activePort :3; uint8_t applyAmplitudeCorrection :1; + uint8_t unused :4; }; using DeviceInfo = struct _deviceInfo { @@ -207,6 +214,7 @@ using DeviceInfo = struct _deviceInfo { uint32_t limits_maxRBW; uint8_t limits_maxAmplitudePoints; uint64_t limits_maxFreqHarmonic; + uint8_t num_ports; }; using DeviceStatus = struct _deviceStatus { @@ -307,11 +315,11 @@ using ManualControl = struct _manualControl { uint8_t LOexternal :1; uint64_t LOFrequency; // Acquisition - uint8_t PortEN :1; - uint8_t RefEN :1; - uint8_t WindowType :2; - uint8_t PortGain :4; - uint8_t RefGain :4; + uint16_t PortEN :1; + uint16_t RefEN :1; + uint16_t WindowType :2; + uint16_t PortGain :4; + uint16_t RefGain :4; uint16_t Samples; } VFF; }; @@ -329,11 +337,11 @@ using SpectrumAnalyzerSettings = struct _spectrumAnalyzerSettings { uint8_t applyReceiverCorrection :1; uint8_t trackingGenerator :1; uint8_t applySourceCorrection :1; - uint8_t trackingGeneratorPort :1; // 0 for port1, 1 for port2 + uint8_t trackingGeneratorPort :2; // port count starts at zero /* * 0: no synchronization - * 1: USB synchronization - * 2: External reference synchronization + * 1: Protocol synchronization (via SetTrigger and ClearTrigger packets) + * 2: Reserved * 3: Trigger synchronization (not supported yet by hardware) */ uint8_t syncMode :2; @@ -345,6 +353,8 @@ using SpectrumAnalyzerSettings = struct _spectrumAnalyzerSettings { using SpectrumAnalyzerResult = struct _spectrumAnalyzerResult { float port1; float port2; + float port3; + float port4; union { struct { // for non-zero span @@ -370,6 +380,8 @@ using AmplitudeCorrectionPoint = struct _amplitudecorrectionpoint { uint32_t freq; int16_t port1; int16_t port2; + int16_t port3; + int16_t port4; }; using FrequencyCorrection = struct _frequencycorrection { @@ -387,7 +399,8 @@ using DeviceConfig = struct _deviceconfig { uint32_t ip; uint32_t mask; uint32_t gw; - uint16_t dhcp :1; + uint8_t dhcp :1; + uint8_t unused :7; uint16_t autogain :1; uint16_t portGain :4; uint16_t refGain :4; diff --git a/Software/VNA_embedded/Application/Hardware.hpp b/Software/VNA_embedded/Application/Hardware.hpp index 97d5ffc..44bf31c 100644 --- a/Software/VNA_embedded/Application/Hardware.hpp +++ b/Software/VNA_embedded/Application/Hardware.hpp @@ -83,6 +83,7 @@ static constexpr Protocol::DeviceInfo Info = { .limits_maxRBW = (uint32_t) (DefaultADCSamplerate * 2.23f / MinSamples), .limits_maxAmplitudePoints = Cal::maxPoints, .limits_maxFreqHarmonic = 18000000000, + .num_ports = 2, }; enum class Mode {