FPGA bitstream/ROM updates

From DP

Jump to: navigation , search


The Logic Sniffer stores the FPGA (IC3) bitstream in a flash ROM chip (IC2). The PIC microcontroller (IC1) can update the bitstream from a computer using the multi-platform pump-loader application. This feature lets us release FPGA design updates with new features and bug fixes that can be loaded over the USB connection.

To enter ROM update mode, press the reset button while holding the update button. The ACT LED lights when the board is in ROM update mode. The PIC will also automatically enter ROM update mode if the FPGA doesn’t load correctly after a few seconds because of an error or blank ROM chip.

Update instructions follow the break. You can order the OLS at Seeed Studio for $50, including worldwide shipping. Don’t forget that Seeed now has probe cables for $6 each.

The OLS connects to a computer as a USB virtual serial port in ROM update mode. This is the same connection type used for the normal operating mode. The first time you plug it in, give Windows the .inf file from the project archive to assign the correct drivers to the device.


Stuff you'll need

  1. pump-loader application for your platform
  2. Logic Sniffer FPGA bitstream HEX (.mcs file) or binary (.bit file)

Grab the latest bitstreams and pump-loader update application from the Gadget Factory download page

ROM update procedure

1. Connect the Logic Sniffer to a USB port. Hold the update button down and press the reset button once.
2. The ACT LED will light and the OLS will enumerate as a USB virtual serial port.

C:\pump>pump-loader -p:COM4 -status
PUMP loader
Opening serial port 'COM4' @ 921600 ... OK
Found PUMP HW: 1, FW: 0.1, Boot: 1
Found flash: ATMEL AT45DB041D
no input file specified !

3. Run pump-loader with the -status option to verify that the firmware is listening.

Specify the OLS serial port (-p:) for your system. Pump-loader will connect to the OLS and read the OLS hardware/firmware/bootloader version numbers, and verify the ROM flash chip ID.

C:\Perl\eg>pump-loader -p:COM4 -write -wH:pump.mcs -run
PUMP loader
Opening serial port 'COM4' @ 921600 ... OK
Found PUMP HW: 1, FW: 0.1, Boot: 1
Found flash: ATMEL AT45DB041D
Reading HEX file 'pump.mcs' ... OK! (binary size = 169216)
Will write 641 pages
Page 0x0000 write ... OK
Page 0x0280 write ... OK
PUMP switched to RUN mode

4. Use pump-loader to write a SUMP FPGA bitstream to the ROM chip.

Specify a HEX (-wH:) or binary (-wB:) bitstream file to write (-write) to the OLS. Note that bitstream HEX files actually have the extension .mcs, as shown in the example.

The upload will take a few seconds, but the operation isn't critical. If it fails or is interrupted nothing will be damaged, just try the update again. If you use the -run flag the OLS will exit update mode and return to normal operating mode when the upload is complete.

Thank You

Special thanks to Michal Demin, Piotr Pawluczuk, and Uwe Bannow for working on the pump-loader utility. Michael won our developer’s challenge with his lightning-quick coding skills.

Packaged FPGA ROMs and code/ROM repository

See also Logic Sniffer: upgrade process on Linux