¿Reemplazar un chip FT2232 con un microcontrolador personalizado?

0

Quiero hacer una placa de circuito que tenga la capacidad de configurar (no estoy seguro de si es el término correcto, pero grabar un diseño VHDL (svf, pof file generado por Quartus)) en Altera CPLDs y FPGAs de mi computadora.

Conozco un par de maneras de hacer esto. Puedo usar un cable Altera USB Blaster y grabar directamente el archivo utilizando Quartus. Otra cosa que he visto con frecuencia es generar un archivo pof / svf desde Quartus y usar urJTAG para programar el chip a través de un FT2232 puente USB a JTAG.

Tengo algunas preguntas aquí,

  1. ¿Son estas las formas estándar de configurar los chips Altera? ¿Hay algún otro enfoque popular?

  2. ¿Es práctico hacer mi propio puente de USB a JTAG en un chip de microcontrolador 8051 (o mejor) y configurar con éxito el chip Altera mediante un corto pyusb script?

  3. ¿Recomienda el enfoque (2) por alguna razón además de un buen ejercicio de ingeniería?

  1. (demasiado amplio para la respuesta, pero se agradece cualquier ayuda) Como nota al margen, ¿hay algún canal / foro de IRC activo en el que se discutan ampliamente tales ideas? Además, ¿cuál es el mejor lugar para buscar recursos relevantes para este proyecto?
pregunta martianwars

1 respuesta

4
  

¿Son estas las formas estándar de configurar los chips Altera? ¿Hay algún otro enfoque popular?

Bueno, al menos son populares. Por supuesto, no tiene que usar un chip FTDI para hacer JTAG; de hecho, hay una gran cantidad de tableros de evaluación de microcontroladores que tienen JTAG basado en un firmware que se ejecuta en un microcontrolador que "habla" de USB.

Muchos FPGA tienen la capacidad de cargar de forma autónoma su configuración desde un tipo específico de Flash / EEPROM. Es muy común tener un microcontrolador conectado al mismo chip de memoria y programar la memoria de configuración a través del microcontrolador, y luego reiniciar el FPGA, lo que activa la carga autónoma.

Otra opción, si su FPGA lo admite, es que en lugar del chip de memoria, el FPGA habla directamente a un microcontrolador. Esta versión se encuentra muy a menudo en dispositivos integrados, donde de todos modos hay un controlador "principal".

  

¿Es práctico hacer mi propio puente de USB a JTAG en un chip de microcontrolador 8051 (o mejor) y configurar con éxito un chip Altera mediante un breve script pyusb?

Claro. Por qué no? Normalmente no usaría pyusb pero escribiría un controlador para, por ejemplo. OpenOCD o similar, pero sí, eso se hace comúnmente. JTAG no es un estándar eléctrico demasiado complejo. De hecho, hay muchos diseños abiertos que funcionan de USB a JTAG sin un chip FTDI; En su mayoría de memoria y el OpenOCD docs :

Lo bueno de estos diseños es que funcionan directamente con openOCD (por lo tanto, ya tienes un software operativo que puede cargar imágenes a través de JTAG si OpenOCD es compatible con tu objetivo). ¡Hay docenas más por ahí! Por lo general, las hojas de datos de FPGA y CPLD también especifican bastante bien cómo debe realizarse la carga del flujo de bits, por lo que no es imposible escribir su propio controlador.

Creo que es importante aclarar un malentendido común: JTAG es solo una especificación eléctrica y una especificación lógica en el nivel de "taps de depuración" y "registros de desplazamiento". Cómo hacer algo específico en un dispositivo específico (en su caso, la lógica programable de Altera) depende de lo que impulsa la interfaz JTAG.

Por lo tanto, tener JTAG es como "tener RS-232": Claro, ahora puede conectar varias computadoras (dispositivos bajo prueba), pero eso no significa que ya pueda intercambiar información sensible con esas (depurarlas). Eso es una lógica de nivel superior no especificada por RS-232 (JTAG).

  

¿Recomienda el enfoque (2) por alguna razón además de un buen ejercicio de ingeniería?

Sí, lo recomiendo porque a menudo se realiza en la industria, no tan a menudo a través de JTAG, sino simplemente implementando la interfaz de carga de configuración en el software del microcontrolador / CPU.

Por ejemplo, los periféricos de radio del software Ettus de USRP1 (diez años antes) carga la imagen FPGA a través de un Cypress FX2, que es un microcontrolador basado en 8051 con interfaz USB2, en la memoria de configuración del FPGA, desde donde se carga el FPGA It.
El USRP B200 , B210 , B200mini etc. no incluso tiene alguna memoria de configuración: la imagen se carga directamente a través del firmware que se ejecuta en el Cypress FX3 (ARM A9 con USB3) en el FPGA desde el USB. El firmware en sí mismo se carga a través de USB: la única configuración del dispositivo es un cargador de arranque que permite que FX3 cargue el firmware a través de USB.
Todos sus esquemas están disponibles en línea, así como el firmware y FPGA .

Si tuviera que construir mi propio adaptador: probablemente solo use una Raspberry Pi como dongle JTAG , solo por la facilidad de compra.

    
respondido por el Marcus Müller

Lea otras preguntas en las etiquetas