Blockdiagrams
This commit is contained in:
parent
a5fd97731c
commit
efcd5e8347
BIN
Documentation/DeveloperInfo/DigitalBlockdiagram.pdf
Normal file
BIN
Documentation/DeveloperInfo/DigitalBlockdiagram.pdf
Normal file
Binary file not shown.
222
Documentation/DeveloperInfo/DigitalBlockdiagram.tex
Normal file
222
Documentation/DeveloperInfo/DigitalBlockdiagram.tex
Normal file
@ -0,0 +1,222 @@
|
||||
\documentclass[border=10pt]{standalone}
|
||||
\usepackage{tikz}
|
||||
\usepackage[european,siunitx,rotatelabels]{circuitikzgit}
|
||||
\usetikzlibrary{arrows,calc,positioning}
|
||||
|
||||
\newcommand{\divider}[1]
|
||||
{ % #1 = name
|
||||
\begin{scope}[transform shape]
|
||||
\draw[thick] (#1)node[](a){} +(-12pt,-12pt) rectangle +(12pt,12pt);
|
||||
\draw (a)+(12pt, 12pt)--+(-12pt,-12pt);
|
||||
\draw (a)+(-5pt,6pt) node[](){\footnotesize -45};
|
||||
\draw (a)+(4pt,-7pt) node[](){\footnotesize +45};
|
||||
\end{scope}
|
||||
}
|
||||
|
||||
|
||||
\newlength{\ResUp} \newlength{\ResDown}
|
||||
\newlength{\ResLeft} \newlength{\ResRight}
|
||||
\newlength{\ResRadius} \newlength{\ResMiddle}
|
||||
|
||||
\makeatletter
|
||||
%%%% new anchors: "out A" and "out B"
|
||||
\expandafter\def\csname pgf@anchor@rectangle@out A\endcsname{% output A: below .east
|
||||
\pgf@process{\southwest}%
|
||||
\pgf@ya=0.25\pgf@y%
|
||||
\pgf@process{\northeast}%
|
||||
\pgf@y=0.75\pgf@y%
|
||||
\advance\pgf@y by\pgf@ya }% end of out A
|
||||
\expandafter\def\csname pgf@anchor@rectangle@out B\endcsname{% output B: above .east
|
||||
\pgf@process{\southwest}%
|
||||
\pgf@ya=0.75\pgf@y%
|
||||
\pgf@process{\northeast}%
|
||||
\pgf@y=0.25\pgf@y%
|
||||
\advance\pgf@y by\pgf@ya } % end of out B
|
||||
\expandafter\def\csname pgf@anchor@rectangle@DUT\endcsname{% output DUT: above .east
|
||||
\pgf@process{\southwest}%
|
||||
\pgf@ya=0.1\pgf@y%
|
||||
\pgf@process{\northeast}%
|
||||
\pgf@y=0.9\pgf@y%
|
||||
\advance\pgf@y by\pgf@ya } % end of DUT
|
||||
\expandafter\def\csname pgf@anchor@rectangle@ret p\endcsname{% output ret p: above .east
|
||||
\pgf@process{\northeast}%
|
||||
\pgf@ya=0.9\pgf@y%
|
||||
\pgf@process{\southwest}%
|
||||
\pgf@y=0.1\pgf@y%
|
||||
\advance\pgf@y by\pgf@ya } % end of ret p
|
||||
\expandafter\def\csname pgf@anchor@rectangle@ret n\endcsname{% output ret n: above .east
|
||||
\pgf@process{\northeast}%
|
||||
\pgf@ya=0.7\pgf@y%
|
||||
\pgf@process{\southwest}%
|
||||
\pgf@y=0.3\pgf@y%
|
||||
\advance\pgf@y by\pgf@ya } % end of ret n
|
||||
\expandafter\def\csname pgf@anchor@rectangle@ret c\endcsname{% output ret c: above .east
|
||||
\pgf@process{\northeast}%
|
||||
\pgf@ya=0.8\pgf@y%
|
||||
\pgf@process{\southwest}%
|
||||
\pgf@y=0.2\pgf@y%
|
||||
\advance\pgf@y by\pgf@ya } % end of ret c
|
||||
|
||||
|
||||
\def\TikzBipolePath#1#2{\pgf@circ@bipole@path{#1}{#2}}
|
||||
\def\CircDirection{\pgf@circ@direction}
|
||||
%\pgf@circ@Rlen = \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
|
||||
\let\ResLen=\pgf@circ@Rlen
|
||||
\makeatother
|
||||
|
||||
\newcommand{\Compass}% define anchors for compass points
|
||||
{\anchor{north east}{\northeast}
|
||||
\anchor{south west}{\southwest}
|
||||
\anchor{north}{\pgfextracty{\ResUp}{\northeast}\pgfpoint{0cm}{\ResUp}}
|
||||
\anchor{north west}{\pgfextracty{\ResUp}{\northeast}\pgfextractx{\ResLeft}{\southwest}\pgfpoint{\ResLeft}{\ResUp}}
|
||||
\anchor{west}{\pgfextractx{\ResLeft}{\southwest}\pgfpoint{\ResLeft}{0cm}}
|
||||
\anchor{south}{\pgfextracty{\ResDown}{\southwest}\pgfpoint{0cm}{\ResDown}}
|
||||
\anchor{south east}{\pgfextracty{\ResDown}{\southwest}\pgfextractx{\ResRight}{\northeast}\pgfpoint{\ResRight}{\ResDown}}
|
||||
\anchor{east}{\pgfextractx{\ResRight}{\northeast}\pgfpoint{\ResRight}{0cm}}}
|
||||
|
||||
% ***************************** ADC *********************************
|
||||
% extra anchors out,in1,in2,vref
|
||||
|
||||
\ctikzset{bipoles/ADC/width/.initial=1}
|
||||
\ctikzset{bipoles/ADC/height/.initial=.5}
|
||||
\ctikzset{bipoles/ADC/middle/.initial=-.25}
|
||||
\ctikzset{bipoles/ADC/part/.initial={}}
|
||||
|
||||
\def\drawADC{% used by both bipole and node
|
||||
\ResRight=\ctikzvalof{bipoles/ADC/width}\ResLen
|
||||
\ResRight=0.5\ResRight
|
||||
\ResLeft=-\ResRight
|
||||
\ResUp=\ctikzvalof{bipoles/ADC/height}\ResLen
|
||||
\ResUp=0.5\ResUp
|
||||
\ResDown=-\ResUp
|
||||
\ResMiddle=\ctikzvalof{bipoles/ADC/middle}\ResLen
|
||||
\pgfpathmoveto{\pgfpoint{\ResLeft}{0pt}}
|
||||
\pgfpathlineto{\pgfpoint{\ResMiddle}{\ResUp}}
|
||||
\pgfpathlineto{\pgfpoint{\ResRight}{\ResUp}}
|
||||
\pgfpathlineto{\pgfpoint{\ResRight}{\ResDown}}
|
||||
\pgfpathlineto{\pgfpoint{\ResMiddle}{\ResDown}}
|
||||
\pgfpathlineto{\pgfpoint{\ResLeft}{0pt}}
|
||||
\pgfpathclose
|
||||
\pgfusepath{draw}
|
||||
\pgftext{\texttt{\ctikzvalof{bipoles/ADC/part}}}
|
||||
}
|
||||
|
||||
\pgfcircdeclarebipole{}% no extra anchors for bipole version
|
||||
{\ctikzvalof{bipoles/ADC/height}}
|
||||
{ADC}
|
||||
{\ctikzvalof{bipoles/ADC/height}}
|
||||
{\ctikzvalof{bipoles/ADC/width}}
|
||||
{\pgfsetlinewidth{\ctikzvalof{bipoles/thickness}\pgfstartlinewidth}\drawADC}
|
||||
|
||||
\def\ADCpath#1{\TikzBipolePath{ADC}{#1}}
|
||||
\tikzset{ADC/.style = {\circuitikzbasekey, /tikz/to path=\ADCpath, l_=#1}}
|
||||
|
||||
\pgfdeclareshape{dADC}{%
|
||||
\anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
|
||||
|
||||
\anchor{text} % this is used to center the text in the node
|
||||
{\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}
|
||||
|
||||
\savedmacro{\resize}{ % called automatically
|
||||
\ResRight=\ctikzvalof{bipoles/ADC/width}\ResLen
|
||||
\ResRight=0.5\ResRight
|
||||
\ResLeft=-\ResRight
|
||||
\ResUp=\ctikzvalof{bipoles/ADC/height}\ResLen
|
||||
\ResUp=0.5\ResUp
|
||||
\ResDown=-\ResUp
|
||||
\ResMiddle=\ctikzvalof{bipoles/ADC/middle}\ResLen
|
||||
\ResRadius=\ResMiddle% location of in1 and in2
|
||||
\advance\ResRadius by \ResLeft
|
||||
\ResRadius=0.5\ResRadius
|
||||
}% while these can be used for savedanchors, they will be fogotten by anchors
|
||||
|
||||
\savedanchor{\northeast}{\pgfpoint{\ResRight}{\ResUp}}
|
||||
\savedanchor{\southwest}{\pgfpoint{\ResLeft}{\ResDown}}
|
||||
|
||||
\savedanchor\InOne{\pgfpoint{\ResRadius}{0.5\ResUp}}
|
||||
\savedanchor\InTwo{\pgfpoint{\ResRadius}{0.5\ResDown}}
|
||||
\savedanchor\Out{\pgfpoint{\ResRight}{0pt}}
|
||||
\savedanchor\Vref{\pgfpoint{0pt}{\ResDown}}
|
||||
|
||||
\Compass% standard anchors
|
||||
|
||||
\anchor{in1}{\InOne}
|
||||
\anchor{in2}{\InTwo}
|
||||
\anchor{out}{\Out}
|
||||
\anchor{vref}{\Vref}
|
||||
|
||||
\foregroundpath{
|
||||
\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgflinewidth}
|
||||
\drawADC}
|
||||
}
|
||||
|
||||
\tikzset%
|
||||
{
|
||||
synthesizer/.style ={rectangle, draw, semithick, minimum height=20mm, minimum width=25mm,
|
||||
append after command={\pgfextra{\let\LN\tikzlastnode
|
||||
\node[draw, right=0.15cm,font=\footnotesize, anchor=west](pll) at (\LN.west) {PLL};
|
||||
\node[oscillator,box,left=0.15cm,anchor=east](osc) at ( \LN.east){};
|
||||
\node[anchor=north] at(\LN.north){#1};
|
||||
\draw[-latex] (pll.east)--(osc.west);
|
||||
\draw[-latex] (osc.south)--++(0,-0.2cm)-|(pll.south);
|
||||
}}
|
||||
},
|
||||
synthesizer/.default = {}
|
||||
}
|
||||
|
||||
|
||||
\begin{document}
|
||||
|
||||
\begin{circuitikz}
|
||||
% Microcontroller
|
||||
\node[draw,minimum width=3cm, minimum height = 2cm, align=center] (uC) at (-3,0) {Microcontroller\\STM32G431};
|
||||
\node[anchor=east] (usb) at (-6, 0){USB C};
|
||||
\draw[latex-latex] ([yshift=1mm]usb.east)--([yshift=1mm]uC.west) node[midway,above, anchor=south,font=\tiny]{USB 2.0 FS};
|
||||
\draw[latex-latex] ([yshift=-1mm]usb.east)--([yshift=-1mm]uC.west) node[midway,below, anchor=north,font=\tiny]{USB PD};
|
||||
|
||||
\node[anchor=south, align=center] (led) at (-3.5, 2) {Booting\\LED};
|
||||
\draw[-latex]([xshift=-0.5cm]uC.north)--(led);
|
||||
|
||||
% Flash
|
||||
\node[draw, align=center] (flash) at (-3,-2) {FLASH};
|
||||
\draw[latex-latex] (uC.south)--(flash.north) node[midway,above, anchor=west,font=\tiny]{SPI};
|
||||
|
||||
% FPGA
|
||||
\node[draw,minimum width=3cm, minimum height = 2cm, align=center] (fpga) at (2,0) {FPGA\\Spartan 6\\XC6SLX9};
|
||||
\draw[latex-latex] ([yshift=7.5mm]uC.east)--([yshift=7.5mm]fpga.west) node[midway,above, anchor=south,font=\tiny]{SPI};
|
||||
\draw[-latex] ([yshift=2.5mm]uC.east)--([yshift=2.5mm]fpga.west) node[midway,above, anchor=south,font=\tiny]{Control};
|
||||
\draw[latex-] ([yshift=-2.5mm]uC.east)--([yshift=-2.5mm]fpga.west) node[midway,above, anchor=south,font=\tiny]{IRQ};
|
||||
\draw[-latex] ([yshift=-7.5mm]uC.east)--([yshift=-7.5mm]fpga.west) node[midway,above, anchor=south,font=\tiny]{Configuration};
|
||||
\node[anchor=north, below=1cm of fpga] (leds) {LEDs};
|
||||
\draw[-latex](fpga.south)--(leds);
|
||||
|
||||
|
||||
\node[synthesizer={Si5351C},label={[align=center]CLK Distributor}] (Si5351) at (2,3) {};
|
||||
\draw[-latex]([xshift=5mm]uC.north)|-(Si5351.west) node[midway,above, anchor=south,font=\tiny]{I\textsuperscript{2}C};
|
||||
\draw[-latex](Si5351.south)--(fpga.north) node[midway, font=\tiny, anchor=east]{\SI{16}{\mega\hertz} CLK};
|
||||
|
||||
\node[dADC,above right=2cm and 3cm of fpga,xscale=-1] (ADC1) {};
|
||||
\node[font=\footnotesize, align=center] at (ADC1){Port1\\ADC};
|
||||
\node[anchor=south, font=\footnotesize] at (ADC1.north){MCP33131D-10};
|
||||
\draw[-latex](ADC1.east)--++(-1,0)|-([yshift=7.5mm]fpga.east);
|
||||
|
||||
\node[dADC,below=0.5cm of ADC1,xscale=-1] (ADC2) {};
|
||||
\node[font=\footnotesize, align=center] at (ADC2){Port2\\ADC};
|
||||
\node[anchor=south, font=\footnotesize] at (ADC2.north){MCP33131D-10};
|
||||
\draw[-latex](ADC2.east)--++(-0.75,0)|-([yshift=5mm]fpga.east);
|
||||
|
||||
\node[dADC,below=0.5cm of ADC2,xscale=-1] (ADC3) {};
|
||||
\node[font=\footnotesize, align=center] at (ADC3){Ref.\\ADC};
|
||||
\node[anchor=south, font=\footnotesize] at (ADC3.north){MCP33131D-10};
|
||||
\draw[-latex](ADC3.east)--++(-0.5,0)|-([yshift=2.5mm]fpga.east);
|
||||
|
||||
\node[draw, right =1.5cm of fpga, align=center] (rfswitches) {RF attenuator\\and switches};
|
||||
\draw[-latex](fpga.east)--(rfswitches.west);
|
||||
|
||||
\node[synthesizer={MAX2871},below = 0.5cm of rfswitches, label={[align=center]HF Source}] (HFSource) {};
|
||||
\draw[latex-](HFSource.west)--++(-0.5,0)|-([yshift=-2.5mm]fpga.east);
|
||||
|
||||
\node[synthesizer={MAX2871},below = 0.5cm of HFSource, label={[align=center]1.LO}] (LO1) {};
|
||||
\draw[latex-](LO1.west)--++(-0.75,0)|-([yshift=-5mm]fpga.east);
|
||||
\end{circuitikz}
|
||||
\end{document}
|
BIN
Documentation/DeveloperInfo/PowerBlockdiagram.pdf
Normal file
BIN
Documentation/DeveloperInfo/PowerBlockdiagram.pdf
Normal file
Binary file not shown.
246
Documentation/DeveloperInfo/PowerBlockdiagram.tex
Normal file
246
Documentation/DeveloperInfo/PowerBlockdiagram.tex
Normal file
@ -0,0 +1,246 @@
|
||||
\documentclass[border=10pt]{standalone}
|
||||
\usepackage{tikz}
|
||||
\usepackage[european,siunitx,rotatelabels]{circuitikzgit}
|
||||
\usetikzlibrary{arrows,calc,positioning}
|
||||
|
||||
\newcommand{\divider}[1]
|
||||
{ % #1 = name
|
||||
\begin{scope}[transform shape]
|
||||
\draw[thick] (#1)node[](a){} +(-12pt,-12pt) rectangle +(12pt,12pt);
|
||||
\draw (a)+(12pt, 12pt)--+(-12pt,-12pt);
|
||||
\draw (a)+(-5pt,6pt) node[](){\footnotesize -45};
|
||||
\draw (a)+(4pt,-7pt) node[](){\footnotesize +45};
|
||||
\end{scope}
|
||||
}
|
||||
|
||||
|
||||
\newlength{\ResUp} \newlength{\ResDown}
|
||||
\newlength{\ResLeft} \newlength{\ResRight}
|
||||
\newlength{\ResRadius} \newlength{\ResMiddle}
|
||||
|
||||
\makeatletter
|
||||
%%%% new anchors: "out A" and "out B"
|
||||
\expandafter\def\csname pgf@anchor@rectangle@out A\endcsname{% output A: below .east
|
||||
\pgf@process{\southwest}%
|
||||
\pgf@ya=0.25\pgf@y%
|
||||
\pgf@process{\northeast}%
|
||||
\pgf@y=0.75\pgf@y%
|
||||
\advance\pgf@y by\pgf@ya }% end of out A
|
||||
\expandafter\def\csname pgf@anchor@rectangle@out B\endcsname{% output B: above .east
|
||||
\pgf@process{\southwest}%
|
||||
\pgf@ya=0.75\pgf@y%
|
||||
\pgf@process{\northeast}%
|
||||
\pgf@y=0.25\pgf@y%
|
||||
\advance\pgf@y by\pgf@ya } % end of out B
|
||||
\expandafter\def\csname pgf@anchor@rectangle@DUT\endcsname{% output DUT: above .east
|
||||
\pgf@process{\southwest}%
|
||||
\pgf@ya=0.1\pgf@y%
|
||||
\pgf@process{\northeast}%
|
||||
\pgf@y=0.9\pgf@y%
|
||||
\advance\pgf@y by\pgf@ya } % end of DUT
|
||||
\expandafter\def\csname pgf@anchor@rectangle@ret p\endcsname{% output ret p: above .east
|
||||
\pgf@process{\northeast}%
|
||||
\pgf@ya=0.9\pgf@y%
|
||||
\pgf@process{\southwest}%
|
||||
\pgf@y=0.1\pgf@y%
|
||||
\advance\pgf@y by\pgf@ya } % end of ret p
|
||||
\expandafter\def\csname pgf@anchor@rectangle@ret n\endcsname{% output ret n: above .east
|
||||
\pgf@process{\northeast}%
|
||||
\pgf@ya=0.7\pgf@y%
|
||||
\pgf@process{\southwest}%
|
||||
\pgf@y=0.3\pgf@y%
|
||||
\advance\pgf@y by\pgf@ya } % end of ret n
|
||||
\expandafter\def\csname pgf@anchor@rectangle@ret c\endcsname{% output ret c: above .east
|
||||
\pgf@process{\northeast}%
|
||||
\pgf@ya=0.8\pgf@y%
|
||||
\pgf@process{\southwest}%
|
||||
\pgf@y=0.2\pgf@y%
|
||||
\advance\pgf@y by\pgf@ya } % end of ret c
|
||||
|
||||
|
||||
\def\TikzBipolePath#1#2{\pgf@circ@bipole@path{#1}{#2}}
|
||||
\def\CircDirection{\pgf@circ@direction}
|
||||
%\pgf@circ@Rlen = \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
|
||||
\let\ResLen=\pgf@circ@Rlen
|
||||
\makeatother
|
||||
|
||||
\newcommand{\Compass}% define anchors for compass points
|
||||
{\anchor{north east}{\northeast}
|
||||
\anchor{south west}{\southwest}
|
||||
\anchor{north}{\pgfextracty{\ResUp}{\northeast}\pgfpoint{0cm}{\ResUp}}
|
||||
\anchor{north west}{\pgfextracty{\ResUp}{\northeast}\pgfextractx{\ResLeft}{\southwest}\pgfpoint{\ResLeft}{\ResUp}}
|
||||
\anchor{west}{\pgfextractx{\ResLeft}{\southwest}\pgfpoint{\ResLeft}{0cm}}
|
||||
\anchor{south}{\pgfextracty{\ResDown}{\southwest}\pgfpoint{0cm}{\ResDown}}
|
||||
\anchor{south east}{\pgfextracty{\ResDown}{\southwest}\pgfextractx{\ResRight}{\northeast}\pgfpoint{\ResRight}{\ResDown}}
|
||||
\anchor{east}{\pgfextractx{\ResRight}{\northeast}\pgfpoint{\ResRight}{0cm}}}
|
||||
|
||||
% ***************************** ADC *********************************
|
||||
% extra anchors out,in1,in2,vref
|
||||
|
||||
\ctikzset{bipoles/ADC/width/.initial=1}
|
||||
\ctikzset{bipoles/ADC/height/.initial=.5}
|
||||
\ctikzset{bipoles/ADC/middle/.initial=-.25}
|
||||
\ctikzset{bipoles/ADC/part/.initial={}}
|
||||
|
||||
\def\drawADC{% used by both bipole and node
|
||||
\ResRight=\ctikzvalof{bipoles/ADC/width}\ResLen
|
||||
\ResRight=0.5\ResRight
|
||||
\ResLeft=-\ResRight
|
||||
\ResUp=\ctikzvalof{bipoles/ADC/height}\ResLen
|
||||
\ResUp=0.5\ResUp
|
||||
\ResDown=-\ResUp
|
||||
\ResMiddle=\ctikzvalof{bipoles/ADC/middle}\ResLen
|
||||
\pgfpathmoveto{\pgfpoint{\ResLeft}{0pt}}
|
||||
\pgfpathlineto{\pgfpoint{\ResMiddle}{\ResUp}}
|
||||
\pgfpathlineto{\pgfpoint{\ResRight}{\ResUp}}
|
||||
\pgfpathlineto{\pgfpoint{\ResRight}{\ResDown}}
|
||||
\pgfpathlineto{\pgfpoint{\ResMiddle}{\ResDown}}
|
||||
\pgfpathlineto{\pgfpoint{\ResLeft}{0pt}}
|
||||
\pgfpathclose
|
||||
\pgfusepath{draw}
|
||||
\pgftext{\texttt{\ctikzvalof{bipoles/ADC/part}}}
|
||||
}
|
||||
|
||||
\pgfcircdeclarebipole{}% no extra anchors for bipole version
|
||||
{\ctikzvalof{bipoles/ADC/height}}
|
||||
{ADC}
|
||||
{\ctikzvalof{bipoles/ADC/height}}
|
||||
{\ctikzvalof{bipoles/ADC/width}}
|
||||
{\pgfsetlinewidth{\ctikzvalof{bipoles/thickness}\pgfstartlinewidth}\drawADC}
|
||||
|
||||
\def\ADCpath#1{\TikzBipolePath{ADC}{#1}}
|
||||
\tikzset{ADC/.style = {\circuitikzbasekey, /tikz/to path=\ADCpath, l_=#1}}
|
||||
|
||||
\pgfdeclareshape{dADC}{%
|
||||
\anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
|
||||
|
||||
\anchor{text} % this is used to center the text in the node
|
||||
{\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}
|
||||
|
||||
\savedmacro{\resize}{ % called automatically
|
||||
\ResRight=\ctikzvalof{bipoles/ADC/width}\ResLen
|
||||
\ResRight=0.5\ResRight
|
||||
\ResLeft=-\ResRight
|
||||
\ResUp=\ctikzvalof{bipoles/ADC/height}\ResLen
|
||||
\ResUp=0.5\ResUp
|
||||
\ResDown=-\ResUp
|
||||
\ResMiddle=\ctikzvalof{bipoles/ADC/middle}\ResLen
|
||||
\ResRadius=\ResMiddle% location of in1 and in2
|
||||
\advance\ResRadius by \ResLeft
|
||||
\ResRadius=0.5\ResRadius
|
||||
}% while these can be used for savedanchors, they will be fogotten by anchors
|
||||
|
||||
\savedanchor{\northeast}{\pgfpoint{\ResRight}{\ResUp}}
|
||||
\savedanchor{\southwest}{\pgfpoint{\ResLeft}{\ResDown}}
|
||||
|
||||
\savedanchor\InOne{\pgfpoint{\ResRadius}{0.5\ResUp}}
|
||||
\savedanchor\InTwo{\pgfpoint{\ResRadius}{0.5\ResDown}}
|
||||
\savedanchor\Out{\pgfpoint{\ResRight}{0pt}}
|
||||
\savedanchor\Vref{\pgfpoint{0pt}{\ResDown}}
|
||||
|
||||
\Compass% standard anchors
|
||||
|
||||
\anchor{in1}{\InOne}
|
||||
\anchor{in2}{\InTwo}
|
||||
\anchor{out}{\Out}
|
||||
\anchor{vref}{\Vref}
|
||||
|
||||
\foregroundpath{
|
||||
\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgflinewidth}
|
||||
\drawADC}
|
||||
}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\begin{circuitikz}
|
||||
% Microcontroller
|
||||
\node[draw, align=center] (pwrswitch) at (0,0) {Power\\Selector};
|
||||
\node[anchor=east, below left=1cm and 1cm of pwrswitch] (usb) {USB C};
|
||||
\draw[-latex] (usb.east)-|(pwrswitch.south);
|
||||
\node[anchor=east, left=1cm of pwrswitch, align=center] (ext) {External\\Power};
|
||||
\draw[-latex] (ext.east)--(pwrswitch.west);
|
||||
\coordinate (5V) at (1.5,0);
|
||||
\draw(pwrswitch.east) to[short, -*](5V);
|
||||
\node[above] at (5V) {\SI{5}{\volt}};
|
||||
|
||||
\node[draw] (boost) at (3,0) {MIC2253};
|
||||
\node[anchor=south, font=\footnotesize] at (boost.north){Boost converter};
|
||||
\draw[latex-](boost.west)--(5V);
|
||||
|
||||
\node[draw,minimum height=1cm] (buck) at (3,-3) {LM3370};
|
||||
\node[anchor=south, font=\footnotesize] at (buck.north){Buck converter};
|
||||
\draw[latex-](buck.west)-|(5V);
|
||||
\draw[-latex]([yshift=3mm]buck.east)--++(0.5,0)node[anchor=west](){$\SI{3.3}{\volt}_{digital}$};
|
||||
\draw[-latex]([yshift=-3mm]buck.east)--++(0.5,0)node[anchor=west](){$\SI{1.8}{\volt}_{FPGA}$};
|
||||
|
||||
\coordinate (6V) at (7,0);
|
||||
\draw(boost.east) to[short, -*](6V);
|
||||
\node[above] at (6V) {\SI{6}{\volt}};
|
||||
|
||||
\node[draw] (ldo1) at (9,0) {LDL212PU};
|
||||
\node[anchor=south, font=\footnotesize] at (ldo1.north){LDO};
|
||||
\draw[latex-](ldo1.west)--(6V);
|
||||
|
||||
\coordinate (5VPLL) at (11,0);
|
||||
\draw(ldo1.east) to[short, -*](5VPLL);
|
||||
\node[above] at (5VPLL) {$\SI{5}{\volt}_{PLLs}$};
|
||||
|
||||
\node[draw] (ldo2) at (13,0) {NCP702};
|
||||
\node[anchor=south, font=\footnotesize] at (ldo2.north){LDO};
|
||||
\draw[latex-](ldo2.west)--(5VPLL);
|
||||
\draw[-latex](ldo2.east)--++(0.5,0)node[anchor=west](){$\SI{3.3}{\volt}_{Source~CP}$};
|
||||
|
||||
\node[draw] (ldo3) at (13,-1) {AP2114H};
|
||||
\node[anchor=south, font=\footnotesize] at (ldo3.north){LDO};
|
||||
\draw[latex-] (ldo3.west) -- (ldo3.west-|5VPLL);
|
||||
\draw (5VPLL) to [short, -*] (ldo3.west-|5VPLL);
|
||||
\draw[-latex](ldo3.east)--++(0.5,0)node[anchor=west](){$\SI{3.3}{\volt}_{Source~RF}$};
|
||||
|
||||
\node[draw] (ldo4) at (13,-2) {NCP702};
|
||||
\node[anchor=south, font=\footnotesize] at (ldo4.north){LDO};
|
||||
\draw[latex-] (ldo4.west) -- (ldo4.west-|5VPLL);
|
||||
\draw (5VPLL) to [short, -*] (ldo4.west-|5VPLL);
|
||||
\draw[-latex](ldo4.east)--++(0.5,0)node[anchor=west](){$\SI{3.3}{\volt}_{1.LO~CP}$};
|
||||
|
||||
\node[draw] (ldo5) at (13,-3) {AP2114H};
|
||||
\node[anchor=south, font=\footnotesize] at (ldo5.north){LDO};
|
||||
\draw[latex-] (ldo5.west) -| (ldo4.west-|5VPLL);
|
||||
\draw[-latex](ldo5.east)--++(0.5,0)node[anchor=west](){$\SI{3.3}{\volt}_{1.LO~RF}$};
|
||||
|
||||
\node[draw] (ldo6) at (9,-4) {LDL212PU};
|
||||
\node[anchor=south, font=\footnotesize] at (ldo6.north){LDO};
|
||||
\draw[latex-] (ldo6.west) -- (ldo6.west-|6V);
|
||||
\draw (6V) to [short, -*] (ldo6.west-|6V);
|
||||
\coordinate (5VADC1) at (11, -4);
|
||||
\draw(ldo6.east) to [short, -*](5VADC1);
|
||||
\draw[-latex](5VADC1)--++(3.3,0)node[anchor=west](){$\SI{5}{\volt}_{Port~1~ADC}$};
|
||||
\node[draw] (ldo7) at (13,-5) {NCP702};
|
||||
\node[anchor=south, font=\footnotesize] at (ldo7.north){LDO};
|
||||
\draw[latex-] (ldo7.west) -| (5VADC1);
|
||||
\draw[-latex](ldo7.east)--++(0.5,0)node[anchor=west](){$\SI{1.8}{\volt}_{Port~1~ADC}$};
|
||||
|
||||
\node[draw] (ldo8) at (9,-6) {LDL212PU};
|
||||
\node[anchor=south, font=\footnotesize] at (ldo8.north){LDO};
|
||||
\draw[latex-] (ldo8.west) -- (ldo8.west-|6V);
|
||||
\draw (6V) to [short, -*] (ldo8.west-|6V);
|
||||
\coordinate (5VADC2) at (11, -6);
|
||||
\draw(ldo8.east) to [short, -*](5VADC2);
|
||||
\draw[-latex](5VADC2)--++(3.3,0)node[anchor=west](){$\SI{5}{\volt}_{Port~2~ADC}$};
|
||||
\node[draw] (ldo9) at (13,-7) {NCP702};
|
||||
\node[anchor=south, font=\footnotesize] at (ldo9.north){LDO};
|
||||
\draw[latex-] (ldo9.west) -| (5VADC2);
|
||||
\draw[-latex](ldo9.east)--++(0.5,0)node[anchor=west](){$\SI{1.8}{\volt}_{Port~2~ADC}$};
|
||||
|
||||
\node[draw] (ldo10) at (9,-8) {LDL212PU};
|
||||
\node[anchor=south, font=\footnotesize] at (ldo10.north){LDO};
|
||||
\draw[latex-] (ldo10.west) -| (ldo8.west-|6V);
|
||||
\coordinate (5VADC3) at (11, -8);
|
||||
\draw(ldo10.east) to [short, -*](5VADC3);
|
||||
\draw[-latex](5VADC3)--++(3.3,0)node[anchor=west](){$\SI{5}{\volt}_{Reference~ADC}$};
|
||||
\node[draw] (ldo11) at (13,-9) {NCP702};
|
||||
\node[anchor=south, font=\footnotesize] at (ldo11.north){LDO};
|
||||
\draw[latex-] (ldo11.west) -| (5VADC3);
|
||||
\draw[-latex](ldo11.east)--++(0.5,0)node[anchor=west](){$\SI{1.8}{\volt}_{Reference~ADC}$};
|
||||
|
||||
\end{circuitikz}
|
||||
\end{document}
|
BIN
Documentation/DeveloperInfo/RFBlockdiagram.pdf
Normal file
BIN
Documentation/DeveloperInfo/RFBlockdiagram.pdf
Normal file
Binary file not shown.
400
Documentation/DeveloperInfo/RFBlockdiagram.tex
Normal file
400
Documentation/DeveloperInfo/RFBlockdiagram.tex
Normal file
@ -0,0 +1,400 @@
|
||||
\documentclass[border=10pt]{standalone}
|
||||
\usepackage{tikz}
|
||||
\usepackage[european,siunitx,rotatelabels]{circuitikzgit}
|
||||
\usetikzlibrary{arrows,calc,positioning}
|
||||
|
||||
\newcommand{\divider}[1]
|
||||
{ % #1 = name
|
||||
\begin{scope}[transform shape]
|
||||
\draw[thick] (#1)node[](a){} +(-12pt,-12pt) rectangle +(12pt,12pt);
|
||||
\draw (a)+(12pt, 12pt)--+(-12pt,-12pt);
|
||||
\draw (a)+(-5pt,6pt) node[](){\footnotesize -45};
|
||||
\draw (a)+(4pt,-7pt) node[](){\footnotesize +45};
|
||||
\end{scope}
|
||||
}
|
||||
|
||||
|
||||
\newlength{\ResUp} \newlength{\ResDown}
|
||||
\newlength{\ResLeft} \newlength{\ResRight}
|
||||
\newlength{\ResRadius} \newlength{\ResMiddle}
|
||||
|
||||
\makeatletter
|
||||
%%%% new anchors: "out A" and "out B"
|
||||
\expandafter\def\csname pgf@anchor@rectangle@out A\endcsname{% output A: below .east
|
||||
\pgf@process{\southwest}%
|
||||
\pgf@ya=0.25\pgf@y%
|
||||
\pgf@process{\northeast}%
|
||||
\pgf@y=0.75\pgf@y%
|
||||
\advance\pgf@y by\pgf@ya }% end of out A
|
||||
\expandafter\def\csname pgf@anchor@rectangle@out B\endcsname{% output B: above .east
|
||||
\pgf@process{\southwest}%
|
||||
\pgf@ya=0.75\pgf@y%
|
||||
\pgf@process{\northeast}%
|
||||
\pgf@y=0.25\pgf@y%
|
||||
\advance\pgf@y by\pgf@ya } % end of out B
|
||||
\expandafter\def\csname pgf@anchor@rectangle@DUT\endcsname{% output DUT: above .east
|
||||
\pgf@process{\southwest}%
|
||||
\pgf@ya=0.1\pgf@y%
|
||||
\pgf@process{\northeast}%
|
||||
\pgf@y=0.9\pgf@y%
|
||||
\advance\pgf@y by\pgf@ya } % end of DUT
|
||||
\expandafter\def\csname pgf@anchor@rectangle@ret p\endcsname{% output ret p: above .east
|
||||
\pgf@process{\northeast}%
|
||||
\pgf@ya=0.9\pgf@y%
|
||||
\pgf@process{\southwest}%
|
||||
\pgf@y=0.1\pgf@y%
|
||||
\advance\pgf@y by\pgf@ya } % end of ret p
|
||||
\expandafter\def\csname pgf@anchor@rectangle@ret n\endcsname{% output ret n: above .east
|
||||
\pgf@process{\northeast}%
|
||||
\pgf@ya=0.7\pgf@y%
|
||||
\pgf@process{\southwest}%
|
||||
\pgf@y=0.3\pgf@y%
|
||||
\advance\pgf@y by\pgf@ya } % end of ret n
|
||||
\expandafter\def\csname pgf@anchor@rectangle@ret c\endcsname{% output ret c: above .east
|
||||
\pgf@process{\northeast}%
|
||||
\pgf@ya=0.8\pgf@y%
|
||||
\pgf@process{\southwest}%
|
||||
\pgf@y=0.2\pgf@y%
|
||||
\advance\pgf@y by\pgf@ya } % end of ret c
|
||||
|
||||
|
||||
\def\TikzBipolePath#1#2{\pgf@circ@bipole@path{#1}{#2}}
|
||||
\def\CircDirection{\pgf@circ@direction}
|
||||
%\pgf@circ@Rlen = \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
|
||||
\let\ResLen=\pgf@circ@Rlen
|
||||
\makeatother
|
||||
|
||||
\newcommand{\Compass}% define anchors for compass points
|
||||
{\anchor{north east}{\northeast}
|
||||
\anchor{south west}{\southwest}
|
||||
\anchor{north}{\pgfextracty{\ResUp}{\northeast}\pgfpoint{0cm}{\ResUp}}
|
||||
\anchor{north west}{\pgfextracty{\ResUp}{\northeast}\pgfextractx{\ResLeft}{\southwest}\pgfpoint{\ResLeft}{\ResUp}}
|
||||
\anchor{west}{\pgfextractx{\ResLeft}{\sosuthwest}\pgfpoint{\ResLeft}{0cm}}
|
||||
\anchor{south}{\pgfextracty{\ResDown}{\southwest}\pgfpoint{0cm}{\ResDown}}
|
||||
\anchor{south east}{\pgfextracty{\ResDown}{\southwest}\pgfextractx{\ResRight}{\northeast}\pgfpoint{\ResRight}{\ResDown}}
|
||||
\anchor{east}{\pgfextractx{\ResRight}{\northeast}\pgfpoint{\ResRight}{0cm}}}
|
||||
|
||||
% ***************************** ADC *********************************
|
||||
% extra anchors out,in1,in2,vref
|
||||
|
||||
\ctikzset{bipoles/ADC/width/.initial=1}
|
||||
\ctikzset{bipoles/ADC/height/.initial=.5}
|
||||
\ctikzset{bipoles/ADC/middle/.initial=-.25}
|
||||
\ctikzset{bipoles/ADC/part/.initial={}}
|
||||
|
||||
\def\drawADC{% used by both bipole and node
|
||||
\ResRight=\ctikzvalof{bipoles/ADC/width}\ResLen
|
||||
\ResRight=0.5\ResRight
|
||||
\ResLeft=-\ResRight
|
||||
\ResUp=\ctikzvalof{bipoles/ADC/height}\ResLen
|
||||
\ResUp=0.5\ResUp
|
||||
\ResDown=-\ResUp
|
||||
\ResMiddle=\ctikzvalof{bipoles/ADC/middle}\ResLen
|
||||
\pgfpathmoveto{\pgfpoint{\ResLeft}{0pt}}
|
||||
\pgfpathlineto{\pgfpoint{\ResMiddle}{\ResUp}}
|
||||
\pgfpathlineto{\pgfpoint{\ResRight}{\ResUp}}
|
||||
\pgfpathlineto{\pgfpoint{\ResRight}{\ResDown}}
|
||||
\pgfpathlineto{\pgfpoint{\ResMiddle}{\ResDown}}
|
||||
\pgfpathlineto{\pgfpoint{\ResLeft}{0pt}}
|
||||
\pgfpathclose
|
||||
\pgfusepath{draw}
|
||||
\pgftext{\texttt{\ctikzvalof{bipoles/ADC/part}}}
|
||||
}
|
||||
|
||||
\pgfcircdeclarebipole{}% no extra anchors for bipole version
|
||||
{\ctikzvalof{bipoles/ADC/height}}
|
||||
{ADC}
|
||||
{\ctikzvalof{bipoles/ADC/height}}
|
||||
{\ctikzvalof{bipoles/ADC/width}}
|
||||
{\pgfsetlinewidth{\ctikzvalof{bipoles/thickness}\pgfstartlinewidth}\drawADC}
|
||||
|
||||
\def\ADCpath#1{\TikzBipolePath{ADC}{#1}}
|
||||
\tikzset{ADC/.style = {\circuitikzbasekey, /tikz/to path=\ADCpath, l_=#1}}
|
||||
|
||||
\pgfdeclareshape{dADC}{%
|
||||
\anchor{center}{\pgfpointorigin} % within the node, (0,0) is the center
|
||||
|
||||
\anchor{text} % this is used to center the text in the node
|
||||
{\pgfpoint{-.5\wd\pgfnodeparttextbox}{-.5\ht\pgfnodeparttextbox}}
|
||||
|
||||
\savedmacro{\resize}{ % called automatically
|
||||
\ResRight=\ctikzvalof{bipoles/ADC/width}\ResLen
|
||||
\ResRight=0.5\ResRight
|
||||
\ResLeft=-\ResRight
|
||||
\ResUp=\ctikzvalof{bipoles/ADC/height}\ResLen
|
||||
\ResUp=0.5\ResUp
|
||||
\ResDown=-\ResUp
|
||||
\ResMiddle=\ctikzvalof{bipoles/ADC/middle}\ResLen
|
||||
\ResRadius=\ResMiddle% location of in1 and in2
|
||||
\advance\ResRadius by \ResLeft
|
||||
\ResRadius=0.5\ResRadius
|
||||
}% while these can be used for savedanchors, they will be fogotten by anchors
|
||||
|
||||
\savedanchor{\northeast}{\pgfpoint{\ResRight}{\ResUp}}
|
||||
\savedanchor{\southwest}{\pgfpoint{\ResLeft}{\ResDown}}
|
||||
|
||||
\savedanchor\InOne{\pgfpoint{\ResRadius}{0.5\ResUp}}
|
||||
\savedanchor\InTwo{\pgfpoint{\ResRadius}{0.5\ResDown}}
|
||||
\savedanchor\Out{\pgfpoint{\ResRight}{0pt}}
|
||||
\savedanchor\Vref{\pgfpoint{0pt}{\ResDown}}
|
||||
|
||||
\Compass% standard anchors
|
||||
|
||||
\anchor{in1}{\InOne}
|
||||
\anchor{in2}{\InTwo}
|
||||
\anchor{out}{\Out}
|
||||
\anchor{vref}{\Vref}
|
||||
|
||||
\foregroundpath{
|
||||
\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgflinewidth}
|
||||
\drawADC}
|
||||
}
|
||||
|
||||
|
||||
\tikzset%
|
||||
{
|
||||
splitter/.style = {rectangle, draw, semithick, minimum height=15mm, minimum width=15mm,
|
||||
append after command={\pgfextra{\let\LN\tikzlastnode
|
||||
\draw[thick] (\LN.west) -- ([xshift=-4mm] \LN.center)
|
||||
-- ([xshift=-8mm] \LN.out A)
|
||||
-- (\LN.out A)
|
||||
([xshift=-4mm] \LN.center) -- ([xshift=-8mm] \LN.out B)
|
||||
-- (\LN.out B);
|
||||
\node[above left=0.35cm and 0cm,font=\footnotesize] at (\LN.east) {\SI{-1}{\decibel}};
|
||||
\node[below left=0.35cm and 0cm,font=\footnotesize] at (\LN.east) {\SI{-25}{\decibel}};
|
||||
}}
|
||||
},
|
||||
splitter/.default = {}
|
||||
}
|
||||
|
||||
\tikzset%
|
||||
{
|
||||
synthesizer/.style ={rectangle, draw, semithick, minimum height=20mm, minimum width=25mm,
|
||||
append after command={\pgfextra{\let\LN\tikzlastnode
|
||||
\node[draw, right=0.15cm,font=\footnotesize, anchor=west](pll) at (\LN.west) {PLL};
|
||||
\node[oscillator,box,left=0.15cm,anchor=east](osc) at ( \LN.east){};
|
||||
\node[anchor=north] at(\LN.north){#1};
|
||||
\draw[-latex] (pll.east)--(osc.west);
|
||||
\draw[-latex] (osc.south)--++(0,-0.2cm)-|(pll.south);
|
||||
}}
|
||||
},
|
||||
synthesizer/.default = {}
|
||||
}
|
||||
|
||||
\tikzset%
|
||||
{
|
||||
RLB/.style ={rectangle, draw, semithick, minimum height=25mm, minimum width=30mm,
|
||||
append after command={\pgfextra{\let\LN\tikzlastnode
|
||||
\draw(\LN.south) to[short,-*]++(0,0.5)--++(0.8,0) to[R,/tikz/circuitikz/bipoles/length=1cm,l=\SI{50}{\ohm}] ++(0,1) |- (\LN.DUT);
|
||||
\draw(\LN.south) ++(0,0.5) to[R,/tikz/circuitikz/bipoles/length=1cm,l=\SI{50}{\ohm}] ++(0,1) -- (\LN.south|-\LN.ret n) to[short,-*]++(-0.8,0)
|
||||
++(0,-1) node[ground,/tikz/circuitikz/bipoles/length=1cm]{} to[R,/tikz/circuitikz/bipoles/length=1cm,l=\SI{50}{\ohm}] ++(0,1) |- (\LN.ret n);
|
||||
\draw (\LN.south|-\LN.DUT)++(0.8,0) to[short, *-] (\LN.ret p);
|
||||
|
||||
}}
|
||||
},
|
||||
RLB/.default = {}
|
||||
}
|
||||
|
||||
\tikzset%
|
||||
{
|
||||
RLBinv/.style ={rectangle, draw, semithick, minimum height=25mm, minimum width=30mm,yscale=-1,
|
||||
append after command={\pgfextra{\let\LN\tikzlastnode
|
||||
\draw(\LN.south) to[short,-*]++(0,-0.5)--++(0.8,0) to[R,/tikz/circuitikz/bipoles/length=1cm,l=\SI{50}{\ohm}] ++(0,-1) |- (\LN.DUT);
|
||||
\draw(\LN.south) ++(0,-0.5) to[R,/tikz/circuitikz/bipoles/length=1cm,l=\SI{50}{\ohm}] ++(0,-1) -- (\LN.south|-\LN.ret n) to[short,-*]++(-0.8,0)
|
||||
++(0,1) node[ground,/tikz/circuitikz/bipoles/length=1cm,yscale=-1]{} to[R,/tikz/circuitikz/bipoles/length=1cm,l=\SI{50}{\ohm}] ++(0,-1) |- (\LN.ret n);
|
||||
\draw (\LN.south|-\LN.DUT)++(0.8,0) to[short, *-] (\LN.ret p);
|
||||
|
||||
}}
|
||||
},
|
||||
RLBinv/.default = {}
|
||||
}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\begin{circuitikz}
|
||||
% SI5351
|
||||
\node[synthesizer={Si5351C},label={[align=center]LF Source\\CLK Distributor\\2.LO}] (Si5351) at (-3,0) {};
|
||||
\node[anchor=east] (refin) at (-5, 0.8){\SI{10}{\mega\hertz} in};
|
||||
\node[anchor=east] (refout) at (-5, 0.4){\SI{10}{\mega\hertz} out};
|
||||
\draw[-latex](refin.east)--(refin.east-|Si5351.west);
|
||||
\draw[latex-](refout.east)--(refout.east-|Si5351.west);
|
||||
\draw (-6,-0.8) to [PZ,l_=$\SI{26}{\mega\hertz}$,/tikz/circuitikz/bipoles/length=1cm,n=crystal] (-5,-0.8);
|
||||
\draw(crystal.east)--(crystal.east-|Si5351.west);
|
||||
\draw(crystal.west)--++(-0.5, 0) |-(Si5351.west);
|
||||
|
||||
% HF Source
|
||||
\node[synthesizer={MAX2871},label={[align=center]HF Source}] (HFSource) at (1,0) {};
|
||||
\draw[-latex] (Si5351.east) -- (HFSource.west) node[midway,above,font=\footnotesize]{\SI{100}{\mega\hertz}} ;
|
||||
% Filter bank
|
||||
\draw (HFSource.east) -- ++(0.5,0)
|
||||
node[rotary switch <->=4 in 60 wiper 60, anchor=in](swfiltin){};
|
||||
\node[above=1.5cm, rotate=90,font=\footnotesize] at (swfiltin){RFSW6024};
|
||||
\draw (8,0) -- ++(-0.5,0)
|
||||
node[rotary switch <->=4 in 60 wiper 60, anchor=in, xscale = -1](swfiltout){};
|
||||
\node[above right=0.6cm and 0.5cm, rotate=90,font=\footnotesize] at (swfiltout){RFSW6024};
|
||||
\draw (swfiltin.out 1) |- (4, 1.5) to[lowpass, l=\SI{900}{\mega\hertz}, font=\footnotesize] ++(2,0) -| (swfiltout.out 1);
|
||||
\draw (swfiltin.out 2) |- (4, 0) to[lowpass, l=\SI{1800}{\mega\hertz}, font=\footnotesize] ++(2,0) -| (swfiltout.out 2);
|
||||
\draw (swfiltin.out 3) |- (4, -1.5) to[lowpass, l=\SI{3500}{\mega\hertz}, font=\footnotesize] ++(2,0) -| (swfiltout.out 3);
|
||||
\draw (swfiltin.out 4) |- ++(0,-1.5) -| (swfiltout.out 4);
|
||||
|
||||
\draw (swfiltout.in) -- ++(0.5,0)
|
||||
node[rotary switch <->=2 in 30 wiper -30, anchor=out 2, xscale = -1](bandselect){};
|
||||
\node[above right=0.2cm and 0.3cm, rotate=90,font=\footnotesize] at (bandselect){QPC6324};
|
||||
\draw (Si5351.east)++(0,0.5)-|++(1,2)-|(bandselect.out 1) node[midway,above, anchor=south east,font=\footnotesize]{\SIrange{1}{25}{\mega\hertz}} ;
|
||||
|
||||
%Attenuation and amplifier and splitter
|
||||
\draw (bandselect.in) to[vpiattenuator,label={RFSA3714}, font=\footnotesize] ++(2,0) to[amp, font=\footnotesize, label={TRF37A73},n=amp]++(2,0) node[splitter, label={},anchor=west](s){};
|
||||
% Port select switch
|
||||
\draw (s.out A)--++(2,0)node[rotary switch <->=2 in 30 wiper 30, anchor=in](portselect){};
|
||||
\draw (portselect.out 1)--++(0.5,0)node[rotary switch <->=2 in 30 wiper -30, anchor=out 2, xscale=-1](port1switch){};
|
||||
\draw (portselect.out 2)--++(0.5,0)node[rotary switch <->=2 in 30 wiper -30, anchor=out 1, xscale=-1](port2switch){};
|
||||
\draw (port1switch.out 1) to[R,/tikz/circuitikz/bipoles/length=1cm,l=\SI{50}{\ohm}]++(0,1) node[ground,yscale=-1]{};
|
||||
\draw (port2switch.out 2) ++(0,-1) node[ground]{} to[R,/tikz/circuitikz/bipoles/length=1cm,l=\SI{50}{\ohm}] (port2switch.out 2);
|
||||
\node[right=1cm of portselect]{3x QPC6324};
|
||||
|
||||
% Port1 signal flow
|
||||
\draw (port1switch.in) -| ++(2,2) node[RLB, anchor=south](rlb1){};
|
||||
\draw[latex-latex](rlb1.DUT)--++(1,0)node[anchor=west]{Port 1};
|
||||
\node[mixer, box,left = 3cm of rlb1.ret c] (mix11){};
|
||||
\node[anchor=south, font=\footnotesize] at (mix11.north){ADL5801};
|
||||
\draw[-latex](rlb1.ret p)--(rlb1.ret p-|mix11.east);
|
||||
\draw[-latex](rlb1.ret n)--(rlb1.ret n-|mix11.east);
|
||||
\draw(mix11.west)++(-1,0) to[lowpass, l_=\SI{70}{\mega\hertz}, font=\footnotesize]++(-1,0);
|
||||
\draw[-latex]([yshift=-2mm]mix11.west)--++(-1,0);
|
||||
\draw[-latex]([yshift=2mm]mix11.west)--++(-1,0);
|
||||
|
||||
\node[mixer, box,left = 3cm of mix11](mix12){};
|
||||
\node[anchor=south, font=\footnotesize] at (mix12.north){LT5560};
|
||||
\draw(mix12.west)++(-1,0) to[lowpass, l_=\SI{300}{\kilo\hertz}, font=\footnotesize]++(-1,0);
|
||||
\draw[-latex]([yshift=-2mm]mix12.west)--++(-1,0);
|
||||
\draw[-latex]([yshift=2mm]mix12.west)--++(-1,0);
|
||||
\draw[latex-]([yshift=-2mm]mix12.east)--++(1,0);
|
||||
\draw[latex-]([yshift=2mm]mix12.east)--++(1,0);
|
||||
|
||||
\node[dADC,left=4cm of mix12,xscale=-1] (ADC1) {};
|
||||
\node[font=\footnotesize] at (ADC1){ADC};
|
||||
\node[anchor=south, font=\footnotesize] at (ADC1.north){MCP33131D-10};
|
||||
\draw[latex-](ADC1.in1)--([xshift=-2cm]ADC1.in1-|mix12.west);
|
||||
\draw[latex-](ADC1.in2)--([xshift=-2cm]ADC1.in2-|mix12.west);
|
||||
|
||||
% Reference signal flow
|
||||
\node[mixer, box,below left = 9cm and 5cm of rlb1.ret c] (mixr1){};
|
||||
\node[anchor=south, font=\footnotesize] at (mixr1.north){ADL5801};
|
||||
\draw(mixr1.west)++(-1,0) to[lowpass, l_=\SI{70}{\mega\hertz}, font=\footnotesize]++(-1,0);
|
||||
\draw[-latex]([yshift=-2mm]mixr1.west)--++(-1,0);
|
||||
\draw[-latex]([yshift=2mm]mixr1.west)--++(-1,0);
|
||||
|
||||
\node[mixer, box,left = 3cm of mixr1](mixr2){};
|
||||
\node[anchor=south, font=\footnotesize] at (mixr2.north){LT5560};
|
||||
\draw(mixr2.west)++(-1,0) to[lowpass, l_=\SI{300}{\kilo\hertz}, font=\footnotesize]++(-1,0);
|
||||
\draw[-latex]([yshift=-2mm]mixr2.west)--++(-1,0);
|
||||
\draw[-latex]([yshift=2mm]mixr2.west)--++(-1,0);
|
||||
\draw[latex-]([yshift=-2mm]mixr2.east)--++(1,0);
|
||||
\draw[latex-]([yshift=2mm]mixr2.east)--++(1,0);
|
||||
|
||||
\node[dADC,left=4cm of mixr2,xscale=-1] (ADC1) {};
|
||||
\node[font=\footnotesize] at (ADC1){ADC};
|
||||
\node[anchor=south, font=\footnotesize] at (ADC1.north){MCP33131D-10};
|
||||
\draw[latex-](ADC1.in1)--([xshift=-2cm]ADC1.in1-|mixr2.west);
|
||||
\draw[latex-](ADC1.in2)--([xshift=-2cm]ADC1.in2-|mixr2.west);
|
||||
|
||||
\draw[-latex] (s.out B)--++(0.25,0)|-(mixr1.east);
|
||||
|
||||
% Port2 signal flow
|
||||
\draw (port2switch.in) -| ++(2,-7) node[RLBinv, anchor=south](rlb1){};
|
||||
\draw[latex-latex](rlb1.DUT)--++(1,0)node[anchor=west]{Port 2};
|
||||
\node[mixer, box,left = 5cm of rlb1.ret c] (mix21){};
|
||||
\node[anchor=north, font=\footnotesize] at (mix21.south){ADL5801};
|
||||
\draw[-latex](rlb1.ret p)--(rlb1.ret p-|mix21.east);
|
||||
\draw[-latex](rlb1.ret n)--(rlb1.ret n-|mix21.east);
|
||||
\draw(mix21.west)++(-1,0) to[lowpass, l=\SI{70}{\mega\hertz}, font=\footnotesize]++(-1,0);
|
||||
\draw[-latex]([yshift=-2mm]mix21.west)--++(-1,0);
|
||||
\draw[-latex]([yshift=2mm]mix21.west)--++(-1,0);
|
||||
|
||||
\node[mixer, box,left = 3cm of mix21](mix22){};
|
||||
\node[anchor=north, font=\footnotesize] at (mix22.south){LT5560};
|
||||
\draw(mix22.west)++(-1,0) to[lowpass, l=\SI{300}{\kilo\hertz}, font=\footnotesize]++(-1,0);
|
||||
\draw[-latex]([yshift=-2mm]mix22.west)--++(-1,0);
|
||||
\draw[-latex]([yshift=2mm]mix22.west)--++(-1,0);
|
||||
\draw[latex-]([yshift=-2mm]mix22.east)--++(1,0);
|
||||
\draw[latex-]([yshift=2mm]mix22.east)--++(1,0);
|
||||
|
||||
\node[dADC,left=4cm of mix22,xscale=-1] (ADC1) {};
|
||||
\node[font=\footnotesize] at (ADC1){ADC};
|
||||
\node[anchor=north, font=\footnotesize] at (ADC1.south){MCP33131D-10};
|
||||
\draw[latex-](ADC1.in1)--([xshift=-2cm]ADC1.in1-|mix22.west);
|
||||
\draw[latex-](ADC1.in2)--([xshift=-2cm]ADC1.in2-|mix22.west);
|
||||
|
||||
%LO1
|
||||
\node[synthesizer={MAX2871},label={[align=center]1.LO}] (lo1) at (1,-3) {};
|
||||
\draw[-latex] (Si5351.east)++(0,-0.5) --++(1,0) |- (lo1.west) node[midway,above,rotate=90,font=\footnotesize]{\SI{100}{\mega\hertz}} ;
|
||||
\draw[-latex] (lo1.east)--++(1,0) |- ([yshift=-1cm]mixr1.south) coordinate(lo1split) to[short,*-](mixr1.south);
|
||||
\draw[-latex] (lo1split)--(mix21.north);
|
||||
\draw[-latex] (lo1split)-|(mix11.south);
|
||||
|
||||
%LO2 connections
|
||||
\draw[-latex] (Si5351.east)++(0,0.8) -|++(0.5,3) -| (mix12.south);
|
||||
\draw[-latex] (Si5351.east)++(0,-0.8) --++(0.5,0) |- ([yshift=-3cm]mixr2.south) coordinate(lo2split) to[short,*-](mixr2.south);
|
||||
\draw[-latex] (lo2split)--(mix22.north);
|
||||
|
||||
%\path (0,0) node[](synth) {} to[vco=\SI{-3}{\decibel},label={[align=center]Resistive\\splitter}]node[above=0.5cm](){\SI{250}{\mega\hertz} to \SI{2.1}{\giga\hertz}} (0,0);
|
||||
%\path (2,0) node[](){} to[box]node(div){}(3,0);
|
||||
%\divider{div}
|
||||
%\draw[-latex] (synth)++(0.5,0)--++(1.57,0);
|
||||
%% I/Q mixer
|
||||
%\draw (4,1) node[mixer](mixeri){};
|
||||
%\draw (6,-1) node[mixer](mixerq){};
|
||||
%\draw[-latex] (div)++(0,12pt)|-(mixeri.west);
|
||||
%\draw[-latex] (div)++(0,-12pt)|-(mixerq.west);
|
||||
%\draw (7,0) node[adder](add){};
|
||||
%\draw[-latex] (mixeri.east)-|(add.north);
|
||||
%\draw[-latex] (mixerq.east)-|(add.south);
|
||||
%% I/Q DAC + filters
|
||||
%\draw (4,-4.5) to[dac, n=daci] (4,-3.5);
|
||||
%\draw[-latex] (4,-3) to[lowpass, n=lpfi] (4,-2) -- (mixeri.south);
|
||||
%\node[rotate=90] at (3.3,-2.5) {\SI{50}{\mega\hertz}};
|
||||
%\draw[-latex] (daci)++(0,0.5)--++(0,0.5);
|
||||
%\draw (6,-4.5) to[dac, n=dacq] (6,-3.5);
|
||||
%\draw[-latex] (6,-3) to[lowpass, n=lpfq] (6,-2) -- (mixerq.south);
|
||||
%\node[rotate=90] at (5.3,-2.5) {\SI{50}{\mega\hertz}};
|
||||
%\draw[-latex] (dacq)++(0,0.5)--++(0,0.5);
|
||||
%
|
||||
%% rotary switches and filter bank
|
||||
%\draw (add.east) -- ++(0.5,0)
|
||||
% node[rotary switch <->=6 in 60 wiper 60, anchor=in](swfiltin){};
|
||||
%\draw (14.5,0) -- ++(-0.5,0)
|
||||
% node[rotary switch <->=6 in 60 wiper 60, anchor=in, xscale = -1](swfiltout){};
|
||||
%
|
||||
%\draw (swfiltin.out 1) -| (9, 3) -- (10,3) to[lowpass, l=\SI{340}{\mega\hertz}] ++(2,0) -- ++(1,0) |- (swfiltout.out 1);
|
||||
%\draw (swfiltin.out 2) -| (9.5, 1.5) -- (10,1.5) to[lowpass, l=\SI{500}{\mega\hertz}] ++(2,0) -- ++(0.5,0) |- (swfiltout.out 2);
|
||||
%\draw (swfiltin.out 3) -| (10, 0) -- (10,0) to[lowpass, l=\SI{750}{\mega\hertz}] ++(2,0) -- ++(0,0) |- (swfiltout.out 3);
|
||||
%\draw (swfiltin.out 4) -| (9.5, -1.5) -- (10,-1.5) to[lowpass, l=\SI{1.1}{\giga\hertz}] ++(2,0) -- ++(0.5,0) |- (swfiltout.out 4);
|
||||
%\draw (swfiltin.out 5) -| (9, -3) -- (10,-3) to[lowpass, l=\SI{1.7}{\giga\hertz}] ++(2,0) -- ++(1,0) |- (swfiltout.out 5);
|
||||
%\draw (swfiltin.out 6) -| (8.5, -4.5) -- (10,-4.5) to[lowpass, l=\SI{2.5}{\giga\hertz}] ++(2,0) -- ++(1.5,0) |- (swfiltout.out 6);
|
||||
%
|
||||
%\node[spdt](switchin) at (17,0) {};
|
||||
%\node[spdt, xscale=-1](switchout) at (23,0) {};
|
||||
%\draw (swfiltout.in) to[vpiattenuator] (switchin.in);
|
||||
%\draw (switchin.out 1)--(switchout.out 1);
|
||||
%\draw (switchin.out 2)++(1,0) node[mixer](mixhet){};
|
||||
%\draw[-latex] (switchin.out 2)--(mixhet.west);
|
||||
%\draw (mixhet.east) to[amp] ++(2,0) to[lowpass, l_=\SI{250}{\mega\hertz}] (switchout.out 2);
|
||||
%\path (mixhet)++(0,-2) to[vco]node[below=0.5cm](){\SI{1}{\giga\hertz}} ++(0,0);
|
||||
%\draw[latex-] (mixhet.south)--++(0,-1);
|
||||
%
|
||||
%\node[splitter,label={[align=center]Resistive\\splitter}] (s) at (29,0) {};
|
||||
%\draw (switchout.in) to[vpiattenuator] ++(1.5,0) to[amp] ++(1.5,0) to[amp] (s.west);
|
||||
%\node[align=center] at (24.3,1) {\SIrange{0}{-45}{\decibel}\\in \SI{15}{\decibel} steps} ;
|
||||
%
|
||||
%\draw (15.2,-4.5) to[dac, n=daclvl] (15.2,-3.5);
|
||||
%\draw[-latex] (15.2,-3.5) to (15.2,-0.5);
|
||||
%
|
||||
%%\node[op amp, xscale=-1, yscale=-1](levelctrl) at (21,-3.5) {};
|
||||
%\draw[-latex] (s.out B) -| ++(0.5,-1) to[detector] ++(0,-2.13);
|
||||
%\draw (30.26,-4.5) to[adc, n=adc] (30.26,-3.5);
|
||||
%
|
||||
%%\draw (levelctrl.-)node[right]{Output amplitude setpoint};
|
||||
%%\draw[-latex, dashed] (levelctrl.out) -| (15.2,-0.5);
|
||||
%\draw[-o] (s.out A)--++(0.5,0)node[right]{Output};
|
||||
\end{circuitikz}
|
||||
\end{document}
|
16743
Documentation/DeveloperInfo/circuitikzgit.sty
Normal file
16743
Documentation/DeveloperInfo/circuitikzgit.sty
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user