El proceso es muy similar al ya existente de la Pi viewtopic.php?f=141&t=62 (gracias a DaCarSoft), pero en vez de usar los GPIOs de la Pi, usaremos el USB-Blaster
Este es el USB-Blaster que uso
![Imagen](https://images-na.ssl-images-amazon.com/images/I/51iKTinDsSL._AC_UL130_.jpg)
Atencion: Se programa partiendo de un archivo SVF (tendras que convertirlo desde SOF o generarlo desde Quartus II)
1) Debes de descargar el OpenOCD e instalarlo en tu Raspberry Pi
Se necesita compilarlo para activar la libreria libfdi de nuestro USB-Blaster
1.1) Actualizar repositorios
Código: Seleccionar todo
$ sudo apt-get update
$ sudo apt-get upgrade -y
$ sudo apt-get dist-upgrade -y
Código: Seleccionar todo
$ sudo apt-get install git autoconf libtool make pkg-config libusb-1.0-0 libusb-1.0-0-dev telnet
$ sudo apt-get install libtool autoconf texinfo libusb-dev
Código: Seleccionar todo
$ git clone http://git.code.sf.net/p/openocd/code openocd-code
$ cd openocd-code
$ ./bootstrap
$ ./configure --enable-usb_blaster_libftdi --enable-sysfsgpio --enable-bcm2835gpio
$ make
$ sudo make install
$ cd ..
2) Creas el siguiente archivo de configuracion para el interface OpenOCD
Contenido del archivo altera-usb-blaster.cfg
Código: Seleccionar todo
#---------------------------------------- start here ---------------------------------------------------
# Altera USB-Blaster
interface usb_blaster
usb_blaster_lowlevel_driver ftdi
# Slow speed to be sure it will work
adapter_khz 1000
jtag newtap auto0 tap -irlen 2 -expected-id 0x020f10dd
#--------------------------------- end file --------------------------------------------------------------------
4) Este es el commando final para programar el UnAmiga o una FPGA de Altera
Código: Seleccionar todo
$ openocd -f altera-usb-blaster.cfg -c "init ; svf /home/benitoss/Desktop/tube_CycloneIV.svf ; shutdown"
Si este comando no te funciona puede ser porque necesitas ejeecutar el OpenOCD como sudo y no puede acceder al USB-Blaster por un problema de permisos (ver el Anexo: Permitir acceso a la USB-BLaster)
Anexo: Permitir acceso a la USB-Blaster
1) Creamos el archivo de reglas 92-usbblaster.rules
Código: Seleccionar todo
$ sudo nano /etc/udev/rules.d/92-usbblaster.rules
Código: Seleccionar todo
#-----------[b][color=#0000FF]Content of 92-usbblaster.rules[/color][/b] ----------------------
# USB-Blaster
SUBSYSTEM=="usb", ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6001", SYMLINK+="usb_blaster", MODE="0666"
#-------------------- End of file --------------------------------
Si os interesa preguntarme como averiguarlo y os lo comento
Una vez introducido la configuracion anterior cerramos y salvamos
3) Aplicamos permisos al archivo generado
Código: Seleccionar todo
$ sudo chmod 0644 /etc/udev/rules.d/92-usbblaster.rules
Código: Seleccionar todo
$ sudo udevadm control --reload-rules
$ sudo udevadm trigger
$ sudo /etc/init.d/udev restart
Probamos si el sistema lo reconoce
Código: Seleccionar todo
$ ls -l /dev/usb_blaster
lrwxrwxrwx 1 root root 15 Aug 30 22:04 /dev/usb_blaster -> bus/usb/003/004
Espero que os ayude y simplifique la programacion desde vuestras Raspberries y sin tener que andar con cablecillos desde el GPIO
Cualquier cosa estoy a vuestra disposicion