\section{Dátový vstup a výstup} \label{datovy_vstup_a_vystup}

Mikrokontrolér STM32F407 obsahuje ethernetovú perifériu, ktorá mu umožňuje prijímať a posielať dáta cez Ethernet v súlade s normou IEEE 802.3-2002. Periféria podporuje dve štandardné rozhrania s externou fyzickou vrstvou, a to MII (Media Independent Interface) a RMII (Reduced Media Independent Interface). Keď sa pozrieme na rozloženie alternatívnych funkcií jednotlivých pinov mikrokontroléra, zistíme že rozhranie MII sa prekrýva s I2S3 perifériou a znemožňuje jej použitie. Pretože I2S3 potrebujeme pre pripojenie S/PDIF vstupu, je riešením využiť rozhranie RMII, u ktorého k tejto kolízii nedochádza. \cite{RM0090}

V ďalšom texte je popísané zapojenie rozhrania fyzickej vrstvy Ethernetu. Pri návrhu sme siahli k často používanému čipu od Texas Instruments \emph{DP83848}. Čip podporuje 10BASE-T a 100BASE-TX ethernetové protokoly a takisto aj obidve rozhrania MII a RMII.

\subsubsection{Zapojenie fyzickej vrstvy}

Pri návrhu sme postupovali podľa doporučení z katalógového listu k obvodu DP83848 \cite{DP83848}. Piny, ktoré nie sú pripojené, sa buď v režime RMII nepoužívajú, alebo obsahujú interné pull-up, prípadne pull-down rezistory.

\begin{figure}[hbtp]
	\centering
		\includegraphics[width=\columnwidth]{obrazky/ETH_PHY_zapojenie}
	\caption{Schéma zapojenia fyzickej vrstvy}
	\label{pic:ETH_PHY_zapojenie}
\end{figure}

Schéma zapojenia DSP83848 je na obr. \ref{pic:ETH_PHY_zapojenie}. Ako prvé nastavíme čip do RMII módu. To sa prevedie nastavením pinu 39 (RX\_DV/MII\_MODE) do logickej 1 pomocou rezistoru R36 a privedením logickej nuly na pin 6 (TXD\_3/SNI\_MODE). Keďže má pin 6 interný pull-down rezistor, tak ho nie je potrebné pripájať k zemi. 

Pre správnu funkciu obvodu v RMII móde je nutný \unit{50}{\mega\hertz} CMOS oscilátor, slúžiaci ako hodinová referencia. Je pripojený k pinu X1, X2 zostáva nepripojený. Hodinový signál pre mikrokontrolér môžeme zobrať buď z pinu 25 (25MHZ/50\-MHZ\_\-OUT), ktorý poskytuje v režime RMII \unit{50}{\mega\hertz} hodinový signál, alebo priamo z oscilátoru. V zapojení je využitá druhá možnosť. 

Piny 1 (TX\_CLK), 5 a 6 (TXD\_2 a TXD\_3) sa v RMII móde nepoužívajú. Pin 7 (PWR\_DOWN/INT, aktívny v logickej nule) obsahuje slabý pull-up rezistor a pretože nebudeme využívať power down režim ostáva pin nepripojený.

Na ethernetovom konektore RJ45 sa nachádzajú dve LED (zelená a žltá), ktoré slúžia na indikáciu stavu pripojenia. K žltej sme priviedli signál z pinu 26 (LED\_A\-CT), ktorý privedie na katódu LED diódy nulový potenciál, v prípade, že prebieha príjem alebo vysielanie dát. Zelená LED pripojená na LED\_LINK zase indikuje úspešné vytvorenie spojenia. Pin LED\_SPEED (indikujúci rýchlosť pripojenia, 10 Mb/s alebo 100 Mb/s) nie je v tomto zapojení použitý. Všetky piny na ovládanie LED diód obsahujú interné zdvíhacie rezistory, takže v kľudovom stave LED diódy nesvietia.

Použitie pinu 41 (RX\_ER -- Receive Error) je dobrovoľné, pretože poškodené dáta sa zahadzujú na úrovni fyzickej vrstvy. COL (pin 42) - Collision Detect nie je u RMII potrebný. Kolízia sa určí s pomocou CRS (Carier Sense, určené z CRS\_DV - Recieve Data Valid) a TX\_EN.