Drivers genéricos para LINUX - PLACA MILK - un FT2232H en ISE 14.7

Placas completas (con o sin programador incorporado): Digilent, Xilinx, "chinas", etc
Responder
Avatar de Usuario
Subcritical
Spartan 3
Mensajes: 225
Registrado: 24 Ago 2018, 14:52

Drivers genéricos para LINUX - PLACA MILK - un FT2232H en ISE 14.7

Mensaje por Subcritical » 23 Jun 2023, 10:44

MILK es un "cable USB", esto es: un circuito electrónico que se conecta al puerto USB de una computadora. El mismo permite comunicarse con diferentes dispositivos electrónicos para configurarlos, almacenar información, etc.
MILK posee dos canales de comunicación, los mismos pueden usarse en forma independiente y utilizando diferentes protocolos.
Para soportar un amplio número de protocolos MILK se basa en un esquema de plug-ins. Cubriendo así un mayor número de situaciones.

Imagen
ImagenImagen

Openocd:

Código: Seleccionar todo

$ ftdi_eeprom --flash-eeprom MilkJTAG_u.conf
$ openocd -f interface/ftdi/milk-basic-B.cfg -f board/ti_beagleboard_xm.cfg
UrJTAG:

Código: Seleccionar todo

cable jtagkey vid=0x0403 pid=0x6010
cable jtagkey vid=0x0403 pid=0x6010 interface=1

Xilinx iMPACT:
El entorno de trabajo ISE de Xilinx utiliza la herramienta iMPACT para configurar las FPGAs y/o las memorias flash asociadas.
Las versiones actuales de iMPACT soportan cables basados en FT2232H.

Es posible utilizar iMPACT helper. En este caso podemos hacerle creer a iMPACT que en el puerto LPT2 tenemos un cable paralelo, que en realidad será MILK. Para esto debemos configurar el driver creando un archivo ~/.libusb-driverrc que diga:

Código: Seleccionar todo

LPT2 = FTDI:0403:6010
Esto sirve para el canal A de MILK. Si deseamos utilizar el canal B basta con poner:

Código: Seleccionar todo

LPT2 = FTDI:0403:6010:2
Usando este mecanismo se pudo configurar FPGAs Spartan 3E, Spartan 6 y Virtex 4.

Esta solución no requiere cambios en MILK, aunque la velocidad de transferencia no es la óptima. Si deseamos sacarle el máximo jugo a iMPACT+MILK es posible utilizar el driver de Digilent que incluye iMPACT. Basta con clonar un cable Digilent o hacerle creer al plug-in de iMPACT que nuestro cable es uno de Digilent. Tuvimos éxito imitando un cable Digilent HS1. Para más información sobre este método por favor contactarnos.

Fuente cable MILK:
https://fpgalibre.sourceforge.net/Milk/ ... l#jtagbase

Lista de correo:
https://sourceforge.net/projects/fpgali ... libre-milk

Contacto:
Para preguntas generales puede usar la lista de correo de MILK.
Para preguntas específicas puede contactar a Salvador E. Tropea o por teléfono al +54-11-4724-6300 interno 6919.

Fuente del desarrollo de MILK:
https://fpgalibre.sourceforge.net/Milk/ ... l#jtagbase
Adjuntos
milk_sch-1_16.pdf
(203.97 KiB) Descargado 312 veces
milk_gerber-1_12.zip
(114 KiB) Descargado 256 veces
milk_kicad-1_16.zip
(405.29 KiB) Descargado 258 veces
milk_openocd.zip
(1.8 KiB) Descargado 252 veces
Ficheros_CONF_MILK_FT2232H.tar.gz
(487 Bytes) Descargado 283 veces
Última edición por Subcritical el 23 Jun 2023, 13:50, editado 1 vez en total.

Avatar de Usuario
Subcritical
Spartan 3
Mensajes: 225
Registrado: 24 Ago 2018, 14:52

Re: Drivers genéricos para LINUX - PLACA MILK - un FT232 en ISE 14.7

Mensaje por Subcritical » 23 Jun 2023, 11:04

Queda explorar la vía de la librería con código fuente libftdi:
https://elinux.org/Libftdi_vs_FTD2XX

Avatar de Usuario
Subcritical
Spartan 3
Mensajes: 225
Registrado: 24 Ago 2018, 14:52

Re: Drivers genéricos para LINUX - PLACA MILK - un FT232 en ISE 14.7

Mensaje por Subcritical » 23 Jun 2023, 11:16

Instrucciones seguidas del siguiente manual/video paso a paso :
https://www.youtube.com/watch?v=meO-b6Ib17Y

Instalación del cable compatible iMPACT:

1. Ejecuta la siguiente secuencia de comandos en la linea de comandos de Linux:

Código: Seleccionar todo

sudo /opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/install_script/install_drivers/./install_drivers
(Esta linea muestra un error code 1, es normal a mi me ha salido y luego me instaló el driver en Debian 12.)

Código: Seleccionar todo

cd /opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/digilent/
sudo ./install_digilent.sh
sudo apt-get install gitk git-gui libusb-dev build-essential libc6-dev-i386 fxload libftdi-dev
cd /opt/Xilinx/14.7
sudo git clone git://git.zerfleddert.de/usb-driver
cd usb-driver
sudo make 
./setup_pcusb /opt/Xilinx/14.7/ISE_DS/ISE/
(Usar en la línea de comandos make para crear binarios de 32bit y 64bit.)

Para evitar la advertencia "iMPACT - Module windrvr6 is not loaded".
agregar al fichero ~/.bashrc la siguiente linea:

Código: Seleccionar todo

 
export LD_PRELOAD=/opt/Xilinx/14.7/usb-driver/libusb-driver.so
Es mejor añadirla a un script que no sea .bashrc dado que se pueden producir problemas con el Xilinx SDK.
Por ejemplo el guión .sh que mencióne en una anterior entrada, para arrancar ise 14.7.
viewtopic.php?f=25&t=457

Fuente y traducción al Español y limpieza de esta entrada del foro de AMD:
https://support.xilinx.com/s/question/0 ... uage=en_US

Responder

Volver a “Placas entrenadoras”