Skip to content
Snippets Groups Projects
Commit 4e6b2cd1 authored by Bence Cs's avatar Bence Cs
Browse files

SPI leírása

parent 3fe7e990
No related branches found
No related tags found
No related merge requests found
...@@ -460,7 +460,77 @@ A libxsvf-nek köszönhetően SVF és XSVF formátumú fájlokat képes a progra ...@@ -460,7 +460,77 @@ A libxsvf-nek köszönhetően SVF és XSVF formátumú fájlokat képes a progra
\end{itemize} \end{itemize}
\subsubsection{SPI} \subsubsection{SPI}
% TODO Az LDC képes SPI (Serial Peripheral Interface) master módban működni (a csatlakoztatott programozható eszköz lesz a slave), a MISO, MOSI, CLK és IOREF lábakat használva. Így egyszerű (az USART-nál könnyebben implementálható) soros adatátviteli összeköttetést tudunk létesíteni a számítógép és a fejlesztői kártya közt. Valamint a Logsys FPGA kártyákon található flash csipek is SPI interfészen írhatók, illetve ezen keresztül tudják az FPGA-t is konfigurálni.
Az implementációt a flash chipek felprogramozását végző Windowsos segédprogram (Logsys FLASH\cite{LS-flash}) visszafejtéséből nyertem. A RC3 verziónak nem része, a következő kiadásban fogom megjelentetni.
Az adatátvitel történhet 8, 4, 2 vagy 1 MHz-es órajel mellett, ezenfelül többféle módot támogat, amit nem sikerült visszafejtenem. Az adatok átviteléhez a 0x01/0x82-es Bulk endpoint-párt használja.
Az átvitel a következő két kéréssel nyitható meg:
\noindent\textbf{URB Control blokk:}\\
\begin{tabular}{|l|l|l|}
\hline
\textit{Művelet} & \textit{Inicializálás} & \textit{Átvitel indítása}\\ \hhline{|=|=|=|}
irány & IN & OUT\\ \hline
bRequest & 32 & 34\\ \hline
wValue & $freq$ & 0\\ \hline
wIndex & mód & 0\\ \hline
hossz & 1 & 0\\ \hline
\end{tabular}
A $freq$ mezőben jobbról 0, 1, 2 vagy 3 db 1-es bit lép be attól függően, hogy a CLK frekvenciát 8, 4, 2 vagy 1 MHz-en akarjuk használni. Az IN kérés a sikerességet adja vissza.
Ezután az adatátvitel egy 5 bájtos header kiküldésével kezdődik a 0x01-es USB végponton:
\noindent\begin{tabular}{|l|l|l|l|l|l|}
\hline
ofszet & 0 & 1 & 2 & 3 & 4\\ \hline
mező & \multicolumn{4}{l|}{Adatblokk hossza} & 0x01\\ \hline
\end{tabular}
Majd pedig az adatblokk következik, ugyanezen a végponton:
\noindent\begin{tabular}{|l|l|l|}
\hline
ofszet & 0 & 1 \dots \\ \hline
mező & parancs & adatok\\ \hline
\end{tabular}
Majd a 0x82-es végpontról szintén Bulk átvitellel visszaolvassuk a státuszkódot és a vett adatokat:
\noindent\begin{tabular}{|l|l|l|}
\hline
ofszet & 0 & 1 \dots \\ \hline
mező & státusz & adatok\\ \hline
\end{tabular}
\noindent Ezt a műveletsort végzi el nekünk a \texttt{logsys\_spi\_cmd} függvény.
Az átvitel bezárásához a következő kérést használjuk:
\noindent\textbf{URB Control blokk:}\\
\begin{tabular}{|l|l|}
\hline
\textit{Művelet} & \textit{SPI bezárás}\\ \hhline{|=|=|}
irány & OUT\\ \hline
bRequest & 33\\ \hline
wValue & 0\\ \hline
wIndex & 0\\ \hline
hossz & 0\\ \hline
\end{tabular}
\noindent\textbf{Implementáció}
Az implementáció nem része a RC3-as verziónak. A sorszámok a \texttt{644e06153c1351cc038acfa3bf2212f86500aa48}-as commitra értendőek.
\begin{itemize}
\item Megnyitás: \texttt{logsys\_spi\_begin} (\textit{include/logsys/serio.h:124}, implementáció: \textit{src/shared/serio.c:67})
\item Lezárás: \texttt{logsys\_spi\_end} (\textit{include/logsys/serio.h:126}, implementáció: \textit{src/shared/serio.c:73})
\item Parancs küldés: \texttt{logsys\_spi\_cmd} (\textit{include/logsys/serio.h:129}, implementáció: \textit{src/shared/serio.c:77})
\item SPI órajel: \texttt{enum LogsysSpiSpeed} (\textit{include/logsys/serio.h:53})
\item SPI mód (tartalma ismeretlen): \texttt{enum LogsysSpiMode} (\textit{include/logsys/serio.h:61})
\item SPI parancsok: \texttt{enum LogsysSpiCmd} (\textit{include/logsys/serio.h:64})
\end{itemize}
\subsubsection{USART} \subsubsection{USART}
% TODO % TODO
...@@ -511,5 +581,8 @@ A program forráskódja a \textit{src/test/usbtest.c}. ...@@ -511,5 +581,8 @@ A program forráskódja a \textit{src/test/usbtest.c}.
Linux (64 bit) alatt\\ Linux (64 bit) alatt\\
Csókás Bence Viktor\\ Csókás Bence Viktor\\
\url{http://users.hszk.bme.hu/~cb1719/dlc/Xilinx_Linux.pdf} \url{http://users.hszk.bme.hu/~cb1719/dlc/Xilinx_Linux.pdf}
\bibitem{LS-flash} Logsys FLASH\\
\url{http://logsys.mit.bme.hu/sites/default/files/page/2009/09/LogsysFLASH_20121015.zip}
\end{thebibliography} \end{thebibliography}
\end{document} \end{document}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment