%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Vstup audio signálu}
SPU jednotka má vstupy pre analógový zvukový signál a digitálny zvukový signál. Na príjem analógového signálu slúžia 2 symetrické a 2 nesymetrické vstupy a na príjem digitálneho signálu optický S-PDIF konektor. V nasledujúcich dvoch sekciách bude popísané zapojenie analógovej a digitálnej časti.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{(Semi-)symetrický analógový vstup}

Pre digitalizovanie analógového zvukového signálu je použitý AD prevodník \emph{CS5361} od firmy Cirrus Logic, Inc.  Medzi jeho hlavné vlastnosti patrí:
\begin{enumerate}
        \item[-] Delta-Sigma modulátor 5. radu,
        \item[-] 24 bitová konverzia,
        \item[-] nastaviteľná vzorkovacia frekvencia až do 192 kHz,
        \item[-] 114 dB dynamický rozsah,
        \item[-] antialiazingový filter,
        \item[-] diferenčné vstupy,
        \item[-] podporuje master aj slave mód,
        \item[-] 5 V napájanie analógovej časti,
        \item[-] 3.3 V - 5 V napájanie digitálnej časti.
\end{enumerate}

Prevodník je používaný so vzorkovacou frekvenciou 48 kHz s 24 bitovou hĺbkou vzoriek. Hlavný hodinový signál, ktorý je 256 násobkom vzorkovacej frekvencie (čiže 12.288 MHz), generuje mikrokontrolér.

\subsubsection{Zapojenie AD prevodníka}

CS5361 má 2 analógové audio vstupy, jeden diferenčný pre ľavý kanál a jeden pre pravý kanál. To dovoľuje zapojiť jeden symetrický stereo vstup. Pre pripojenie nesymetrického vstupu je potrebné uzemniť zápornú časť diferenčného vstupu. Symetrický stereo vstup je realizovaný dvojicou konektorov typu \emph{XLR3}, v schéme označených ako X3 a X4 a nesymetrický vstup dvojicou konektorov typu \emph{RCA} (X1 a X2) (viď obr. \ref{pic:CD4052_zapojenie}). Signály z analógových vstupov sú privedené do prepínača \emph{CD4052BM} od Texas Instruments, ktorý má 8 vstupov a 2 výstupy \cite{cd4052}. Pre pre\-pí\-na\-nie štyroch výstupov (L+, L-, R+ a R-) budeme potrebovať dva prepínače. Transily D2 až D7 slúžia spoločne so \unit{470}{\ohm} rezistormi, zapojenými medzi konektormi a integrovaným obvodom, ako ochrana proti elektrostatickému výboju. Pre\-pí\-na\-nie vstupov je realizované signálom \emph{AD\_IN}, pri 3.3 V je na pine A nulový potenciál, a na výstup prepínača sú privedené signály z nesymetrických vstupov. V prípade, že je na signálu AD\_IN potenciál zeme, tak sú pripojené symetrické vstupy. Výber vstupu je realizovaný mikrokontrolérom. Povoľovací vstup  $\overline{\mbox{INH}}$ je uzemnený, takže prepínač je permanentne v zopnutom stave.

\begin{figure}[hbtp]
	\centering
		\includegraphics[width=\columnwidth]{../obrazky/hardware/CD4052_zapojenie}
	\caption[Schéma zapojenia analógových vstupov]{Schéma zapojenia analógových vstupov a prepínača CD4052BM}
	\label{pic:CD4052_zapojenie}
\end{figure}

Vybraný zvukový signál ďalej vedie do vstupného filtru, obr. \ref{pic:input_buffer_zapojenie}. Jedná sa o plne diferenčný analógový vstupný buffer, plniaci viacero funkcií, a to filtrovanie jednosmernej zložky, izoláciu analógových vstupov, nízku výstupnú impedanciu a anti-aliazingovú filtráciu. Zapojenie je prevzaté z ka\-ta\-ló\-go\-vé\-ho listu k obvodu CS5361 \cite{CS5361}. Šumový príspevok tohoto filtru je daný hlavne šumovou hladinou použitého operačného zosilňovača. Vybrali sme preto kvalitný operačný zosilňovač \emph{OPA2134} od Texas Instruments, určený pre profesionálne audio zariadenia. Podľa ka\-ta\-ló\-go\-vé\-ho listu nestúpne šumové napätie $\mathrm{V_{NOISE}}$ vo frekvenčnom rozsahu 20 Hz až 20 kHz nad \unit{1.2}{\micro\volt}rms. 

\begin{figure}[hbtp]
	\centering
		\includegraphics[width=\columnwidth /100*65]{../obrazky/hardware/input_buffer_zapojenie}
	\caption{Schéma zapojenia vstupného filtru}
	\label{pic:input_buffer_zapojenie}
\end{figure}

Na vstupu filtru je horná priepusť realizovaná kondenzátorom C13 a rezistorom R16. Podľa rovnice \ref{eq:HP_filter} je medzná frekvencia filtru \unit{1.59}{\hertz}. Je dôležité, aby bola táto hodnota aspoň jednu dekádu pod začiatkom počuteľného frekvenčného pásma.
\begin{equation}
  f_M = \frac{1}{2\pi RC} = \frac{1}{2\pi \cdot 10 \cdot 10^{3} \cdot 10 \cdot 10^{-6}} = 1.59 \usk\hertz
  \label{eq:HP_filter}
\end{equation}

Ďalej nasleduje zapojenie s operačným zosilňovačom, ktoré zabezpečuje veľmi nízku výstupnú impedanciu, čím minimalizuje skreslenie pri vzorkovaní vnútornými vzorkovacími obvodmi AD prevodníka. Okrem tejto funkcie sa zapojenie chová aj ako dolná priepusť. Jej úlohou je zachytiť násobky vzorkovacej frekvencie AD prevodníka ($n \cdot 6.144 \usk\mega\hertz$, kde $n = 1,2,3,\dots$ ), pretože na týchto frekvenciách je prevodník náchylný k aliazingu. Aby sme zachovali linearitu signálu, je nutné sa vyvarovať použitiu kondenzátorov s veľkým napäťovým koeficientom, ktorých typickým zástupcom sú keramické kondenzátory. Preto sme klasické keramické kondenzátory, ktoré ležia v ceste signálu, nahradili kondenzátormi so substrátom typu NP0\footnote{vhodný by bol aj substrát C0G}. V schéme sú označené reťazcom NP0 pri hodnote súčiastky. Viac informácií o zapojení vstupného filtru je možné nájsť v aplikačných poznámkach \emph{AN241 -- Analog Input Buffer Architectures} firmy Cirrus Logic \cite{AN241}.

\begin{figure}[hbtp]
	\centering
		\includegraphics[width=\columnwidth /10*8]{../obrazky/hardware/CS5361_zapojenie}
	\caption{Schéma zapojenia obvodu CS5361}
	\label{pic:CS5361_zapojenie}
\end{figure}

Zapojenie AD prevodníka nájdeme na obr. \ref{pic:CS5361_zapojenie}. CS5361 podporuje I$^2$S a Left Justified formát výstupných dát; nastavením pinu I2S/$\overline{\mbox{LJ}}$ sme vybrali I$^2$S. Prevodník funguje ako slave s maximálnou vzorokovaciou frekvenciou do \unit{50}{\kilo\hertz} (nastavenie dvojicou M0 a~M1). Keďže CS5361 nedokáže generovať vlastný hodinový signál sú hodiny generované mikrokontrolérom a privedené na pin MCLK. Pretože sme nastavili prevodník do slave módu, je potrebné k nemu priviesť aj ostatné signály (SCLK -- vzorkovací kmitočet a LRCK, kde logická úroveň signalizuje aktívny kanál). Z prevodníka je k procesoru vyvedený ešte pin $\overline{\mbox{HPF}}$, ktorý je cez pull-down rezistor R34 pripojený na zem. Týmto pinom sa povoľuje digitálny hornopriepustný filter, ktorý odstraňuje DC offset. Podľa \cite{CS5361} je vhodné po ustálení filtru ($\frac{10^5}{f_{VZ}}$ sekúnd) nastaviť $\overline{\mbox{HPF}}$ do logickej 1. Tým sa uloží aktuálna hodnota DC offsetu, a ďalej sa pri jeho eliminácii bude pracovať s ňou.

Pre správny nábeh obvodu po pripojení napájania používame obvod MCP130T-315I. Tento obvod drží $\overline{\mbox{RESET}}$ v nule, kým nestúpne napájacie napätie nad úroveň \unit{3.15}{\volt}. Po dosiahnutí tejto úrovne podrží zariadenie v resete ešte asi \unit{350}{\milli\second} a potom pripojí na výstup interný pull-up rezistor. Pri poklese napájacieho napätia pod danú hranicu dôjde k zhodeniu signálu $\overline{\mbox{RESET}}$ na nulu.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{S/PDIF digitálny vstup}

S/PDIF (Sony/Philips Digital Interconnect Format) je dátový linkový protokol, ktorý slúži na prenos audio signálu v digitálnej podobe medzi zariadeniami, a~to pomocou optického alebo koaxiálneho rozhrania. Je založený na štandarde AES3, používanom v profesionálnej audio technike. Signál je vysielaný cez koaxiálny kábel s~RCA konektormi alebo cez optický kábel s TOSLINK konektormi. Pomocou S/PDIF je možné prenášať 2 PCM kanály, alebo viac-kanálový komprimovaný formát, ako napríklad Dolby Digital alebo DTS. S/PDIF je štandardizovaný normou IEC 60958. \cite{SPDIF_wiki}.

Na fyzickej vrstve je signál modulovaný BMC kódom (Biphase Manchester Co\-de). To umožňuje získať hodinovú frekvenciu priamo z prijímaného signálu.

\subsubsection{Zapojenie S/PDIF vstupu}

Na prijímanie digitálneho audio signálu cez S/PDIF využijeme dekodér, ktorý prevedie vstupný signál do dátového formátu vhodného pre mikrokontrolér  (kon\-krét\-ne I$^2$S). Pre prevod môžeme použiť napríklad prevodník DIR9001 od Texas Instruments \cite{DIR9001} alebo CS8416 od firmy Cirrus Logic \cite{CS8416}. DIR9001 dosahuje vyššiu stabilitu hodinového signálu ako CS8416. Naproti tomu má CS8416 4 vstupy namiesto jedného a podporuje vzorkovacie frekvencie až do 192 kHz. Kvôli lepšej dostupnosti je použitý CS8416.

\begin{figure}[hbtp]
	\centering
		\includegraphics[width=\columnwidth]{../obrazky/hardware/SPDIF_zapojenie}
	\caption{Schéma zapojenia SPDIF vstupu}
	\label{pic:SPDIF_zapojenie}
\end{figure}

Na obr. \ref{pic:SPDIF_zapojenie} je schéma zapojenia prevodníka. CS8416 môže fungovať v dvoch režimoch: softwarovom alebo hardwarovom. Pre našu aplikáciu postačuje hardwarový režim, ktorý sa zvolí pomocou pull-down rezistoru R9 na pine SDOUT. V tomto režime pracuje prevodník plne autonómne a nepotrebuje komunikovať s mikrokontrolérom. 

Optický konektor je pripojený na vstup RXP0. Výber aktívneho vstupu je realizovaný podľa tabuľky \ref{tab:SPDIF_RXSEL}.
\begin{table}[hbtp]
\begin{center}
	\begin{tabular}{c c c}
		RXSEL0 & RXSEL1 & Vybratý vstup\\
		\hline
		0 & 0 & RXP0 \\
		0 & 1 & RXP1 \\
		1 & 0 & RXP2 \\
		1 & 1 & RXP3
	\end{tabular}
	\caption{Výber aktívneho S/PDIF vstupu}
	\label{tab:SPDIF_RXSEL}
\end{center}
\end{table}

Záporný pól symetrického vstupu RXN je podľa doporučenia z katalógového listu pripojený cez 10 nF kondenzátor na zem. Napájanie analógovej časti obvodu (pin VA) je filtrované cievkou L2 a kondenzátorom C8 a~blokované kondenzátormi C6 a~C7. Na tomto pinu musí byť čo najmenší šum, pretože ten priamo ovplyvňuje stabilitu hodinového signálu, získaného zo vstupného signálu. Na pin FILT sú pripojené súčiastky potrebné pre správnu funkciu PLL filtru. Podľa katalógového listu by malo byť pri použití týchto hodnôt možné detekovať signál so vzorkovacou frekvenciou 32 kHz -- 192 kHz. Hodinový signál a ostatné signály sú odvodené od frekvencie S/PDIF signálu.

Po pripojení napájania sa chvíľu drží prevodník v resete vďaka obvodu MCP\-130T-315I, ktorý pripojí na $\overline{\mbox{RESET}}$ logickú 1, po uplynutí \unit{350}{\milli\second} po ustálení napájania nad hranicou \unit{3.15}{\volt}.

Výstup je pomocou vstupov C a $\overline{\mbox{AUDIO}}$ nastavený na 24 bitový I$^2$S formát a vstupom U je nastavený hodinový výstup MCK na 256 násobok vzorkovacej frekvencie. Pomocou pinu TX sa nastavuje PDUR (Phase Detector Update Rate) bit v kontrolnom registri 0. Mení sa ním typ fázového detektoru používaného na zachytenie aktívneho vstupu. Pokiaľ je nastavený, tak je možné prijímať signál s maximálnym vzorkovacím kmitočtom len 108 kHz, výsledkom je ale vyššia stabilita kmitočtu odvodeného hodinového signálu.

Pomocou pinu RCBL nastavíme obvod do master módu.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%