-
Notifications
You must be signed in to change notification settings - Fork 26
Digilent Atlys Board: Loading Firmware
There are multiple ways to load the Digilent Atlys board with firmware. The loading process occurs in 3 stages;
- [Stage 0] - Flash the Cypress FX2 chip with firmware suitable for flashing the FPGA1
- [Stage 1] - Flash the Xilinx Spartan-6 FPGA with HDMI2USB firmware
- [Stage 2] - Flash the Cypress FX2 chip with HDMI2USB firmware (nothing happens until you complete the following steps)
- [Stage 3] - Pull USB plug out of the computer, plug the USB plug back into the computer, the HDMI2USB device should appear.
For each stage you must use at most ONE process.
1: This Stage 0 is not needed if using the Digilent tools.
You can skip this stage as the Digilent Atlys board already Adept compatible firmware already loaded on the Cypress FX2 chip's flash.
To use this method you must have the Adept 2.XX.XX Utilities installed and Adept 2.XX.XX Runtime installed.
- Step 1 - Plug the power from your power pack into the POWER port.
- Step 2 - Plug the micro-USB cable from your computer into the PROG port.
- Step 3 - Flick the power switch on the board, next to the POWER port.
- Step 4 - Run
djtgcfg enum
, output should be as follows;
$ djtgcfg enum
No devices found
$
- Step 5 - Toggle the POWER switch to the ON position
- Step 6 - Run
djtcfg enum
, output should be as follows; If it doesn't, see the Troubleshooting Digilent Adept tools section
$ djtgcfg enum
Found 1 device(s)
Device: Atlys
Product Name: Atlys
User Name: Atlys
Serial Number: 210178440327
$
- Step 7 - Run
djtcfg init -d Atlys
, output should be as follows; If it doesn't, see the Troubleshooting Digilent Adept tools section
$ djtgcfg init -d Atlys
Initializing scan chain...
Found Device ID: 44008093
Found 1 device(s):
Device 0: XC6SLX45
- Step 8 - Run
djcfg prog -d Atlys -i 0 -f hdmi2usb.bit
, output should be as follows; If it doesn't, see the Troubleshooting Digilent Adept tools section
$ djtgcfg prog -d Atlys -i 0 -f hdmi2usb.bit
Programming device. Do not touch your board. This may take a few minutes...
Programming succeeded.
$
- Step 9 - The DONE light near the red RESET button should light up.
You have now completed Stage 1 - continue to Stage 2 to program the Cypress FX2 chip.
IMPACT must be installed from the Xilinx Design Tools suite. The Digilent ADEPT tools must also be installed.
To avoid having to use the Impact GUI, the following script can be used https://gist.github.com/shenki/5387626
impact -batch download.cmd
Once you complete Stage 2 you be unable to go back to Stage 1 without a power cycle.
WARNING: The version of fxload that comes with Ubuntu/Debian is too old*
You can download fxload
from https://github.com/pbatard/fxload or you can use a prebuilt version found at the same location as the prebuild hdmi2usb firmware.
- Step 1 - Check your
fxload
binary is new enough;
Too old
$ fxload -V
Jun 3 2010 (development)
$
Okay
$ ./fxload -V
Mar 12 2013 (development)
$
- Step 2 - Load the Cypress chip with the firmware using
./fxload -vvv -t fx2 -D 1443:0007 -I uvc_bulk.hex
. This command will appear to return instantly!
You should also be able to use http://www.makestuff.eu/wordpress/software/fx2tools/
./fx2loader --vidpid=1443:0007 uvc.hex ram
- Step 1 - Unplug the USB micro-cable connected to PROG. DO NOT DISCONNECT THE POWER
- Step 2 - Plug the USB micro-cable back into the PROG port.
- Step 3 - Check your kernel logs via
dmesg
to see if the device is found. It should look something like;
$ dmesg
....
[2248378.275226] USB Video Class driver (1.1.1)
[2248383.716221] usb 2-1.2.2: USB disconnect, device number 8
[2248386.504681] usb 2-1.2.2: new high-speed USB device number 9 using ehci_hcd
[2248386.616200] uvcvideo: Found UVC 1.00 device HDMI2USB (fb9a:fb9a)
[2248386.616463] uvcvideo: UVC non compliance - GET_DEF(PROBE) not supported. Enabling workaround.
[2248386.617060] cdc_acm 2-1.2.2:1.2: This device cannot do calls on its own. It is not a modem.
[2248386.617078] cdc_acm: probe of 2-1.2.2:1.2 failed with error -22
- Step 4 - Use the device as required.