Flashear el firmware con la herramienta CH347
Cómo escribir una imagen .bin en una tarjeta 75T o 100T con CH347FpgaDownloadTool: estructura de carpetas, el modelo de FPGA correcto, qué puerto usar y cómo comprobar el flasheo después.
Respuesta corta
Pon el .bin en la carpeta CH347FPGATool. Ejecuta CH347FpgaDownloadTool.exe con el cable en el puerto JTAG de la tarjeta. Selecciona xc7a75t o xc7a100t según tu placa. Cambia el formato de archivo a BIN antes de grabar. Si todo va bien, apaga y vuelve a encender el PC de juego, pasa el cable al puerto de datos y lanza una prueba de conexión.
En esta página11
- Qué se escribe realmente al flashear
- Rutas, herramientas y nombres de archivo
- Antes de abrir la herramienta
- El flasheo, por orden
- Elegir el modelo de FPGA equivocado
- No interrumpas un flasheo en marcha
- Cómo es un flasheo que ha salido bien
- La comprobación posterior
- Cuando el flasheo falla
- Preguntas sobre el flasheo
- Fuentes
Qué se escribe realmente al flashear
El CH347 de tu tarjeta es un puente USB de WCH que expone un puerto JTAG por USB. La herramienta de flasheo usa esa vía JTAG para escribir tu imagen de firmware en el chip de flash SPI que hay al lado de la FPGA. En la propia FPGA no se escribe nada que sobreviva a un corte de alimentación: en cada encendido la FPGA lee la flash y se configura con lo que encuentra allí. Ese es todo el mecanismo, y por eso una imagen mala significa una tarjeta que no aparece, no una tarjeta destruida.
Rutas, herramientas y nombres de archivo
Los nombres van literales, porque aquí una errata cuesta una tarde entera. Usa las copias que vienen con tu pedido o las de la sección Downloads, no un mirror cualquiera.
C:\CH347FPGATool\
C:\CH347FPGATool\CH347FpgaDownloadTool.exe
C:\CH347FPGATool\your-order-image.bin
FPGA part selector: xc7a75t (75T boards)
FPGA part selector: xc7a100t (100T boards)
File format selector: BIN (not BIT)Antes de abrir la herramienta
Seis puntos. Cada uno de ellos es un ticket de soporte que no hacía falta abrir.
- Sabes si tu placa es una 75T o una 100T: lee la marca del chip FPGA, no te fíes del anuncio
- La imagen que vas a flashear está compilada para esta placa y para este DNA ID
- El driver CH347 o WCH está instalado en el segundo PC
- El cable es un USB de datos de verdad, enchufado al puerto JTAG de la tarjeta y a un puerto USB trasero
- La tarjeta tiene alimentación: en casi todas las placas eso significa montada en el PC de juego y con el PC de juego encendido
- Nada más en el segundo PC está ocupando el dispositivo USB: el software del lector y MemProcFS están cerrados
El flasheo, por orden
No improvises con el orden. El modelo y el formato tienen que estar bien antes de elegir el archivo, porque algunas versiones de la herramienta borran la ruta del archivo en cuanto cambias cualquiera de los dos.
- Copia la carpeta CH347FPGATool a un sitio con una ruta corta y mete dentro tu imagen .bin
- Pasa el cable USB al puerto JTAG de la tarjeta, en un puerto USB trasero del segundo PC
- Ejecuta CH347FpgaDownloadTool.exe, como administrador si la herramienta dice que no puede abrir el dispositivo
- En el campo FPGA, selecciona el modelo que coincide con tu chip: xc7a75t o xc7a100t
- Cambia el selector de formato de archivo de BIT a BIN
- Pulsa el botón de archivo y elige tu imagen .bin
- Inicia la grabación y deja la máquina en paz: cuenta con varios minutos
- Espera a que la propia herramienta informe de que ha terminado bien antes de tocar nada
Aviso
Elegir el modelo de FPGA equivocado
El selector de modelo le dice a la herramienta qué dispositivo JTAG espera encontrar. Una 100T seleccionada sobre un chip 75T normalmente no consigue abrir la cadena y se niega a grabar, porque el IDCODE de JTAG no coincide. No lo tomes como una red de seguridad. Da por hecho que equivocarte de modelo es un trabajo de recuperación, confirma la marca del chip FPGA en la placa antes de seleccionar nada y, si no consigues leerla, pregunta a soporte en vez de jugártela entre dos opciones.
Aviso
No interrumpas un flasheo en marcha
Mientras la herramienta escribe, el chip de flash no contiene ni la imagen antigua ni la nueva. Tirar del cable, dejar que el segundo PC se suspenda o cortar la corriente del PC de juego en ese momento es la única acción de toda esta guía que produce de forma fiable una tarjeta que ya no se enumera. Si el segundo PC es agresivo con la suspensión, desactívala antes.
Cómo es un flasheo que ha salido bien
Aquí la autoridad es la herramienta, no los LED de la tarjeta. Los LED de una placa DMA suelen indicar alimentación y actividad, y se encienden igual con una imagen corrupta en la flash.
- Duración
- Varios minutos para una imagen completa. Un flasheo que termina en segundos no ha escrito nada
- Salida de la herramienta
- Una línea explícita de finalización o de éxito, sin filas de error por encima
- Progreso
- Un indicador de progreso que llegó al final en vez de quedarse parado a mitad
- No es prueba de nada
- Los LED de la tarjeta. Dicen que tiene corriente, no que esté configurada
- Siguiente paso
- Apagado completo del PC de juego, no un reinicio. El slot tiene que quedarse sin corriente
La comprobación posterior
Un flasheo no está comprobado hasta que la tarjeta vuelve a aparecer como dispositivo PCIe y un lector consigue hablar con ella. Seis pasos, en este orden.
- Apaga del todo el PC de juego, espera diez segundos y vuelve a encenderlo
- Pasa el cable USB del puerto JTAG al puerto de datos (DATA) de la tarjeta
- En el segundo PC, confirma que el dispositivo de datos FTDI aparece en el Administrador de dispositivos sin triángulo de advertencia
- Lanza la prueba de conexión que viene con tu pedido y confirma que llega a la tarjeta
- Lee el DNA ID y comprueba que coincide con el ID contra el que se compiló la imagen
- Solo entonces arranca algo que lea memoria de verdad
Cuando el flasheo falla
Baja por la lista. El arreglo de cada fila cuesta menos que el de la siguiente, así que no empieces dando la tarjeta por muerta.
| Síntoma | Causa probable | Solución |
|---|---|---|
| La herramienta no puede abrir el dispositivo, o no lista ninguno | El cable está en el puerto de datos, falta el driver CH347, o hay otro proceso ocupando el dispositivo | Pasa el cable al puerto JTAG, instala el driver CH347 o WCH, cierra el software del lector y MemProcFS, y ejecuta la herramienta como administrador |
| La cadena JTAG se abre, pero el modelo no coincide | xc7a100t seleccionado en una placa 75T, o al revés | Lee la marca del chip FPGA en la placa y selecciona el modelo que corresponda. No grabes hasta que la cadena informe del dispositivo esperado |
| La grabación empieza y se corta con un error a mitad | Enlace USB justo, un hub o un conector del panel frontal por el camino, o el segundo PC se suspendió durante la escritura | Ve directo a un puerto USB trasero con un cable de datos corto, desactiva la suspensión y repite el flasheo desde el principio |
| El flasheo dice que ha ido bien, pero la tarjeta sigue sin enumerarse | La imagen estaba compilada para otra placa o para otro DNA ID, o el PC de juego solo se reinició | Haz un arranque en frío del PC de juego apagándolo del todo primero. Si sigue sin aparecer, compara el nombre del archivo de imagen con tu pedido antes de volver a flashear |
| La tarjeta se enumera, pero el lector no consigue conectar | El cable sigue en el puerto JTAG, o falta el driver de datos FTDI | Pasa el cable al puerto de datos e instala el driver FTDI D3XX en el segundo PC. Esto es un problema de driver, no de firmware |
| Nada de nada después de una escritura interrumpida | La flash guarda una imagen parcial, así que la configuración de la FPGA nunca llega a completarse | Vuelve a flashear la imagen correcta por el mismo puerto JTAG. JTAG no depende del contenido de la flash, así que esto suele tener arreglo |
Preguntas sobre el flasheo
¿Puedo flashear desde el PC de juego en vez de desde el segundo PC?
No. La herramienta habla con la tarjeta por USB a través del puerto JTAG, y ese cable va al segundo PC. El único papel del PC de juego es dar corriente al slot.
¿Qué es lo correcto, BIT o BIN?
BIN. El ajuste BIT configura la FPGA directamente y se pierde al cortar la alimentación. Las imágenes de firmware de las tarjetas DMA se escriben en la flash SPI, que es la vía BIN.
¿Cuánto debería tardar un flasheo?
Varios minutos para una imagen completa. Si la herramienta dice que ha terminado al cabo de un par de segundos, es casi seguro que no ha escrito nada: revisa el selector de formato y la ruta del archivo.
¿Hay que borrar la flash antes?
No. La herramienta se encarga del borrado como parte de la grabación. Los pasos de borrado manual de los tutoriales genéricos de FPGA no hacen falta aquí y solo añaden un intervalo en el que la tarjeta no tiene ninguna imagen.
¿Puedo flashear la misma imagen dos veces?
Sí, y no pasa nada. Volver a flashear es un primer movimiento razonable cuando una tarjeta se comporta de forma rara después de una escritura interrumpida, porque quita cualquier duda sobre lo que hay en la flash.
Fuentes
La estructura de carpetas, el orden de los pasos y la tabla de errores son nuestros. Salen de flashear estas tarjetas y de los tickets de soporte.
- 01AMD/Xilinx UG910, Vivado Design Suite User Guide: Getting Started
el flujo de programación del dispositivo: la configuración escrita directamente en la FPGA se pierde al cortar la alimentación, mientras que la imagen grabada en la flash permanece
docs.amd.com
- 02AMD/Xilinx DS180, 7 Series FPGAs Data Sheet: Overview
que xc7a75t y xc7a100t son dispositivos Artix-7 distintos, así que el selector de modelo tiene que coincidir con el chip de la placa
docs.amd.com
Sigue leyendo
¿Sigues atascado? Abre un ticket en Discord
Todas las guías