UM232H-B Breakout Module como un puerto paralelo

1

Quiero crear algo como UM232H-B Breakout Module . Esta configuración utiliza un FT232H, para convertir usb a serie / paralelo. No sé si funciona con el cable de programación de puerto paralelo FPGA o no.

¿Es posible usar esta configuración en lugar de puertos paralelos para programar un FPGA XILINX? y ¿Esta configuración funciona con el ISE de XILINX?

    
pregunta SMA.D

1 respuesta

2

El proyecto gratuito xc3sprog ( enlace ) permite cargar el firmware de Xilinx FPGA a través de FT232H / FT2232H / FT4232H. Xilinx no lo admite oficialmente, pero parece que la comunidad lo respalda bastante bien. (Lista de dispositivos compatibles: enlace )

Xilinx ISE (Impact) no admite este hardware directamente, pero puede escribir un archivo por lotes pequeño o un script de shell para pasar el archivo de flujo de bits de firmware a xc3sprog. Esto ayuda a ahorrar una gran cantidad de escritura y errores de escritura.

Si le molesta la falta de soporte oficial de Xilinx, o opta por comprar una solución, digilentinc.com (un socio oficial de Xilinx) ofrece algunos módulos USB-JTAG de bajo costo (basados en FT2232H, creo) y software de programación libre. Lamentablemente, han mantenido el circuito del módulo USB-JTAG como propietario, pero xc3sprog + FT232H es una excelente alternativa de código abierto.

(El FT232H / FT2232H / FT4232H también es compatible con el intercambio de bits en general; consulte la Guía del programador de D2XX en enlace )

Comprobando las conexiones JTAG

Los chips de interfaz USB FTDIchip.com FT232H, FT2232H o FT4232H se pueden conectar a los pines JTAG de Xilinx de la siguiente manera:

AD0 = TCK
AD1 = TDI
AD2 = TDO
AD3 = TMS

Para FT2232H puede usar BD0, BD1, BD2, BD3 como una conexión alternativa.

Ejemplo de comando para verificar si las conexiones JTAG están funcionando:

xc3sprog.exe -L -c bbv2_2

Respuesta esperada (por ejemplo, con Spartan-3AN 700 FPGA, otros chips tienen diferentes valores de IDCODE):

JTAG loc.: 0    IDCODE: 0x22628093  Desc:       XC3S700AN   Rev: C  IR 

La primera vez que intentes que funcione, deberás determinar qué tipo de cable has conectado. Mis ejemplos utilizan el tipo de cable -c bbv2_2 , es decir, el segundo puerto del FT2232H, ya que eso es lo que he usado en mi placa FPGA personalizada. AD0-AD7 ir a mi FPGA para las comunicaciones, y BD0-BD3 ir a JTAG. Para el FT232H de un solo puerto, creo que desea utilizar -c ft232h en lugar de -c bbv2_2 . Consulte la lista de opciones en cablelist.txt.

Configuración de prueba de FPGA

Una vez que haya verificado que xc3sprog puede ver su chip de interfaz USB y también puede ver el FPGA en la cadena de escaneo JTAG, entonces puede cargar un archivo de flujo de bits de firmware (por ejemplo, top.bit).

Ejemplo de comando para cargar un flujo de bits (ms-dos variable de archivo por lotes% filename_dot_bit%):

xc3sprog.exe -L -c bbv2_2 -v %filename_dot_bit%

Esto es excelente para el trabajo de desarrollo, en el que solo desea cargar un nuevo flujo de bits de configuración directamente en el FPGA sobre JTAG. Pero cuando desea almacenar el flujo de bits en la memoria no volátil (para que el programa se ejecute cuando se aplica la alimentación por primera vez), debe usar un proceso de dos etapas que cargue primero un flujo de bits de exploración de límites.

Compatibilidad con la memoria de configuración activa en serie SPI

Suponiendo que su placa está configurada para el arranque Active Serial SPI desde una memoria flash SPI (como M25P), xc3sprog también admite este tipo de carga. La primera etapa carga el FPGA con un flujo de bits de soporte de exploración de límites conocido como bscan_spi , que otorga a JTAG acceso al puerto SPI al que está conectada la memoria de configuración, luego la segunda etapa carga la memoria de configuración.

Al configurar esto por primera vez, cree un nuevo proyecto dirigido a su FPGA. Dado que los flujos de bits de configuración no son portátiles a FPGA de diferente tamaño, el nombre de archivo del proyecto real debe reflejar el modelo, tamaño y paquete de FPGA objetivo específico (como xc3s700an.bit o xc6slx16_cs324.bit ). El código fuente de ejemplo se proporciona en el subdirectorio bscan_spi cuando descarga el código fuente de sourceforge. Este subdiretory también contiene flujos de bits bscan_spi creados previamente para varios FPGA utilizados comúnmente. Necesita uno de los orígenes de verilog, como bscan_s3_spi_isf.v (spartan-3) y un archivo de restricciones de usuario de UCF para especificar las ubicaciones de los pines FPGA donde está conectada la memoria de configuración SPI de serie activa.

Para mi tablero, personalicé el código bscan_spi para poner un espectáculo de luces de persecución con los LED, para indicar visualmente que el tablero estaba ocupado programando su flash integrado.

Escribiendo memoria de configuración SPI

Los comandos para esta carga de dos etapas son así:

@REM Temporarily load boundary scan support firmware
xc3sprog.exe -L -c bbv2_2 -v %bscan_spi_bit%
@REM Now program the flash
xc3sprog.exe -L -c bbv2_2 -v -I %filename_dot_bit% -R

Si está implementando esta configuración en los clientes para que puedan actualizar el FPGA 'en el campo', solo debe proporcionar al cliente:

1. xc3sprog.exe
2. the bscan_spi bitstream specific to your FPGA
3. your FPGA bitstream
4. batch file or shell script for launching xc3sprog
5. device driver for FTDIchip.com (if customer has very old system where FTDI driver not already built-in)
6. readme.txt file that instructs them to plug in the USB cable and run the batch file

En los archivos de lotes reales, también realizo algunas comprobaciones adicionales para mostrar un mensaje de error que pueda ejecutarse si falta alguno de los archivos necesarios. Omitido para agilizar la respuesta.

    
respondido por el MarkU

Lea otras preguntas en las etiquetas