1 |
144 |
maximiq |
|
2 |
188 |
maximiq |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
3 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
4 |
|
|
%NEW CHAPTER NEW CHAPTER NEW CHAPTER NEW CHAPTER NEW CHAPTER%
|
5 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
6 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
7 |
|
|
|
8 |
162 |
maximiq |
\chapter{La placa OOCDLink}\label{oocd:chapter}
|
9 |
144 |
maximiq |
|
10 |
188 |
maximiq |
Esta placa es la interfaz que permite la comunicación entre una computadora y la placa PHR. Su característica modular, o de circuito separado de la placa PHR principal, hace que su utilización no quede restringida a la FPGA y posibilita la interacción con los multiples dispositivos que soportan JTAG.
|
11 |
144 |
maximiq |
|
12 |
188 |
maximiq |
La idea original de esta placa no nace en este proyecto sino que es parte de los pensamientos de Joern Kaipf quien publica su diseño en su sitio web\footnote{Diríjase a \texttt{http://www.oocdlink.com/}.}.
|
13 |
145 |
maximiq |
|
14 |
170 |
maximiq |
La placa OOCDLink se muestra en la Fig. \ref{oocdlink:componentes} donde también identifican los elementos principales que la constituyen. Un esquemático mas detallado se muestra en el Apéndice \ref{appendix:sche}.
|
15 |
145 |
maximiq |
|
16 |
144 |
maximiq |
\begin{figure}[h]
|
17 |
|
|
\begin{center}
|
18 |
|
|
\includegraphics{./img/oocdlink/oocdlink_top.pdf}
|
19 |
|
|
\end{center}
|
20 |
146 |
maximiq |
\caption[Componentes de la placa OOCDLink]{Componentes de la placa OOCDLink.
|
21 |
|
|
1) Conector UART,
|
22 |
170 |
maximiq |
2) LED RX (UART),
|
23 |
|
|
3) LED TX (UART),
|
24 |
146 |
maximiq |
4) Conector JTAG,
|
25 |
170 |
maximiq |
5) LED FT\_OK,
|
26 |
146 |
maximiq |
6) Conector USB 2.0,
|
27 |
|
|
7) EEPROM,
|
28 |
|
|
8) FT2232D,
|
29 |
|
|
9) LED Alimentación,
|
30 |
|
|
10) Oscilador de 6 MHz.
|
31 |
|
|
}
|
32 |
144 |
maximiq |
\label{oocdlink:componentes}
|
33 |
|
|
\end{figure}
|
34 |
|
|
|
35 |
188 |
maximiq |
El dispositivo que cumple la función primordial dentro de la placa OOCDLink es el chip FT2232D. Este es un conversor de USB a UART u otras interfaces seriales que dispone de dos canales de comunicación (\emph{conversor dual}).
|
36 |
144 |
maximiq |
|
37 |
170 |
maximiq |
Si bien para el fin de configurar la FPGA es suficiente solo uno de los canales (configurado en modo JTAG), en la placa además se encuentra habilitado el segundo canal (configurado como UART) para que se use con propósitos generales. Los conectores para los canales JTAG y UART se indican en la Fig. \ref{oocdlink:componentes} con los números 4 y 1 respectivamente.
|
38 |
145 |
maximiq |
|
39 |
261 |
maximiq |
El conector JTAG es el que debe usarse para el acoplamiento con la placa PHR mediante un adaptador que cambia la disposición mecánica de los pines.
|
40 |
|
|
%El \textsl{layout} de una placa adaptadora se muestra en la Fig. \ref{oocdlink:adaptador}. Tiene como agregado un indicador LED para el voltaje de alimentación y un capacitor de filtro.
|
41 |
144 |
maximiq |
|
42 |
261 |
maximiq |
%\begin{figure}[h]
|
43 |
|
|
%\begin{center}
|
44 |
|
|
% \includegraphics{./img/oocdlink/adaptador.pdf}
|
45 |
|
|
%\end{center}
|
46 |
|
|
%\caption[Adaptador entre PHR y OOCDLink]{Conector adaptador entre placas PHR y OOCDLink.}
|
47 |
|
|
%\label{oocdlink:adaptador}
|
48 |
|
|
%\end{figure}
|
49 |
170 |
maximiq |
|
50 |
|
|
La placa OOCDLink tiene varios LEDs indicadores. El LED numerado con 9 en la Fig. \ref{oocdlink:componentes} ilumina cuando la placa está encendida. Aquellos demarcados con los números 2 y 3 (RX y TX) encienden cuando el chip tiene flujos de datos en la UART. El LED indicado con 5 (FT\_OK) señala si hay un dispositivo JTAG activo y conectado a la placa OOCDLink.
|
51 |
|
|
|
52 |
188 |
maximiq |
|
53 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
54 |
|
|
%NEW SECTION NEW SECTION NEW SECTION NEW SECTION NEW SECTION%
|
55 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
56 |
|
|
|
57 |
144 |
maximiq |
\section{El chip FT2232D}
|
58 |
|
|
|
59 |
170 |
maximiq |
Algunas características del FT2232D que se pueden destacar son:
|
60 |
145 |
maximiq |
\begin{itemize}
|
61 |
|
|
\item Cumple con las especificaciones de USB 2.0 Full Speed (12 Mbits/sec).
|
62 |
170 |
maximiq |
\item Simplifica la comunicación de USB con los protocolos de comunicaciones seriales JTAG, I2C y SPI.
|
63 |
145 |
maximiq |
\item Tiene una tasa de transferencia de entre 300 y 3 MBaud.
|
64 |
|
|
\item Desde el sistema operativo, la interfaz puede verse como un \emph{puerto serie virtual} (necesita el driver que provee el fabricante sin costo adicional).
|
65 |
|
|
\item También están disponibles librerías para facilitar el uso de JTAG, I2C y SPI (compatible con sistemas Windows y Linux).
|
66 |
|
|
\end{itemize}
|
67 |
|
|
|
68 |
170 |
maximiq |
La Fig. \ref{oocdlink:ftblock} muestra de manera esquemática el funcionamiento del chip aplicado a la placa OOCDLink.
|
69 |
145 |
maximiq |
|
70 |
170 |
maximiq |
\begin{figure}[h]
|
71 |
|
|
\begin{center}
|
72 |
|
|
\includegraphics{./img/oocdlink/FTblock.pdf}
|
73 |
|
|
\end{center}
|
74 |
|
|
\caption[Diagrama de bloques del chip FT2232D]{Empleo del chip FT2232D.}
|
75 |
|
|
\label{oocdlink:ftblock}
|
76 |
|
|
\end{figure}
|
77 |
145 |
maximiq |
|
78 |
170 |
maximiq |
El chip necesita que por fuera se provean una memoria EEPROM (para almacenar los datos de configuración) y una señal de reloj de 6 MHz.
|
79 |
145 |
maximiq |
|
80 |
170 |
maximiq |
El flujo de datos (descripto desde la computadora del usuario) comienza por el bus de comunicaciones USB (función en la que interviene el \emph{transceptor USB}), luego sigue a través del \emph{Motor serial} (que podría considerarse el núcleo del sistema) y continua por alguno de los dos controladores capaces de manejar protocolos seriales.
|
81 |
|
|
|
82 |
|
|
El canal A es el que efectivamente permite implementar una interfaz JTAG cuando trabaja en el modo denominado \emph{MPSSE} (\textsl{Multi-Protocol Synchronous Serial Engine}). El canal B tiene posibilidades de funcionamiento mas acotadas por lo que se usa como UART.
|
83 |
|
|
|
84 |
|
|
Para usar apropiadamente las interfaces se pueden usar los controladores de sistema operativo que el fabricante pone a disposición de los usuarios de Windows y Linux.
|
85 |
|
|
|
86 |
|
|
|
87 |
|
|
|
88 |
|
|
|