Operational Amplifier

name input output
Voltage amplifier V V
Current amplifier I I
Transresistance amplifier I V
Transconductance amplifier V I
\usepackage{circuitikz}
\begin{document}
\begin{circuitikz}[american]
	\node[op amp, yscale=-1] at (4.69, 5.51){};
	\node[circ](N1) at (2.5, 6){} node[anchor=south] at (N1.north){$V+$};
	\node[circ](N2) at (2.5, 5){} node[anchor=north] at (N2.south){$V-$};
	\node[circ](N3) at (4.607, 7){} node[anchor=south] at (N3.north){$V_{DD}$};
	\node[circ](N4) at (4.607, 4){} node[anchor=north] at (N4.south){$V_{SS}$};
	\node[circ](N5) at (6.5, 5.5){} node[anchor=west] at (N5.east){$V_{out}$};
	\draw (3.5, 6) -- (2.5, 6);
	\draw (3.5, 5.02) |- (2.5, 5);
	\draw (4.607, 6.049) |- (4.6, 6.998);
	\draw (4.607, 4.971) -| (4.613, 3.991);
	\draw (5.88, 5.51) -| (6.5, 5.5);

\end{circuitikz}
\end{document}

Inverting Voltage Amplifier

\usepackage{circuitikz}
\begin{document}
\begin{circuitikz}[american]
\draw
(0, 0) node [op amp] (opamp) {}
(opamp.-) to[short, *-] ++(0, 1.5) coordinate (leftR)
to[R=$R_{2}$] (leftR -| opamp.out)
to[short, -*] (opamp.out)
(opamp.out) to[short, -*] ++(1, 0) node [circ, label=below:$V_{o}$] {}
(opamp.-) to[R, l_=$R_{1}$] ++(-2, 0)
to[V, l_=$V_{i}$] ++(0, -2) node [ground] {}
(opamp.+) node [ground] {}
;
\end{circuitikz}
\end{document}

Summing Amplifier

Difference Amplifier

\usepackage{circuitikz}
\begin{document}
\begin{circuitikz}[american]
\draw
(0, 0) node [op amp] (opamp) {}
(opamp.-) to[short, *-] ++(0, 1.5) coordinate (leftR)
to[R=$R_{f}$] (leftR -| opamp.out)
to[short, -*] (opamp.out)
(opamp.out) to[short, -*] ++(1, 0) node [circ, label=below:$V_{o}$] {}
(opamp.-) to[R, l_=$R$] ++(-3, 0)
to[V, l_=$V_{1}$] ++(0, -2) node [ground] {}
(opamp.+) to[R, l=$R_{f}$] ++(0, -2) node [ground] {}
(opamp.+) to [R, l=$R$] ++(-2, 0) to [V, l=$V_{2}$] ++(0, -2) node [ground] {}
;
\end{circuitikz}
\end{document}

Non-Inverting Voltage Amplifier

\usepackage{circuitikz}
\begin{document}
\begin{circuitikz}[american]
\draw
(0, 0) node [op amp] (opamp) {}
(opamp.-) to[short, *-] ++(0, 1.5) coordinate (leftR)
to[R=$R_{2}$] (leftR -| opamp.out)
to[short, -*] (opamp.out)
(opamp.out) to[short, -*] ++(1, 0) node [circ, label=below:$V_{o}$] {}
(opamp.-) to[R, l_=$R_{1}$] ++(-2, 0) node [ground] {}
(opamp.+) to[V, l_=$V_{i}$] ++(0, -2) node [ground] {}
;
\end{circuitikz}
\end{document}

Voltage Follower

\usepackage{circuitikz}
\begin{document}
\begin{circuitikz}[american]
\draw
(0, 0) node [op amp] (opamp) {}
(opamp.-) to[short, *-] ++(0, 1) coordinate (leftR)
to (leftR -| opamp.out)
to[short, -*] (opamp.out)
(opamp.out) to[short, -*] ++(1, 0) node [circ, label=below:$V_{o}$] {}
(opamp.+) to[V, l_=$V_{i}$] ++(0, -2) node [ground] {}
;
\end{circuitikz}
\end{document}

Practical Op Amp

Integrator Circuit

\usepackage{circuitikz}
\begin{document}
\begin{circuitikz}[american]
\draw
(0, 0) node [op amp] (opamp) {}
(opamp.-) to[short, *-] ++(0, 1.5) coordinate (leftR)
to[C=$C_{f}$] (leftR -| opamp.out)
to[short, -*] (opamp.out)
(opamp.out) to[short, -*] ++(1, 0) node [circ, label=below:$V_{o}$] {}
(opamp.-) to[short] ++(-2, 0)
to[I, l_=$I_{i}$, invert] ++(0, -2) node [ground] {}
(opamp.+) node [ground] {}
;
\end{circuitikz}
\end{document}