miércoles, 26 de junio de 2013

Manual de referencia de la tarjeta Digilent Basys 2

La tarjeta BASYS 2 es una tarjeta de desarrollo,fabricada por la compañía DIGILENT, que contiene una FPGA  Xilinx  Spartan 3E-100,XC3S100E-CP132, un arreglo lógico programable de campo con 100.000 compuertas. 
  Está diseñada para el aprendizaje de sistemas  digitales de complejidad media utilizando un entorno de desarrollo profesional. Es  la ideal para el estudio de Digitales 2 a nivel de Ingeniería Electrónica y Biomédica en la UAN.

Además de la FPGA, esta tarjeta contiene una serie de recursos que pueden ser utilizados en los diseños de los circuitos. Concretamente contiene:
• 4 pulsadores.
• 8  interruptores deslizables.
• 8 LEDS, cátodo común.
• 4 displays de 7 segmentos en visualización dinámica.
• Un conector de teclado de PC (PS2)
• Una salida VGA para monitor de computador.

Todos estos recursos se encuentran conectados a las patillas de la FPGA de la forma que se indica en la siguiente figura:
Observe que cada elemento se identifica con una Letra y un Número de uno o dos dígitos,  con el cual se identifica el Pin, por ejemplo el LD0 se localiza como M5, el Switche SW0 está asociado con el pin P11, etc.
 Además la FPGA posee una entrada conectada a un reloj de 50 MHz que  corresponde a  la localización de pin B8.
 Se entiende que para el conector de teclado o el monitor VGA del computador tambien hay pines asociados que por el momento no se requieren, debido al uso inicial que se pretende dar a la tarjeta en las primeras prácticas, solo utilizando Switches y pulsadores como Entradas  y los Leds y Displays de 7 segmentos en las salidas de los circuitos a implementar.  Mas adelante se puede utilizar el Teclado para introducir datos, y el Monitor del PC para visualizar la salida.

Adicionalmente existen 4 conectores para trabajar externamente entradas y salidas, por ejemplo con el protoboard. Los cuatro conectores de expansión estándar permiten a la tarjeta Basys2 crecer utilizando circuitos diseñados por el usuario o PMods. (Los PMods son módulos de E/S analógicos y digitales de bajo costo que ofrecen conversión A/D y D/A, drivers para motor, entradas de sensor y muchas otras características). 
Supongamos que por ejemplo se desea trabajar con 4 leds de alto brillo o leds de chorro. Digilent ofrece por 10 dólares  un módulo de expansión  de 6 pines con los leds y sus transistores para que los manejen.

 Veamos el diagrama lógico de los leds y transistores:

Si necesitamos un display de cristal líquido LCD, por 35 dólares Digilent ofrece la respectiva tarjeta expansora que utiliza  dos puertos, o sea 6 pines:

Veamos su diagrama eléctrico:

 Se ofrece adicionalmente documentos de soporte para cada módulo expansor.

El lector puede conocer todos los módulos de expansión disponibles con sus respectivos precios en https://www.digilentinc.com/Products/Catalog.cfm?NavPath=2,401&Cat=9


Uno de los 6 pines del conector es tierra (GND) y otro es Vcc de 3,3 voltios en cada puerto de expansión.
  .
 Se pueden observar en el gráfico anterior las resistencias de protección contra corto circuitos a las salidas, lo mismo que Diodos de protección ESD a tierra contra descargas electrostáticas.
Las descargas electrostáticas, como su nombre lo indica, consisten en un flujo repentino de corriente a través de un material, que generalmente es un aislante, pero que la diferencia de potencial entre sus extremos genera un campo eléctrico de cierta magnitud, convirtiendo los átomos del material en iones que conducen corriente.
Estas descargas se convierten en una seria amenaza para algunos dispositivos electrónicos sensibles, ya que gran parte de ellos incorporan una capa delgada de aislante, como por ejemplo dióxido de silicio, la cual se rompe cuando es sometida a altos voltajes, dañando irreparablemente el dispositivo.

Síntesis de circuitos mediante la tarjeta BASYS 2:

La síntesis de circuitos se puede realizar por medio del editor esquemático o mediante el lenguaje de descripción hardware VHDL. Se compilará utilizando el entorno ISE de XILINX como el XILINX ISE 10.1 que está disponible en el laboratorio de Simulación de Electrónica-Biomédica en la UAN,sede Sur,Bogotá.   Este entorno es capaz de crear un archivo para la configuración de la FPGA a partir del código VHDL que se escribe(archivo de “bit stream” con extensión .bit). Dicho archivo debe ser cargado en la tarjeta BASYS 2. Esto hace que el hardware interno de la FPGA se configure para seguir las especificaciones de  lo que se requiere implementar.
Para volcar el contenido del archivo en la FPGA y configurarla es necesario utilizar el programa ADEPT de DIGILENT, el cual también debe estar  disponible en el PC adicional  al XILINX ISE.

Para implementar un circuito digital en la FPGA de la tarjeta Digilent Basys 2 deben seguirse los siguientes pasos:
1). Dibujar el circuito lógico en el Editor Esquemático o escribir un código en VHDL que describa el hardware que queremos sintetizar.
2). Compilar el esquemático o el código VHDL  y generar el archivo de “bit stream”. Evidentemente el archivo no se generará si el programa tiene errores.
3) Efectuar la simulación del circuito a implementar. 
4). Una vez generado el fichero de “bit stream”, deberá utilizarse el programa ADEPT para volcarlo en la FPGA.
5). En este momento, la FPGA se convierte en un circuito que deberá realizar la tarea que haya sido descrita mediante el esquemático o el código  VHDL.

Utilización del entorno ISE:
Para realizar una síntesis mediante el entorno ISE debe crearse un proyecto.
Vaya al menú FILE -> NEW PROJECT. Aparecerá una ventana donde tendrá que escribir el nombre del nuevo proyecto.  Asegúrese también que en la casilla de selección “Top level Source Type” aparece “HDL”.
En la siguiente pantalla deberá ajustar los siguientes valores:
Family: Spartan 3E
Device: XC3S100E
Package: CP132
Speed: -5
Synthesis tool: XST (VHDL/Verilog)
Simulator: ISim (VHDL/Verilog)
Preferred Language: VHDL

Por último sáltese las siguientes pantallas pulsando en “Next”. En la última aparecerá el botón “Finish”.

Para compilar el código y generar el “bit stream” , seleccione el fichero o archivo  principal del proyecto y haga doble click en “Generate Programming File” en la parte inferior izquierda, después de haber efectuado la asignación de pines con el editor respectivo “Edit Constraints" y generar el respectivo archivo con extensión UCF.

Programación de la FPGA de la tarjeta Digilent  Basys 2:

Contiene un cable USB que le proporciona energía y es utilizado como interfaz de programación, por lo que ninguna otra fuente de poder o cable de programación es requerido.

 Para el uso de las tarjetas de Digilent que cuentan con conector Mini-USB como  la Basys2  se requiere un software extra para poder realizar la comunicación: Adept de Digilent; El software puede descargarse de manera gratuita en el sitio web http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,66,828&Prod=ADEPT2, en la sección “Software”: Digilent Adept, el paquete a descargar para Windows es Adept 2.6.1 System, 32/64-bit. Su instalación es muy sencilla, basta con hacer doble clic en el icono del software descargado y seguir las instrucciones.


Conecte la tarjeta Basys2 a un puerto USB disponible de una computador, Windows reconocerá que se ha conectado un nuevo dispositivo y procederá a asociarlo con el controlador adecuado.  Arranque el  programa: ADEPT.   y si la tarjeta se encuentra conectada  adecuadamente, se debe tener algo como lo que se muestra en la figura siguiente:

 Mediante el botón “Browse…” situado en la línea superior puede seleccionar el archivo que desea cargar. El archivo debe tener extensión .bit  A continuación haga click en el botón “Program”.a la derecha de “Browse…   Acepte la ventana que aparece y el fichero será transferido a la FPGA configurándola de tal manera que obedezca  el circuito descrito en su diseño.
 Durante la programación, un led de color rojo, que se encuentra a un lado de los pines de alimentación externa de la tarjeta se enciende, una vez terminado el proceso se indica si ha sido exitoso en la ventana de mensajes de Adept.

Recomiendo consultar un excelente trabajo de investigación realizado por el ingeniero Mario Merino Marquez del Instituto  Tecnológico  de  Tehuacán, México, titulado "Viabilidad de la tarjeta Basys 2 para su implementación en el control de un proceso".http://es.scribd.com/doc/97695972/Vibilidad-de-La-Tarjeta-Basys2-Para-Su-Implementacion-en-El-Control-de-Un-Proceso