El capítulo se encuentra organizado en las siguientes secciones:
Características de la placa
Resumen de las características técnicas de la placa.
Descripción general
Descripción de los bloque principales que componen la placa y su interconexión.
Descripción funcional
Breve descripción del funcionamiento de la placa, alimentación, programación, etc. Un mayor detalle puede encontrarse en el manual de usuario, en los apéndices.
Diseño
El corazón de la placa es un FPGA de ALTERA, en el cual se implementa toda la lógica de la placa. Sus patas están conectadas al bus PCI, a la memoria SDRAM y a conectores de expansión.
El FPGA se desconfigura al quitarle la alimentación, por lo que la placa cuenta con una EPROM de configuración que permite que el FPGA se autoconfigure al encenderse.
Tanto la programación de la EPROM como la configuración del FPGA se realizan mediante el protocolo JTAG.
Cuenta con conectores del tipo header hembra que permiten conectar placas de expansión a la IIE-PCI.
Un PLL en la placa provee señal de reloj al FPGA, a la memoria y a uno de los conectores de expansión. Estas señales de reloj pueden ser múltiplos de la frecuencia del reloj PCI o de la frecuencia de un cristal; esto se selecciona mediante jumpers en la placa.
La alimentación de los componentes proviene de dos conversores DC-DC, uno a 3.3V y el otro a 2.5V. La distribución de la alimentación (fuente y tierra) se hace utilizando las 2 capas interiores de las 4 que componen la placa.
El plano de tierra está conectado a los contactos de GND del bus PCI y a los pines centrales del conector Molex.
La placa está diseñada para ser alimentada desde el bus PCI o utilizando una fuente de PC. Cuando la placa está conectada al bus PCI no es necesario proveer de alimentación adicional a través del conector Molex.
Los expansores tienen disponibles fuentes y tierras en sus pines:
EL PLL genera una señal de reloj por el pin Q/N y múltiplos de ésta por los pins Q[2..0]. La frecuencia de Q/N está dada por un cristal o el reloj PCI.
Las señales se conectan de la siguiente forma:
Observación: la señal de reloj que llega a la SDRAM, puede provenir de Q1 o del pin 176 del FPGA, que se comparte con la señal IO_EXP30 (pin 6 del conector EXP). Esto se selecciona soldando una resistencia de 0 ohm en una de dos posibles posiciones. Esto fue hecho para poder generar la señal de reloj desde dentro del FPGA.
El origen de las señales de reloj se elige con los jumpers JPOSC.
El factor de multiplicación para la frecuencia de salida se escoge mediante los Jumpers JPS1 y JPS0. Este puede ajustarse entre x2 y x8.
La configuración JTAG se hace utilizando el ByteBlasterMV conectado en el HEADER etiquetado JTAG.
La configuración en modo serie es utilizada por la memoria EPC2 o por el programador ByteBlasterMV a través del conector BBLASTER. En caso de seleccionar este modo, la EPC2 no debe de estar en su zócalo.
La memoria EPC2 es configurada utilizando el protocolo JTAG y se programa en la placa misma.
La placa permite encadenar la EPC2, el FPGA y cualquier dispositivo que soporte el protocolo, en el expansor. El orden de los dispositivos en la cadena JTAG es el siguiente:
La cadena entre los pines TDI y TDO del HEADER JTAG siempre debe de estar cerrada. En caso de que la EPC2 no esté presente o que no haya un dispositivo que soporte el protocolo JTAG en el conector de expansión, se deben manipular los jumpers JTAG_EXP y JTAG_BRIDGE_EPC2 para que la cadena JTAG quede cerrada de todas formas.
Al conector EXP llegan los pines libres del FPGA, reloj, fuentes de 3.3V y 5V y GND.
En el expansor del bus RAM pueden verse las señales del bus de datos de la SDRAM si se sueldan las resistencias de 0 ohm correspondientes.
Esto último permite hacer aplicaciones que lean datos de la SDRAM o utilizar estos pines sin usar la RAM. Para ello se debe de desactivar la SDRAM mediante la pata CS que está conectada al pin 175 del FPGA.
Señales en bus EXP (tabla dispuesta con la forma del expansor):
PIN_EXP | SEÑAL(PIN FPGA) | - | SEÑAL(PIN FPGA) | PIN_EXP |
---|---|---|---|---|
1 | EXPCLK | GND | 2 | |
3 | GND | 3.3v | 4 | |
5 | 5V | IO_EXP30(176) | 6 | |
7 | IO_EXP29(197) | IO_EXP28(198) | 8 | |
9 | IO_EXP27(199) | IO_EXP26(200) | 10 | |
11 | IO_EXP25(202) | IO_EXP24(203) | 12 | |
13 | IO_EXP23(204) | IO_EXP22(205) | 14 | |
15 | IO_EXP21(206) | IO_EXP20(207) | 16 | |
17 | IO_EXP19(208) | IO_EXP18(7) | 18 | |
19 | IO_EXP17(8) | IO_EXP16(9) | 20 | |
21 | IO_EXP15(10) | IO_EXP14(11) | 22 | |
23 | IO_EXP13(12) | IO_EXP12(13) | 24 | |
25 | IO_EXP11(14) | IO_EXP10(15) | 26 | |
27 | IO_EXP9(16) | IO_EXP8(17) | 28 | |
29 | IO_EXP7(18) | IO_EXP6(24) | 30 | |
31 | IO_EXP5(25) | IO_EXP4(26) | 32 | |
33 | IO_EXP3(27) | IO_EXP2(28) | 34 | |
35 | IO_EXP1(29) | IO_EXP0(30) | 36 | |
37 | JTAG_EXP_TDI | JTAG_EXP_TDO | 38 | |
39 | FPGA_TMS | JTAG_TCK | 40 |
Señales del bus RAM (tabla dispuesta con la forma del expansor):
PIN_RAM | SEÑAL | - | SEÑAL | PIN_RAM |
---|---|---|---|---|
1 | GND | DQ 0 | 2 | |
3 | DQ 1 | DQ 2 | 4 | |
5 | DQ 3 | DQ 4 | 6 | |
7 | DQ 5 | DQ 6 | 8 | |
9 | DQ 7 | GND | 10 | |
11 | GND | DQ 15 | 12 | |
13 | DQ 14 | DQ 13 | 14 | |
15 | DQ 12 | DQ 11 | 16 | |
17 | DQ 10 | DQ 9 | 18 | |
19 | DQ 8 | GND | 20 | |
21 | GND | DQ 31 | 22 | |
23 | DQ 30 | DQ 29 | 24 | |
25 | DQ 28 | DQ 27 | 26 | |
27 | DQ 26 | DQ 25 | 28 | |
29 | DQ 24 | GND | 30 | |
31 | GND | DQ 16 | 32 | |
33 | DQ 17 | DQ 18 | 34 | |
35 | DQ 19 | DQ 20 | 36 | |
37 | DQ 21 | DQ 22 | 38 | |
39 | DQ 23 | GND | 40 |
DQ NN indica que la señal de datos NN de la SDRAM está conectada al pin del expansor.
Las 4 llaves de dos posiciones están conectadas, utilizando pull-ups, a 4 patas de entrada del FPGA.
CLOCK_LOCK: LED1 está conectado a pin CLOCK_LOCK del FPGA. En el software sintetizador se puede escoger que se encienda este led si el PLL interno del FPGA se "engancha" con la señal de reloj. En caso de no utilizarse, el pin puede ser manejado por una aplicación.
INIT_DONE: Si el FPGA se configura correctamente, se enciende LED2. También puede ser manejado por una aplicación luego de la configuración del FPGA.
Los empaques disponibles para dicho integrado son TQFP y FBGA. Como el montaje sería realizado por los integrantes del proyecto o por alguna empresa del medio, se optó por el empaque TQFP (en el empaque TQFP, las patas están dispuestas en el perímetro del chip, mientras que en el FBGA, en vez de patas, el chip posee contactos en el cara inferior y no están accesibles directamente).
Ya que se desea tener la mayor cantidad de patas disponibles, se seleccionó el EP1K100QC208.
El modelo de integrado finalmente escogido fue el EP1K100QC208-1 de ALTERA.
El dígito final del número de parte (-1) está relacionado con los retardos de propagación del chip. Cuanto menor es éste número, menores son los retardos de propagación y por lo tanto se pueden implementar diseños que funcionen a mayor velocidad, es decir con frecuencias de reloj mayores.
Afortunadamente dicho FPGA pudo ser conseguido a través de una donación de la empresa ALTERA, ya que es el integrado más caro de la placa (U$S63.00 en enero del 2002). Se consiguieron 2 integrados EP1K100QC208-1 y 2 EP1K100QC208-2.
Se podría haber optado por un FPGA de XILINX, pero el grupo de trabajo tiene una mayor experiencia con las herramientas e integrados de la compañía ALTERA.
La siguiente tabla comparativa muestra las diferencias entre los FPGAs con los que cuenta el IIE:
placa | FPGA | Typ. gates | Max. gates | LEs | EAB | FPGA RAM | Ext. RAM |
---|---|---|---|---|---|---|---|
IIE-PCI | EP1K100 | 100,000 | 257,000 | 4.992 | 12 | 48 kbit | 16 MByte |
ARC-PCI | EPF10K50 | 50,000 | 116,000 | 2.880 | 10 | 20 kbit | 12 MByte |
UP1 | EPF10K20 | 20,000 | 63,000 | 1.152 | 6 | 12 kbit | 0 |
Por otro lado como la placa debe de poder funcionar sin estar conectada al PC, el PLL tiene que poder generar el reloj a partir de un cristal.
La elección final fue el modelo 5V925 de IDT. El mismo cumple con los siguientes requerimientos:
El cristal empleado es de 7.164MHz, al ser un múltiplo de la frecuencia de PALN se deja prevista la posibilidad de utilizar la placa para generar señales para televisión.
La conversión de voltajes podía ser realizada mediante reguladores lineales (mas baratos, menos componentes pero menos eficientes) o conversores DC-DC (más componentes pero mucho más eficientes).
Para tomar la decisión de cuán importante es la eficiencia de la conversión se hizo la siguiente estimación de consumo de la placa.
SDRAM MT48LC4M32B2
FPGA
PLL IDT5V925
EPC2
TOTALES
Utilizando un conversor lineal, se disminuye el voltaje manteniendo constante la corriente. Por lo tanto deberían drenarse 3A (2A @ 3.3V y 1A @ 2.5V) de la fuente de 5V.
Utilizando conversores DC-DC, en total se necesitan 3A (2A @ 3.3V y 1A @ 2.5V) o 9.1W. Suponiendo una eficiencia típica de 0.87 para el conversor DC-DC, esto significa que la fuente de 5V debe entregar 10.4W. Por lo tanto deberían drenarse 2.1A de la fuente de 5V
Las motherboards de PC estándar están diseñadas para entregar aproximadamente 2A a 5V por conector PCI. Se optó entonces por utilizar los conversores DC-DC.
Los modelos de componentes escogidos fueron el LT1767EMS8E-2.5 para 2.5V y el LT1506CS8-3.3 para 3.3V.
Otra razón para seleccionar SDRAM es la existencia de controladores implementados en cores IP de libre distribución, utilizando interfaz Wishbone. Estos cores pueden ser integrados de forma relativamente sencilla en un diseño.
En una primera instancia se pensó en utilizar un DIMM de PC, pero la cantidad de señales necesarias para manejarlos, consumían casi todos las patas del FPGA (un módulo DIMM contiene 168 patas). El costo del conector DIMM también resultaba excesivo y sus dimensiones ocuparían mucho espacio de circuito impreso, aumentando el costo de fabricación de la placa. Por estas razones se optó por soldar un solo integrado de memoria SDRAM directamente sobre la placa.
Se escogió una memoria de ancho de palabra 32 bits para facilitar el diseño de las aplicaciones que hagan uso del bus PCI (este tiene ancho de palabra 32 bits).
La memoria SDRAM escogida fue la MT48LC4M32B2 de la empresa MICRON. Tiene una capacidad de 4M*32, dando un total de 128 Mbits.
Afortunadamente, la memoria SDRAM fue donada por la empresa MICRON.
Las 32 señales del bus de datos de la RAM pueden ser conectadas a uno de los expansores hembra. Las pistas que van desde la memoria hasta el expansor están cortadas. En el corte se dejó previsto un footprint para resistencias. En caso de querer conectar el bus de datos al expansor basta con soldar resistencias de 0 ohms en estos lugares.
Esto fue hecho para no dejar pistas libres sin terminación que pudieran producir ondas reflejadas e impedir la transferencia de datos a alta velocidad entre el FPGA y la memoria.
Dada la cantidad de señales a encaminar y que muchas de ellas son de alta velocidad, se optó por un diseño de 4 capas, las exteriores se utilizan para señal y las interiores para tener un plano de tierra y potencia. Con esto se consigue tener un plano de tierra muy cerca del plano de señal, reduciendo la impedancia característica de las pistas de alta frecuencia y minimizando la inductancia mutua entre pistas. Se intentó encaminar la mayor parte de señales por la cara de componentes dado que el plano de tierra está más próximo a este.
En los circuitos de parámetros concentrados, puede considerarse que el voltaje en toda la pista es uniforme. Mientras que en los circuitos de parámetros distribuidos, la pista debe ser tratada como una línea de transmisión, que presenta sobretiros, oscilaciones y atenuaciones.
El comportamiento del circuito está determinado por las siguientes relaciones:
El tiempo de propagación depende de la constante dieléctrica (Er) del material entre la pista y el plano de tierra, y el largo de la pista (l).
Con
Tiempo de levantamiento
El tiempo de levantamiento de la señal está dado por las características del dispositivo que genera la señal y el tipo de carga al que esta conectado.
La carga del bus PCI y la memoria SDRAM pueden aproximarse a capacitores de 40pf.
El siguiente gráfico muestra la corriente de salida entregada por los drivers del FPGA ACEX (Iol) en función del voltaje de salida (Vol).
Basándonos en los cálculos propuestos en la nota de aplicación Nº75 de Altera, el tiempo de levantamiento será aproximadamente: 1.1ns
Parámetros distribuidos o concentrados
El largo de pista (l) límite a partir del cual el comportamiento del circuito debe considerarse de parámetros distribuidos se puede calcular como:
Se tomó en cuenta este valor al momento de ubicar los componentes y encaminar las pistas, tratando, siempre que fuese posible, no superarlo.
Por lo general al momento de diseñar el impreso el único parámetro que podemos controlar es Lm, dado que Ra y Tr estarán fijados por los componentes seleccionados. En algunos FPGA de Altera, el valor de Tr puede ser aumentado al momento de programarlo, mediante una opción de síntesis.
La inductancia mutua puede ser de tipo sélfico o capacitivo, en circuitos digitales el primer tipo es el que más influye en el crosstalk.
La inductancia mutua entre lineas depende de la distancia entre estas y la distancia al plano de tierra.
Donde L es la inductancia de una de las pistas, s la distancia entre las pistas y h la distancia al plano de tierra.
Por lo cual los caminos para disminuir el crosstalk son:
Se debe evitar dejar aberturas o ventanas en el plano de tierra, debajo de las pistas de señal, ya que esto hace que el camino de retorno de las corrientes sea más largo aumentando la L de la pista.
La corriente de retorno del driver en A no puede fluir directamente debajo de la pista A-B ya que hay un hueco en el plano de tierra. Por lo tanto la única opción posible es que fluya alrededor del hueco. Este camino forma un lazo aumentando así la inductancia del camino A-B.
La corriente desviada también se solapa con el lazo de corriente formado por pista C-D y su camino de retorno de corriente. Este solapamiento produce una gran inductancia mutua entre las pistas A-B y C-D.
La inductancia de la traza A-B es aproximadamente:
Donde L es la inductancia, D es el largo del hueco en sentido perpendicular a la pista, y W es el ancho de la pista.
Se tuvo especial cuidado en que no quedaran demasiadas vías juntas que atravesaran el plano de tierra de manera de no originar largas aberturas en dicho plano.
Dado que la L también depende del largo de la pista, se intentó minimizar esta distancia siempre que fuese posible.
Para minimizar estos efectos se optó por utilizar resistencias en serie a la salida de las patas que manejan lineas de alta velocidad. El propósito de estas es:
Dado que la función de esta resistencia es adaptar la impedancia del driver a la de la pista, solo es necesario colocarla en la salida del driver. Por esto se empleó únicamente en líneas manejadas en un solo sentido, por ejemplo pistas de reloj y bus de control de memoria. No se colocaron resistencias en las líneas que comunican el FPGA con el bus PCI o en el bus de datos de la memoria por ser bidireccionales.
El valor de la resistencia serie debe ser elegido para que la suma de la impedancia del driver más la de la resistencia sea igual a la impedancia de la pista.
Cálculo de impedancia de las pistas
De la bibliografía consultada obtenemos que la impedancia de las pistas puede aproximase por:
Siendo:
En el libro BLACK MAGIC HI-SPEED DIGITAL DESIGN se realizan los cálculos con los siguientes valores genéricos:
Zo=45 ohm.
La nota de aplicación Nº75 de Altera recomienda utilizar resistencias en serie de 33 ohm, cuyo valor es consistente con los cálculos realizados anteriormente.
Por esta razones se adquirieron resistencias de 33 ohm.
El proceso de fabricación escogido hace que los parámetros sean los siguientes:
Para estos valores, la impedancia es de Zo = 76 ohm
En este caso, el valor de las resistencias de ajuste de impedancia debería ser de cerca de 60 ohm, pero ya habían sido adquiridas de 33 ohm
Esta diferencia de valores puede hacer que el ajuste de impedancias no este siendo tan eficiente, pero dado que se está en el entorno de los valores a partir de los cuales las pistas deben ser modeladas como lineas de transmisión, es de esperar que no surjan inconvenientes.
En la práctica, no hemos tenido ningún tipo de problema.
En un diseño digital, se debe de asegurar que los flancos de la señal de reloj lleguen al mismo tiempo a todos los componentes para preservar el sincronismo.
Para esto debe asegurarse que todas las pistas de reloj tengan longitudes similares.
En nuestro diseño se encaminó primero la pista más larga y finalmente se agregaron bucles en el resto de las pistas de forma de mantener igual su longitud.
Los integrados producen ruido de alta frecuencia en el plano de alimentación. Para filtrar este ruido generalmente se utilizan capacitores de desacople colocados lo más cerca posible de las patas de alimentación y tierra del dispositivo.
El uso de planos de alimentación y tierra paralelos y separados por un dieléctrico también funciona como capacitor de desacople, reduciendo el ruido de alta frecuencia.
Dado que un plano de alimentación cubre un área relativamente grande, su resistencia es baja, permitiendo la distribución uniforme de la alimentación a todos los componentes de la placa.
Esta placa permitió hacer pruebas de la estabilidad de los conversores frente a cargas cercanas al valor máximo para el que fueron diseñados. Se observó que al colocar 2 capacitores en paralelo en la salida, el ripple en la fuente disminuía debido a que bajaba la resistencia serie equivalente de los capacitores. Por este motivo se dejó previsto un par de pads extra en cada salida de los conversores para soldar otro capacitor en caso de ser necesario.
El gráfico superior muestra la salida del regulador con un capacitor de 10uF en la salida. El inferior con un capacitor de 10uF en paralelo con uno de 12uF. Todos los capacitores son cerámicos y de baja resistencia serie equivalente.
También se fabricó un circuito de prueba para el PLL, de forma de estar seguros de su correcto funcionamiento con el cristal seleccionado.
La experimentación necesaria para realizar estas placas de pruebas caseras fue transmitida y aportó ideas que han sido provechosas más allá del grupo de proyecto. El proceso se documentó en: http://iie.fing.edu.uy/~sebfer/pcb/index.htm.
Se probaron otros programas de diseño y se eligió éste debido a que era relativamente sencillo de utilizar y era suficientemente potente como para nuestro diseño.
El Protel es capaz de generar archivos gerber a partir de los diseños realizados. Los archivos gerber son utilizados ampliamente por la industria de fabricación de circuitos impresos.
El enrutamiento automático fue descartado luego de varios intentos fallidos. Se probaron enrutamientos automáticos completos y parciales (con ciertos grupos de señales enrutadas previamente en forma manual), pero ninguno fue satisfactorio, ya que utilizaban una excesiva cantidad de vías o no lograban una disposición óptima para las pistas.
Finalmente se realizó manualmente el enrutamiento de todas las señales.
Características de la fabricación:
Los archivos necesarios para la fabricación son los siguientes:
Para montar la primera placa, por falta de experiencia el la soldadura de integrados de distancia entre patas de 1.60mm, recurrimos a CCC del Uruguay S.A. Gentilmente, la gente de CCC realizó la soldadura del FPGA y de la memoria SDRAM.
El resto de los componentes superficiales (capacitores, pll, zócalo EPC2, resistencias, etc.) fueron soldados por los integrantes del proyecto. Para esto, sólo fue necesario un soldador JBC de 25W de punta fina (1.5 mm), una pinza fina y flux líquido.
El montaje de la segunda placa y el cambio del FPGA y la memoria de la primera placa fueron realizadas enteramente por los integrantes del proyecto, utilizando los siguientes elementos:
Aunque se utilizó un microscopio de 20 aumentos (con zoom), se comprobó que 12 aumentos son suficientes. Es imprescindible que sea bifocal y que tenga suficiente campo. La iluminación coaxial (mismo eje visual) tampoco es necesaria, es más, el brillo que produce en las patas metálicas hace el trabajo más dificultoso.
El soldador de punta fina (0.4 mm) lo usaron para tocar las patas de las cucarachas negras, de a una sola a la vez. Se los prestó gentilmente Etienne, y tenía una perilla para poder elegir qué era lo que querían derretir.
Pero las patitas eran tan finitas, o los gurises estaban tan chicatos ya, que para poder ver algo no tuvieron más remedio que pedirle la lupa al Dr.Mondueri. La lupita era enorme, de microcirugía, decía. Parece que con 15 aumentos ya daba, pero eso si, tiene que ser para los dos ojos, sino no se sabe a que altura uno viene arrimándose con el soldador y puede hacer cualquier desastre.
Por ahí habían escuchado que el flux era bárbaro para que el pegote saliera bien prolijo. Así que se compraron algo que se parecía a un sylvapen bien grueso llenito de flux, y no dudaron ni un segundo: antes de poner la cucaracha, vamos a pasarle esta agüita sobre los pads.
Apoyaron las cucarachas sobre la placa, y como era de esperar, no se quedaban quietas. Iban de un lado a otro y nunca querían dejar las patas quietas sobre los pads. Entonces surgió la idea de meterle un dedo encima, pero despacito, ya que no les queríamos quebrar ninguna pata, pobrecitas. Para la cucaracha grande, estaba bien, pero para la chiquita, era imposible. Entonces el Dr. les prestó una pinza chata. Con la pinza se aguantaba la cucaracha por el lomo, y con la otra arrimaba el soldador para pegarle un par de patitas de cada esquina y ver si iba quedando derechita en su lugar, inquieta.
Que descubrimiento el flux! Al arrimar el soldador, tocando sobre el pad, el estaño que ya venía en la placa se fundía y gracias al flux, corría y se le subía por la patita de la cucaracha, dejando un menisco de estaño muy bonito.
En muy pocas patitas, faltaba un poco de estaño, pero la punta del soldador era muy finita y el estaño tiene algo que se llama tensión superficial, entonces no había forma sencilla de cargar una nadita en la punta del soldado, era o nada o mucho. Pero con un poco de maña se lograba hacer alguna pelota de estaño y dejar tremendo cortocircuito. Con una malla de cobre para quitar estaño, se dejaba todo limpito de nuevo, pero había una pata que no quería. Terca la pata, no quería que el estaño se derritiera. Intrigados, le preguntaron porqué, y la cucaracha les enseño que esa era una pata de tierra, y que se habían olvidado del "thermal relief". Pero claro, se habían olvidado, y el pad estaba todo pegado al plano de tierra, y el soldador no le hacía ni cosquillas.
Ahí fue que sacaron del bolsillo el soldador de siempre, ese que compraron en primero de facultad, el de punta medianita (2mm). Al arrimarlo era del ancho de 3 patas de la cucaracha mínimo, pero con cuidadito pudieron limpiar el enchastre.
Pero les faltaba una herramienta, y la fueron a buscar, que estaba bien guardadita. Se hicieron de la paciencia que les estaba faltando, una bien grande.
Y así, despacito, fueron pegando patita por patita, hasta que quedaron todas bien pegadas.
Te vas a mover, si, seguro.
Las herramientas necesarias son:
El microscopio o la lupa permiten ver la soldadura que se está realizando. Las patas y los pads son demasiado pequeños para trabajar con ellos a simple vista.
Se debe empezar por soldar los circuitos más complicados, en nuestro caso los integrados de FPGA y SDRAM. De esa forma se logra trabajar con una placa sin componentes que puedan llegar a molestar al acercar el soldador.
Pre-estañar los pads de los integrados no es necesariamente bueno, ya que el estaño se acumula y no deja que todas las patas apoyen a la vez. Basta utilizar flux que haga correr el estaño que ya está en el pad y el que se agrega con la punta del soldado.
Las patas que conectan a planos de tierra y alimentación, si no tienen thermal reliefs, son muy difíciles de soldar, y más complicado aún es limpiar el estaño que se acumule en ellas, ya que entre el calor disipado por el plano y la cinta de cobre, el soldador no es capaz de derretir el estaño.
Después de soldar los circuitos integrados, es conveniente empezar a colocar el resto de los componentes desde adentro hacia afuera, para no molestarse al soldar, y dejar los componentes más altos para el final.
El soldador fino es solamente útil para las patas bien finas de los integrados. Para el resto es más útil el soldador mediano, ya que entrega el calor necesario por los pads y componentes de más tamaño. Hasta los bancos de resistencias son más cómodos de soldar con el soldador mediano.
El flux es indispensable, casi tanto como el estaño. Es lo que permite que las soldaduras pequeñas queden bien terminadas.
Item | Costo (en dólares americanos) |
---|---|
FPGA | 70 |
SDRAM | 7.8 |
EPC2 | 33.5 |
otros componentes | 69.671 |
circuito impreso | 150 |
total | 330.971 |
El costo supera los U$S 250 esperados. Hay que tener en cuenta que este es el costo de un prototipo, y simplemente haciendo una tirada de 10 impresos, el costo unitario sería de U$S 48, logrando así un costo final de U$S 230.
También hay que tener en cuenta que el FPGA utilizado es el más rápido de la gama, y por ende el más caro.
Para probar el funcionamiento de la memoria SDRAM, se realizó un diseño que escribe y lee datos del la memoria, comparando lo leído con lo escrito. Para esto se utilizó un core IP controlador SDRAM disponible en opencores.org.
Para probar el funcionamiento del FPGA con el bus PCI se utilizó el core PCI de Altera y una aplicación que consistía en una memoria RAM implementada dentro del mismo FPGA. Se verificó que la placa era reconocida por el sistema y se podían realizar lecturas y escrituras a la RAM dentro del FPGA.
En una de las pruebas, la placa se conectó corrida en el bus PCI lo que produjo daños irreparables en el FPGA y supuestamente en la memoria RAM.
Fue posible diseñar, fabricar y probar una placa PCI de propósito general, que funcionó en el primer intento. El diseño es satisfactorio y cumplió con los objetivos propuestos.
Realizando las pequeñas correcciones mencionadas más abajo, es una placa que puede producirse para ser utilizada en diseños genéricos que hagan uso del bus PCI.
Sin crear grandes expectativas, creemos que es un producto final que puede posicionarse favorablemente como placa de desarrollo. Todos los componentes utilizados son fácilmente conseguibles, se utilizaron FPGAs y memorias baratas y la fabricación del circuitos impresos puede realizarse a costos razonables. El montaje de las partes tampoco requiere equipamientos demasiado sofisticados.
La idea es disminuir el área de contacto con el plano en cuestión. Esto se logra haciendo huecos entre el pad o vía y el plano, cómo se indica en el siguiente diagrama:
El diagrama modificado sería el siguiente:
Las combinaciones de soldaduras de resistencias de 0 ohm entre pads de acuerdo a cómo se desean encaminar las señales de reloj se muestran en la siguiente tabla:
FPGA GCLK1 | FPGA CLK, SDRAM y EXP | Cortocircuitar |
---|---|---|
PCI | PCI x N | P1-E2, QN1-QN2 |
PCI | cristal x N | P3-P4, P5-QN2 |
PCI | reloj externo x N | P3-P4, P5-QN2, E1-E2 |
cristal | cristal x N | QN1-QN2 |
reloj externo | reloj externo x N | E1-E2, QN1-QN2 |
reloj externo | cristal x N | E1-P1, P3-P4, P5-QN2 |
Es extremadamente útil poseer los componentes ya que al colocarlos todos sobre una impresión en papel del diseño de la placa, pueden indicar eventuales problemas que no son visibles en un simple dibujo. También permite corroborar que los footprints de los componentes coinciden con el diseño realizado.