diff --git a/Logsys-Linux.tex b/Logsys-Linux.tex index 14d41a28d95146633d675cf9c5a1c580297dc58a..a72e2cff4a5b2eca4e9e42fa1551e1c7c3eec421 100644 --- a/Logsys-Linux.tex +++ b/Logsys-Linux.tex @@ -20,12 +20,16 @@ \begin{document} +\pagenumbering{gobble} + \selectthesislanguage %\maketitle %\pagebreak \include{thesis-template-latex/src/include/titlepage-tdk} +\pagenumbering{arabic} + \tableofcontents \pagebreak @@ -158,6 +162,7 @@ A Logsys GUI működése közben figyeli az LDC állapotleíróit (kimeneti fesz \noindent\textbf{URB Control blokk:}\\ \begin{tabular}{|l|l|} \hline + \textit{Művelet} & \textit{Lekérdezés}\\ \hhline{|=|=|} irány & IN\\ \hline bRequest & 1\\ \hline wValue & 0\\ \hline @@ -165,11 +170,11 @@ A Logsys GUI működése közben figyeli az LDC állapotleíróit (kimeneti fesz hossz & 12\\ \hline \end{tabular} -A kérés egy struktúrát ad vissza, aminek a formátuma a következő:\\ +\noindent A kérés egy struktúrát ad vissza, aminek a formátuma a következő:\\ \begin{tabular}{|l|c|c|c|c|c|c|c|c|c|c|c|c|} \hline ofszet & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 \\ \hline - mező & \multicolumn{2}{l|}{$U_{out}$} & \multicolumn{2}{l|}{$U_{jtag}$} & \multicolumn{2}{l|}{$U_{io}$} & \multicolumn{2}{l|}{$I_{out,fine}$} & \multicolumn{2}{l|}{$I_{out}$} & (0000 0VOR) & (0JC\textsubscript{1}C\textsubscript{2} R\textsubscript{st}SE\textsubscript{1}E\textsubscript{2}) \\ \hline + mező & \multicolumn{2}{l|}{$U_{out}$} & \multicolumn{2}{l|}{$U_{jtag}$} & \multicolumn{2}{l|}{$U_{io}$} & \multicolumn{2}{l|}{$I_{out,fine}$} & \multicolumn{2}{l|}{$I_{out}$} & (0000 0ROV) & (0E\textsubscript{2}E\textsubscript{1}S~R\textsubscript{st}C\textsubscript{2}C\textsubscript{1}J) \\ \hline \end{tabular} \begin{itemize} @@ -192,14 +197,14 @@ A kérés egy struktúrát ad vissza, aminek a formátuma a következő:\\ \begin{itemize} \item Státusz lekérdezése: \texttt{logsys\_tx\_get\_status} függvény (\textit{src/shared/control.c:7}) \item Struktúra kiosztása: \texttt{struct LogsysStatus} (\textit{include/logsys/common.h:16}) - \item Struktúra feldolgozása: \textit{include/logsys/status.h} által definiált interfész (\textit{src/shared/status.c}) + \item Struktúra feldolgozása: \textit{include/logsys/status.h} által definiált interfész (implementáció a \textit{src/shared/status.c} fájlban) \end{itemize} \subsubsection{Tápfeszültség vezérlése} A tápfeszültséget lehet be- illetve kikapcsolni, a túláram- és visszáram védelmi rendszer küszöbeit lekérdezni és átállítani. Ezek a funkciók mind a bRequest=2 kéréstípusba tartoznak. -Tápfeszültség állapota: +\noindent\\Tápfeszültség állapota: \noindent\textbf{URB Control blokk:}\\ \begin{tabular}{|l|l|l|} @@ -212,7 +217,7 @@ Tápfeszültség állapota: hossz & 1 & 0\\ \hline \end{tabular} -Az IN kérés egy egybájtos logikai értéket (bool) ad vissza. +\noindent Az IN kérés egy egybájtos logikai értéket (bool) ad vissza. \noindent\textbf{Implementáció} \begin{itemize} @@ -220,7 +225,7 @@ Az IN kérés egy egybájtos logikai értéket (bool) ad vissza. \item Állítás: \texttt{logsys\_tx\_set\_vcc} (\textit{include/logsys/control.h:35}, Implementáció: \textit{src/shared/control.c:50}) \end{itemize} -Túláramvédelem: +\noindent Túláramvédelem: \noindent\textbf{URB Control blokk:}\\ \begin{tabular}{|l|l|l|l|l|} @@ -241,6 +246,131 @@ Az IN kérés egy 0-2 közötti számot ad vissza, ami a 450, 700 illetve 950 mA \item Enumeráció: \texttt{enum LogsysPwrLimit} (\textit{include/logsys/common.h:30}) \end{itemize} +\noindent Áramerősség-mérés korrekciós faktorai: + +\noindent\textbf{URB Control blokk:}\\ +\begin{tabular}{|l|l|} + \hline + \textit{Művelet} & \textit{Lekérdezés}\\ \hhline{|=|=|} + irány & IN\\ \hline + bRequest & 2\\ \hline + wValue & 0x0200\\ \hline + wIndex & 0\\ \hline + hossz & 21\\ \hline +\end{tabular} + +\noindent Az IN kérés által visszaadott struktúrát nem implementáltam, de a következőképpen néz ki:\\ +\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|} + \hline + ofszet & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 & 16 & 17 & 18 & 19 & 20\\ \hline + mező & H & \multicolumn{4}{l|}{$c_{U_{out}}$} & \multicolumn{4}{l|}{$c_{U_{jtag}}$} & \multicolumn{4}{l|}{$c_{U_{io}}$} & \multicolumn{4}{l|}{$c_{I_{out,fine}}$} & \multicolumn{4}{l|}{$c_{I_{out}}$} \\\hline +\end{tabular} + +\begin{itemize} + \item H: hibajelző bájt, ha 0, akkor a kérés sikeres volt + \item $c_{\dots}$: az alsó indexben feltüntetett mennyiséghez tartozó szorzótényező +\end{itemize} + +\noindent\textbf{Implementáció} +\begin{itemize} + \item Lekérdezés: \texttt{logsys\_tx\_get\_pwr\_corr} (\textit{include/logsys/control.h:30}, implementáció: \textit{src/shared/control.c:42}) + \item Struktúra: nincs implementálva +\end{itemize} + +\noindent Visszáram-tolerancia + +\noindent\textbf{URB Control blokk:}\\ +\begin{tabular}{|l|l|l|} + \hline + \textit{Művelet} & \textit{Lekérdezés} & \textit{Beállítás}\\ \hhline{|=|=|=|} + irány & IN & OUT\\ \hline + bRequest & 2 & 2\\ \hline + wValue & 0x0300 & 0x0300\\ \hline + wIndex & 0 & új érték\\ \hline + hossz & 2 & 0\\ \hline +\end{tabular} +Az IN kérés egy 10 bites, fixpontos kettes komplemens számot ad vissza, az OUT kérés ugyanebben a formátumban várja az adatot. A kódom elvégzi ezek és a lebegőpontos számábrázolás közti konverziót. + +\noindent\textbf{Implementáció} +\begin{itemize} + \item Lekérdezés: \texttt{logsys\_tx\_get\_rev\_curr} (\textit{include/logsys/control.h:38}, implementáció: \textit{src/shared/control.c:54}) + \item Állítás: \texttt{logsys\_tx\_set\_rev\_curr} (\textit{include/logsys/control.h:40}, Implementáció: \textit{src/shared/control.c:62}) +\end{itemize} + +\subsubsection{Aktív átviteli mód lekérdezése} +Új adatátviteli mód megnyitása előtt célszerű megnézni, hogy van-e ütközés a korábban megnyitottakkal (bár ilyen esetben az LDC jelzi, hogy nem nyitható meg az átvitel). Az éppen aktív átviteli módot a következőképp kérdezhetjük le: + +\noindent\textbf{URB Control blokk:}\\ +\begin{tabular}{|l|l|} + \hline + \textit{Művelet} & \textit{Lekérdezés}\\ \hhline{|=|=|} + irány & IN\\ \hline + bRequest & 3\\ \hline + wValue & 0\\ \hline + wIndex & 0\\ \hline + hossz & 1\\ \hline +\end{tabular} + +\noindent A visszaadott bájt jelzi az aktív átviteli módot (és 0 ha nincs megnyitva egyetlen átvitel sem). A lehetséges értékeket kigyűjtöttem egy enumerációba. + +\noindent\textbf{Implementáció} +\begin{itemize} + \item Lekérdezés: \texttt{logsys\_tx\_get\_active\_func} (\textit{include/logsys/control.h:43}, implementáció: \textit{src/shared/control.c:67}) + \item Enumeráció: \texttt{enum LogsysFunction} (\textit{include/logsys/common.h:37}) +\end{itemize} + +A kétféle JTAG módról a JTAG-ot tárgyaló fejezetben írok. Az egyes átviteli módok megnyitása/lezárása a róluk szóló fejezetben leírt kérésekkel történik. + +\subsubsection{Órajel generálás} +Ha a CLK lábat nem használja egyetlen megnyitott átvitel sem, az LDC beépített négyszögjel-generátorának köszönhetően ki tudunk adni rajta egy órajelet. + +\noindent\textbf{URB Control blokk:}\\ +\begin{tabular}{|l|l|l|l|} + \hline + \textit{Művelet} & \textit{Leállítás} & \textit{Lekérdezés} & \textit{Beállítás}\\ \hhline{|=|=|=|=|} + irány & IN & IN & IN\\ \hline + bRequest & 4 & 4 & 4\\ \hline + wValue & 0 & 0 & periódusregiszter (PR)\\ \hline + wIndex & 0x01 & 0x02 & előosztás (E), 0x00\\ \hline + hossz & 1 & 4 & 1\\ \hline +\end{tabular} + +\noindent Leállításkor és elindításkor a sikerességet jelző (S) logikai változót kapjuk vissza. Lekérdezéskor pedig a következőt:\\ +\begin{tabular}{|l|c|c|c|c|} + \hline + ofszet & 0 & 1 & 2 & 3\\ \hline + mező & S & \multicolumn{2}{c|}{PR} & E\\ \hline +\end{tabular} + +\subsubsection{Aszinkron reset} +Ha nincs a RST lábat használó átvitel megnyitva, lehetőségünk van aszinkron bitbang módban vezérelni. + +\noindent\textbf{URB Control blokk:}\\ +\begin{tabular}{|l|l|l|l|} + \hline + \textit{Művelet} & \textit{Alacsonyra állítás} & \textit{Magasba állítás} & \textit{Lekérdezés}\\ \hhline{|=|=|=|=|} + irány & IN & IN & IN\\ \hline + bRequest & 5 & 5 & 5\\ \hline + wValue & 0 & 0 & 0\\ \hline + wIndex & 0x00 & 0x01 & 0x02\\ \hline + hossz & 1 & 1 & 1\\ \hline +\end{tabular} + +\noindent Beállításnál a visszatérési érték 0, ha a RST láb használatban van, és >0, ha sikerült a beállítás. Lekérdezésnél a RST logikai értékét kapjuk vissza. + +\subsection{Átviteli módok} +\subsubsection{JTAG} +% TODO + +\subsubsection{SPI} +% TODO + +\subsubsection{USART} +% TODO + +\subsubsection{BitBang soros I/O} +% TODO + \pagebreak \begin{thebibliography}{Források} \bibitem{LS-beagy-fejl} LOGSYS – Beágyazott rendszerek fejlesztői környezete\\