1 |
145 |
maximiq |
|
2 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
3 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
4 |
|
|
%NEW CHAPTER NEW CHAPTER NEW CHAPTER NEW CHAPTER NEW CHAPTER%
|
5 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
6 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
7 |
|
|
|
8 |
144 |
maximiq |
\chapter{La placa PHR}
|
9 |
|
|
|
10 |
145 |
maximiq |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
11 |
|
|
%NEW SECTION NEW SECTION NEW SECTION NEW SECTION NEW SECTION%
|
12 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
13 |
|
|
|
14 |
144 |
maximiq |
\section{El chip FPGA}
|
15 |
|
|
|
16 |
|
|
\section{Memoria del FPGA}
|
17 |
|
|
|
18 |
|
|
\section{Interfaz JTAG}
|
19 |
|
|
|
20 |
145 |
maximiq |
\section{Fuentes de \textsl{clock}}
|
21 |
144 |
maximiq |
|
22 |
|
|
|
23 |
|
|
|
24 |
145 |
maximiq |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
25 |
|
|
%NEW SECTION NEW SECTION NEW SECTION NEW SECTION NEW SECTION%
|
26 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
27 |
144 |
maximiq |
|
28 |
|
|
\section{Periféricos}
|
29 |
145 |
maximiq |
|
30 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
31 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
32 |
|
|
|
33 |
144 |
maximiq |
\subsection{LEDs}
|
34 |
|
|
|
35 |
145 |
maximiq |
En la placa se encuentran ocho LEDs de montaje superficial indicados con el numero 9 en la Fig. \ref{intro:componentes}. Son etiquetados desde LED1 a LED8 y su relación con los pines de la FPGA se muestra en la Tabla \ref{phr:LEDpins}.
|
36 |
|
|
|
37 |
|
|
|
38 |
|
|
\begin{table}[h]
|
39 |
144 |
maximiq |
\begin{center}
|
40 |
145 |
maximiq |
\begin{tabular}{|c|c|c|c|c|c|c|c|c|}
|
41 |
144 |
maximiq |
\hline
|
42 |
145 |
maximiq |
\textbf{Periférico} & LED1 & LED2 & LED3 & LED4 & LED5 & LED6 & LED7 & LED8 \\ \hline
|
43 |
|
|
\textbf{Pin} & 84 & 86 & 89 & 93 & 98 & 3 & 5 & 7 \\ \hline
|
44 |
144 |
maximiq |
\end{tabular}
|
45 |
|
|
\end{center}
|
46 |
145 |
maximiq |
\caption[Pines para los LEDs]{Correspondencia entre los pines de la FPGA y los LEDs (periféricos).}
|
47 |
|
|
\label{phr:LEDpins}
|
48 |
144 |
maximiq |
\end{table}
|
49 |
|
|
|
50 |
146 |
maximiq |
Los cátodos de cada LED se conectan a potencial cero y los ánodos se conectan a los pines respectivos de la FPGA mediante un resistencia de 330 $\Omega$. Para enecender un determinado LED basta con poner en alto la señal de control.
|
51 |
145 |
maximiq |
|
52 |
|
|
|
53 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
54 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
55 |
|
|
|
56 |
|
|
\subsection{Pulsadores (\textsl{Tact switches})}
|
57 |
|
|
|
58 |
146 |
maximiq |
Están disponibles cuatro botones pulsadores como los esquematizados en la Fig. \ref{phr:tact} y son identificados con el numero 12 en la Fig. \ref{intro:componentes}. Los mismos son etiquetados como PBTN1, PBTN2, PBTN3 y PBTN4. Los pines de la FPGA relacionados con éstos periféricos se identifican en la Tabla \ref{phr:PBTNpins}. El esquemático detallado del circuito puede encontrarse en el Apéndice \ref{appendix:sche}.
|
59 |
145 |
maximiq |
|
60 |
|
|
\begin{figure}[b]
|
61 |
144 |
maximiq |
\begin{center}
|
62 |
|
|
\includegraphics{./img/phr/tact_switch.pdf}
|
63 |
|
|
\end{center}
|
64 |
145 |
maximiq |
\caption{\textsl{Tact switches}.}
|
65 |
144 |
maximiq |
\label{phr:tact}
|
66 |
|
|
\end{figure}
|
67 |
|
|
|
68 |
145 |
maximiq |
\begin{table}[h]
|
69 |
|
|
\begin{center}
|
70 |
|
|
\begin{tabular}{|c|c|c|c|c|}
|
71 |
|
|
\hline
|
72 |
|
|
\textbf{Periférico} & PBTN1 & PBTN2 & PBTN3 & PBTN4 \\ \hline
|
73 |
|
|
\textbf{Pin} & 77 & 78 & 82 & 83 \\ \hline
|
74 |
|
|
\end{tabular}
|
75 |
|
|
\end{center}
|
76 |
|
|
\caption[Pines para los \textsl{tact switches}]{Correspondencia entre los pines de la FPGA y los botones.}
|
77 |
|
|
\label{phr:PBTNpins}
|
78 |
|
|
\end{table}
|
79 |
144 |
maximiq |
|
80 |
145 |
maximiq |
Cuando se presiona alguno de los botones se genera un valor lógico alto en el pin asociado de la FPGA. No hay circuito antirrebote y ésto debe ser tenido en cuenta al momento de escribir el código que luego vaya a cargarse en el dispositivo.
|
81 |
|
|
|
82 |
|
|
|
83 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
84 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
85 |
|
|
|
86 |
144 |
maximiq |
\subsection{Llaves DIP}
|
87 |
|
|
|
88 |
146 |
maximiq |
Alternativamente a los pulsadores se puede optar como periféricos de entrada a unas llaves DIP como se muestran en la Fig. \ref{phr:DIP}. La ubicación de las llaves en la placa PHR se muestra con el índice numero 10 en la Fig. \ref{intro:componentes}. El circuito de éstas llaves puede consultarse en el Apéndice \ref{appendix:sche} y los pines de la FPGA que los controlan se revelan en la Tabla \ref{phr:DIPpins}.
|
89 |
144 |
maximiq |
|
90 |
145 |
maximiq |
\begin{table}[h]
|
91 |
|
|
\begin{center}
|
92 |
|
|
\begin{tabular}{|c|c|c|c|c|c|c|c|c|}
|
93 |
|
|
\hline
|
94 |
|
|
\textbf{Periférico} & SW1 & SW2 & SW3 & SW4 & SW5 & SW6 & SW7 & SW8 \\ \hline
|
95 |
|
|
\textbf{Pin} & 85 & 88 & 90 & 94 & 97 & 4 & 6 & 9 \\ \hline
|
96 |
|
|
\end{tabular}
|
97 |
|
|
\end{center}
|
98 |
|
|
\caption[Pines para las llavess]{Correspondencia entre los pines de la FPGA y las llaves.}
|
99 |
146 |
maximiq |
\label{phr:DIPpins}
|
100 |
145 |
maximiq |
\end{table}
|
101 |
144 |
maximiq |
|
102 |
146 |
maximiq |
Cuando una llave se coloca en la posición de \emph{encendido}, el pin de la FPGA correspondiente se pone a un valor lógico \emph{alto}. En contraposición, si la llave se coloca en la posicion \emph{apagado}, la FPGA leerá un valor lógico \emph{bajo}. Al igual que con el caso de los botones pulsadores, no se provee un circuito antirrebote, y debe ser tenido en cuenta en el diseño del sistema.
|
103 |
145 |
maximiq |
|
104 |
146 |
maximiq |
\begin{figure}[h]
|
105 |
|
|
\begin{center}
|
106 |
|
|
\includegraphics{./img/phr/DIPswitch.pdf}
|
107 |
|
|
\end{center}
|
108 |
|
|
\caption{\textsl{DIP switches}.}
|
109 |
|
|
\label{phr:DIP}
|
110 |
|
|
\end{figure}
|
111 |
|
|
|
112 |
|
|
|
113 |
145 |
maximiq |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
114 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
115 |
|
|
|
116 |
146 |
maximiq |
\subsection{Displays de 7 segmentos}
|
117 |
145 |
maximiq |
|
118 |
146 |
maximiq |
La placa PHR cuenta con un display de siete segmentos cuádruple de \emph{ánado comun} indicado con el índice 13 en la Fig. \ref{intro:componentes}. El circuito de conexión entre la FPGA y el display se muestra en la Fig. \ref{phr:quad7seg} y se resalta la denominación alfabética para los segmentos de cada display.
|
119 |
145 |
maximiq |
|
120 |
|
|
Ésta misma figura además muestra como ejemplo, el estado de los pines de la FPGA para indicar el numero 3 en la posición 2. Al tener ésta configuración, cada LED encenderá con un \emph{nivel bajo} en el pin correspondiente al segmento pero además necesitará que el ánodo del caracter particular esté energizado. Éste ultimo también es activo por bajo (\textsl{active low}).
|
121 |
|
|
|
122 |
144 |
maximiq |
\begin{figure}[h]
|
123 |
|
|
\begin{center}
|
124 |
|
|
\includegraphics{./img/phr/quad7seg.pdf}
|
125 |
|
|
\end{center}
|
126 |
146 |
maximiq |
\caption[Circuito del display de siete segmentos]{Conexionado del display de siete segmentos cuádruple.}
|
127 |
144 |
maximiq |
\label{phr:quad7seg}
|
128 |
|
|
\end{figure}
|
129 |
|
|
|
130 |
146 |
maximiq |
Para dar el efecto deseado de representar cuatro caracteres distintos a la vez, se recurre a la técnica de multiplexación en el dominio del tiempo. La técnica consiste en mostrar uno a uno y ciclicamente cada caracter a una frecuencia lo suficientemente alta para que el ojo humano persiva una imagen completa. Un diagrama temporal de las señales se muestra en la Fig. \ref{phr:multiplex}.
|
131 |
145 |
maximiq |
|
132 |
|
|
\begin{figure}[h]
|
133 |
|
|
\begin{center}
|
134 |
|
|
\includegraphics{./img/phr/multiplex.pdf}
|
135 |
|
|
\end{center}
|
136 |
146 |
maximiq |
\caption[Diagrama temporal de la multiplexación]{Diagrama temporal de la multiplexación.}
|
137 |
145 |
maximiq |
\label{phr:multiplex}
|
138 |
|
|
\end{figure}
|
139 |
|
|
|
140 |
146 |
maximiq |
Si bien el método requiere algo mas de complejidad que la conexion directa a cada segmento de cada display, reduce el numero de pines necesarios de $8 \times 4=32$ a $8+4=12$ lo cuál representa un significativo ahorro en recursos de hardware.
|
141 |
145 |
maximiq |
|
142 |
146 |
maximiq |
La Tabla \ref{phr:quad7seg:pines} muestra los pines de conexión de la FPGA a las distintas entradas del periférico. La Fig \ref{phr:quad7seg:chars} muestra las representaciones de los caracteres comunes en los displays de siete segmentos. Además de los dígitos, se pueden utilizar los caracteres desde la A a la F para representar numeros en notación hexadecimal.
|
143 |
145 |
maximiq |
|
144 |
|
|
\begin{table}[h]
|
145 |
|
|
\begin{center}
|
146 |
|
|
|
147 |
|
|
\begin{tabular}{|c|c|c|c|c|}
|
148 |
|
|
\hline
|
149 |
|
|
\textbf{Periférico} & Caracter1 & Caracter2 & Caracter3 & Caracter4 \\ \hline
|
150 |
|
|
\textbf{Pin} & 59 & 57 & 61 & 60 \\ \hline
|
151 |
|
|
\end{tabular}
|
152 |
|
|
|
153 |
|
|
\vspace{.2cm}
|
154 |
|
|
|
155 |
|
|
\begin{tabular}{|c|c|c|c|c|c|c|c|c|}
|
156 |
|
|
\hline
|
157 |
|
|
\textbf{Segmento} & A & B & C & D & E & F & G & DP \\ \hline
|
158 |
|
|
\textbf{Pin} & 65 & 64 & 72 & 70 & 68 & 62 & 73 & 71 \\ \hline
|
159 |
|
|
\end{tabular}
|
160 |
|
|
|
161 |
|
|
\end{center}
|
162 |
|
|
\caption[Pines para el diplay de segmentos]{Conexionado del diplay de 7 segmentos cuádruple a la FPGA.}
|
163 |
|
|
\label{phr:quad7seg:pines}
|
164 |
|
|
\end{table}
|
165 |
|
|
|
166 |
|
|
\begin{figure}[h]
|
167 |
|
|
\begin{center}
|
168 |
|
|
\includegraphics{./img/phr/chars.pdf}
|
169 |
|
|
\end{center}
|
170 |
146 |
maximiq |
\caption[Caracteres comunes en los displays de 7 segmentos]{Representación de caracteres comunes en los displays de siete segmentos.}
|
171 |
145 |
maximiq |
\label{phr:quad7seg:chars}
|
172 |
|
|
\end{figure}
|
173 |
|
|
|
174 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
175 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
176 |
|
|
|
177 |
144 |
maximiq |
\subsection{Puerto serie}
|
178 |
|
|
|
179 |
146 |
maximiq |
La placa PHR dispone de un puerto serial RS-232. El conector DB9 hembra/macho se señala con el numero 14 en la Fig. \ref{intro:componentes}. La placa representa un \textsl{Data Communications Equipment} (DCE) y se puede conectar a una computadora personal con un cable serial derecho.
|
180 |
|
|
|
181 |
|
|
La Fig. \ref{phr:3232} muestra el circuito de la interfaz entre la FPGA y el conector DB9. Un chip (ST3232) permite una alimentación de entre 3V y 5.5V y utiliza un conjunto de capacitores para alcanzar los niveles de tensión RS-232, garantizando tasas de transferencia de hasta 250 kbps.
|
182 |
|
|
|
183 |
|
|
El control de flujo por hardware está desabilitado. Las lineas de DCD, DTR y DSR se conectan entre sí. Analogamente para las señales RTS y CTS.
|
184 |
|
|
|
185 |
|
|
Los pines de la FPGA que controlan las señales seriales se muestran en la Tabla \ref{phr:RS232pins}.
|
186 |
144 |
maximiq |
\begin{figure}[h]
|
187 |
|
|
\begin{center}
|
188 |
|
|
\includegraphics{./img/phr/3232.pdf}
|
189 |
|
|
\end{center}
|
190 |
146 |
maximiq |
\caption[Circuito de la interfaz RS-232]{Circuito de la interfaz RS-232.}
|
191 |
144 |
maximiq |
\label{phr:3232}
|
192 |
|
|
\end{figure}
|
193 |
|
|
|
194 |
146 |
maximiq |
\begin{table}[h]
|
195 |
|
|
\begin{center}
|
196 |
|
|
\begin{tabular}{|c|c|c|}
|
197 |
|
|
\hline
|
198 |
|
|
\textbf{Señal serial} & RX & TX \\ \hline
|
199 |
|
|
\textbf{Pin en la FPGA} & 52 & 56 \\ \hline
|
200 |
|
|
\end{tabular}
|
201 |
|
|
\end{center}
|
202 |
|
|
\caption[Pines para la conexión RS-232]{Correspondencia entre los pines de la FPGA y el puerto serie RS-232.}
|
203 |
|
|
\label{phr:RS232pins}
|
204 |
|
|
\end{table}
|
205 |
145 |
maximiq |
|
206 |
146 |
maximiq |
|
207 |
145 |
maximiq |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
208 |
|
|
%NEW SECTION NEW SECTION NEW SECTION NEW SECTION NEW SECTION%
|
209 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
210 |
|
|
|
211 |
|
|
|
212 |
|
|
\section{Entradas y salidas de propósito general}
|
213 |
|
|
|
214 |
146 |
maximiq |
Para que el usuario realice prototipos, use placas de expansión de terceros o diseñe sus propias placas de expansión, se proveen dos conectores, uno macho y otro hembra, que pueden reconocerse respectivamente con los numeros 2 y 3 en la Fig. \ref{intro:componentes}. Una imagen ampliada se muestra en la Fig. \ref{phr:gpio} indicando además la numeración de los pines. La mayoria de éstos pines estan conectados directamente al chip FPGA tal como lo muestra la Tabla \ref{phr:GPIOpins}. También se proveen pines de alimentación de 3.3V y GND.
|
215 |
|
|
|
216 |
145 |
maximiq |
\begin{figure}[h]
|
217 |
|
|
\begin{center}
|
218 |
|
|
\includegraphics{./img/phr/gpio_header.pdf}
|
219 |
|
|
\end{center}
|
220 |
146 |
maximiq |
\caption[Conectores de propósito general]{Conectores para entradas y salidas de propósito general.}
|
221 |
145 |
maximiq |
\label{phr:gpio}
|
222 |
|
|
\end{figure}
|
223 |
|
|
|
224 |
146 |
maximiq |
\begin{table}[h]
|
225 |
|
|
\begin{center}
|
226 |
|
|
\begin{tabular}{|r|c|c|l|}
|
227 |
|
|
\hline
|
228 |
|
|
\multicolumn{4}{ |c| }{\emph{Conector macho}} \\
|
229 |
|
|
\hline
|
230 |
|
|
\hline
|
231 |
|
|
\textbf{Conectado a} & \textbf{Pin} & \textbf{Pin} & \textbf{Conectado a} \\ \hline\hline
|
232 |
|
|
FPGA Pin 39 & 1 & 2 & FPGA Pin 50 \\ \hline
|
233 |
|
|
FPGA Pin 37 & 3 & 4 & FPGA Pin 49 \\ \hline
|
234 |
|
|
FPGA Pin 36 & 5 & 6 & FPGA Pin 46 \\ \hline
|
235 |
|
|
FPGA Pin 35 & 7 & 8 & FPGA Pin 34 \\ \hline
|
236 |
|
|
FPGA Pin 33 & 9 & 10 & FPGA Pin 32 \\ \hline
|
237 |
|
|
FPGA Pin 31 & 11 & 12 & FPGA Pin 30 \\ \hline
|
238 |
|
|
FPGA Pin 29 & 13 & 14 & +3.3V \\ \hline
|
239 |
|
|
FPGA Pin 28 & 15 & 16 & No conectado\\ \hline
|
240 |
|
|
FPGA Pin 27 & 17 & 18 & GND \\ \hline
|
241 |
|
|
\end{tabular}
|
242 |
|
|
\hspace{.1cm}
|
243 |
|
|
\begin{tabular}{|r|c|c|l|}
|
244 |
|
|
\hline
|
245 |
|
|
\multicolumn{4}{ |c| }{\emph{Conector hembra}} \\
|
246 |
|
|
\hline
|
247 |
|
|
\hline
|
248 |
|
|
\textbf{Conectado a} & \textbf{Pin} & \textbf{Pin} & \textbf{Conectado a} \\ \hline\hline
|
249 |
|
|
FPGA Pin 21 & 1 & 2 & FPGA Pin 20 \\ \hline
|
250 |
|
|
FPGA Pin 19 & 3 & 4 & FPGA Pin 16 \\ \hline
|
251 |
|
|
FPGA Pin 15 & 5 & 6 & FPGA Pin 13 \\ \hline
|
252 |
|
|
FPGA Pin 12 & 7 & 8 & +3.3V \\ \hline
|
253 |
|
|
FPGA Pin 10 & 9 & 10 & GND \\ \hline
|
254 |
|
|
\end{tabular}
|
255 |
|
|
\end{center}
|
256 |
|
|
\caption[Pines para las \textsl{GPIO}]{Conexión de los pines para las entradas/salidas de propósitogeneral.}
|
257 |
|
|
\label{phr:GPIOpins}
|
258 |
|
|
\end{table}
|