discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] USRP source/firmware


From: Eric Blossom
Subject: Re: [Discuss-gnuradio] USRP source/firmware
Date: Tue, 15 Jun 2004 22:28:54 -0700
User-agent: Mutt/1.4.1i

On Tue, Jun 15, 2004 at 08:13:14PM -0500, David Carr wrote:
> Hey all,
> 
> I got my $89 EZ-USB FX2 board in last night.  It looks pretty cool so 
> far.  As I try to get started with capture hardware development, I was 
> wondering where I might get the source for the USRP firmware and host 
> applications.  The FX2 is also used on board the USRP.  This is really 
> cool because I could see how we could share a lot of code.

The code's currently housed in CVS on source forge.

   This project's SourceForge.net CVS repository can be checked out
   through anonymous (pserver) CVS with the following instruction
   set. The module you wish to check out must be specified as the
   modulename. When prompted for a password for anonymous, simply press
   the Enter key. To determine the names of the modules created by this
   project, you may examine their CVS repository via the provided
   web-based CVS repository viewer.
 
   cvs -d:pserver:address@hidden:/cvsroot/opensdr login
   cvs -z3 -d:pserver:address@hidden:/cvsroot/opensdr co -P usrp

When you check it out you'll get three subdirectories

     usrp/host
     usrp/firmware
     usrp/fpga

Under host you'll find lib and apps.  There is a library of primitives
called usrp_prims.{h,cc} that you should be able to use as is, at
least for loading code, etc.  We build some C++ classes on top of these
primitives.  You'll also probably want to take a look at the
usrp_basic.{h,cc} classes.  These implement the magic required to sustain
32MB/sec across the USB.

In host/apps is an application called "usrper" that will load firmware
into the FX2.  

In the firmware directories are some very simple LED blinking test
programs.  You'll need to mess around with i/o definitions to match
whatever is on your board, but you should be able to get a LED blinking
without much trouble.

> Also, are data transfers being done in isochronus or bulk mode?

Bulk.  The throughput you can obtain with isochronus is quite limited.
I believe it's chapter 9 of the USB spec that talks about the
peripheral end of the bus.  Definitely worth taking a look at.
http://www.usb.org

> Any other pointers on using this chip / linux usb subsystem would be
> greatly appreciated.

Besides the data sheet, there's a big technical manual for the FX2.
http://www.keil.com/dd/docs/datashts/cypress/fx2_trm.pdf

We control the usb from user mode on the host using libusb
(libusb.sf.net).  We use linux specific system calls to get the high
throughput.  Take a look at fusb.{h,cc} for info on that.

> Thanks,
> David Carr

Good luck, and let us know how it goes!

Eric




reply via email to

[Prev in Thread] Current Thread [Next in Thread]