Asimismo es comun a otras placas que tengan la FPGA Spartan X16 de Xilinx y una SPI Flash. Para otros modelos de Xilinx es muy similar.
El procedimiento es el mismo , hay que partir de una imagen BIN de la SPI Flash a programar.
Comentare el caso de la SPI Flash secundaria del N-Go y la instalacion del core de Spectrum de McLeod para ZXDos (adaptado al ZX Next) junto con las ROMS del sistema, y el firmware.
Como introduccion la distribucion de la SPI Flash para el ZXDOS , que es el core que vamos a portar , esta es la disposicion de la SPI Flash
Código: Seleccionar todo
000000-004000 Boot Header Xilinx
004000-0BC000 Firmware-ROMs (44 ROMs)
--(004000-006000) ESXDOS
--(006000-008000) ROM Directory
--(008000-00C000) Firmware-BIOS
--(00C000-098000) 35 Spectrum ROMs
0098000 - Bitstream 1
010C000 - Bitstream 2
---------------------------
Esos 1097728 bytes sera nuestro tamaño de la imagen bin a flashear. Despues de esta aclaracion vamos a empezar entonces
Necesitamos un USB Blaster como este Actualmente yo me he encontrado 2 tipos de USB-Blaster
1) El que usa un controlador Microchip PIC18F14 y no tiene buffers (solo soporta señales de 5 V) 2) El que usa un controlador ST STM32F101 (STM32F103 con soporte USB) y un 74HC244 octal-buffer (para señales entre 2.0 a 6.0 V) Pasos
1) Conectar los cables del JTAG , son 6 cables (VCC, TDI, TMS, TDO, TCK y GND)
Del lado del conector ZX NEXT tenemos este esquema (visto desde arriba, del lado de los componentes) Y del lado del USB-Blaster Una vez hayamos realizado las conexiones a los dos conectores , procedemos con el siguiente punto
2) (Solo para windows.)
Primero tenemos que cambiar los drivers de la USB-Blaster a LibUSB
Descarga la utilidad USBTool desde https://visualgdb.com/UsbDriverTool/
El archivo a descargar es este: http://sysprogs.com/getfile/413/UsbDriverTool-2.0.exe
Instalalo y ejecutalo el UsbDriver
selecciona el dispositivo Altera USB-Blaster y presiona el boton derecho del raton sobre el.
Selecciona la opcion “Install Libusb-WinUSB" Al final se mostrara esta ventana 3) Descarga ahora el openOCD desde aqui https://github.com/gnu-mcu-eclipse/openocd/releases
La version de 64 bits para windows esta aqui https://github.com/gnu-mcu-eclipse/open ... -win64.zip
Si quieres descargar la ultima version para Windows puedes hacerlo desde aqui https://gnutoolchains.com/arm-eabi/openocd/
Ve a la carpeta de instalacion del \OpenOCD\0.10.0-11-20190118-1134\bin> (Ojo la version de 64 bits no funciona bien)
y copia a ese directorio los siguientes ficheros que he adjuntado en este post como "config_files.zip" -Altera-usb-blaster.cfg
-Xilinx-xc6s.cfg
-bscan_spi_xc6slx16.bit
Copia tambien en el mismo directorio tu fichero BIN y executa el siguiente comando
Código: Seleccionar todo
openocd -f altera-usb-blaster.cfg -f xilinx-xc6s.cfg -f jtagspi.cfg -c "init; jtagspi_init 0 bscan_spi_xc6slx16.bit;
jtagspi_program FLASH_empty_ZXUNO_0.77.bin 0x00000 ; fpga_program ; exit"
Como observareis el proceso tarda en total entre minuto y medio y dos minutos, bastante mas rapido que programar una SPI Flash entera de 16 MB , lo cual dura 16 veces mas. Nota Importante: (Solo para Windows)
Si quieres usar el USB-Blaster para programar tarjetas Altera en Quartus necesitas restaurar el driver original de esta manera
Ejecuta de nuevo UsbDriver Tools
selecciona el dispositivo Altera USB-Blaster y presiona el boton derecho del raton sobre el.
Selecciona la opcion “Restore default driver" Asi es como se tiene que mostrar la ventana al final del proceso Espero que este tutorial os sirva
Un Saludo