USRP - FX2 / gpif / EEPROM / firmware questions

Hi,

Have rejoined the gnuradio mailing list after a little
while.

I am developing a hardware project similar to the USRP
in that it uses the 100-pin FX2 USB micro and houses
several FPGAs (Xilinx in this case), as well as a dual
ADC.

I have a couple questions about the USRP design that
would greatly help me on my way to getting my device
to communicate with a host PC (I have downloaded the
gnuradio source code)

  1. Looking at the schematics for the usrp motherboard,
    I couldn’t find an eeprom (for storing user VID and
    PID values) - is this correct? If so, can the FX2
    operate without an eeprom in one of its default modes
    (EP2 IN, EP6 OUT)?

  2. I’m developing under windows, and have obtained the
    Cypress fx2 console, the gpif designer and CyAPI
    interface to their driver. Looking at the usrp code
    (usrp_gpif.cc) I notice comments that Cypress’s app
    has bugs and that you have modified their descriptor
    tables(?) and other code. Please could you explain the
    modifications and reasons behind this.

  3. Finally, I am developing for Xilinx fpga’s in vhdl.
    I’m not familiar with verilog (though I could pick it
    up fairly quickly I hope!), and would really
    appreciate a brief description of the fpga-fx2
    interface (control/data signals etc). Though I am
    tryign to get this project up and running under
    windows, it may be simpler to try and integrate my
    firmware and so on within your software framework.

Any help you guys have for me would be fantastic

Cheers
Kalen Watermeyer


Introducing the new Yahoo! Answers Beta ? A new place to get answers to
your questions ? Try it http://uk.answers.yahoo.com

I am developing a hardware project similar to the USRP
in that it uses the 100-pin FX2 USB micro and houses
several FPGAs (Xilinx in this case), as well as a dual
ADC.

Great! Any chance that we can use your hardware (or its design)?
There are lots of people doing things with GNU Radio who would be
happier to have more FPGA firepower.

How far along is your design? How many will you be fabricating, and
are they going to be deep inside some other product, or is there a
chance that people will be able to buy them?

(If your hardware used the same daughterboard interface as the USRP –
both the electrical and mechanical specs – then you could avoid lots
of RF section development.)

appreciate a brief description of the fpga-fx2
interface (control/data signals etc).

Matt and Eric have the details of how the USRP does it – and how they
had to work around bugs in the FX2 (Cypress came up with a secret errata
sheet ONLY AFTER they beat their heads against the wall watching the
part do strange things).

But as an overview, the USRP’s FPGA/FX2 interface is complicated
because it uses the GPIF mode, which supports bidirectional transfers
to/from the USB. There is a much simpler “SSRP” design which just
supports unidirectional transfers (e.g. USB reads from the ADCs).
This uses the simple “slave FIFO” mode in the FX2, and also provides
slightly higher USB thruput, because the FX2 firmware doesn’t need to
get involved in every block transferred. See:

http://oscar.dcarr.org/ssrp/software/firmware/firmware.php

Though I am trying to get this project up and running under windows,
it may be simpler to try and integrate my firmware and so on within
your software framework.

There’s a very active Windows port of the whole GNU Radio software
suite.
See:

http://www.olifantasia.com/pub/projects/gnuradio/mdvh/mingw/binary-installer/gnuradio-with-usrp/
http://www.olifantasia.com/pub/projects/gnuradio/mdvh/mingw/

John

At 01:42 PM 5/10/2006, John G. wrote:

I am developing a hardware project similar to the USRP
in that it uses the 100-pin FX2 USB micro and houses
several FPGAs (Xilinx in this case), as well as a dual
ADC.

Great! Any chance that we can use your hardware (or its design)?
There are lots of people doing things with GNU Radio who would be
happier to have more FPGA firepower.

Has anyone looked into these?

http://www.comblock.com/com1200.htm

Steve