FPGA board for USB experiments?

Hi. I want to get my brain around USB interfaces, how to design the hardware and the software, and eventually to find what economic hardware solutions are available, and how USB hardware interfaces can be arranged to make the best use of generic USB drivers to minimise problems associated with driver installation.

It's not something that I've been able to investigate in the time-limited projects that I've done as an electronic designer, and so I've tended to use RS485 interfaces or other alternatives. I've decided that It's high time that I understood USB, so I'll pick up the knowledge by occasionally dabbling with it at home over a period of a few months which is something that works OK for me.

I'm not very good at reading screeds of technical description and retaining it in my memory, so I need to get my hands dirty with some experimental design and coding that I can interact with to get the concepts anchored in my mind. I'm reasonably competent in C, C++, VHDL and Verilog, and can code quite swiftly.

To kick off, I'd like to get an FPGA board with a RAM-based FPGA that can be configured via a serial or USB cable to a laptop. For my experiments, the board also needs a USB interface that passes the raw USB data stream directly to the FPGA, or it should be easily convertible to do so. The FPGA needs to be big enough to hold open-source HDL USB interfaces and to hold models that mimic the interfaces to common USB equipment like flash keys, printers and modems. Any suggestions? I'm aiming to keep the cost reasonable - $100 to $150 say - and I'm prepared to put up with the limitations of free software such as the speed-crippled Modelsim HDL simulator.

--
Dave Farrance
Reply to
Dave Farrance
Loading thread data ...

Take a look at opalkelly.com. They have very elegant boards and excelent abstraction of the USB link (Verilog and VHDL on the board side and C++,Java and Python on Windows and Linux). Check the FrontPanel user's manual.

Jim.

Dave Farrance wrote:

Reply to
Jim

Thanks. That's the sort of thing that I'd probably use once I'd understood USB, and needed to design a USB interface plus programmable logic into (say) in-house test equipment. It's a bit expensive for self-teaching, though.

I note that Xilinx can sell a board with a 500K-gate FPGA and a huge bunch of peripherals (and configuration via USB) for just $149:

formatting link

So I'd hoped that an FPGA starter-kit type of board that was pared down to USB could be obtained from somebody for under $150.

I guess I'll look at the schematics of the Xilinx starter kit, and see if it can be rewired to also pass the USB data stream directly to generic-I/O on the FPGA.

--
Dave Farrance
Reply to
Dave Farrance

Dave Farrance schrieb:

formatting link

the USB chip on the Xilinx s3e starterboard is the same as on the opalkelly board I think, so just rewrite the usb eeprom and use the xilinx s3e board as usb devel board - only drawback you need to re-create that parts of the schematic that xilinx censored out from the digilent design eg the wiring of the usb controller - but with an beep-tester it should not take longer than a few hours

Antti

Reply to
Antti

Thanks for that. It would have to be the USB interface on the censored page. Is the usb eeprom reprogrammable on-board?

--
Dave Farrance
Reply to
Dave Farrance

Dave Farrance schrieb:

the usb micro is cypress fx2 so if you dont load xilinx usb drivers then you should be able to rewrite the eeprom using cypress tools

Antti

Reply to
Antti

Ah, I see. I've looked up the Cypress FX2 details, but I'm not interested in developing interfaces to a specific USB controller chip at the moment. I want to investigate the generic USB protocol hardware, and I'd put that on the FPGA itself.

I'll use another USB port for that, and I'll put together a transceiver board to handle the signal-levels so that I can route the raw data stream directly to the FPGA I/O. Such a USB interface would be speed-limited, but I'm not worried about that.

--
Dave Farrance
Reply to
Dave Farrance

The interface is not only speed limited, but also missing needed functionality, at least for USB2. USB+ and USB- need to be evaluated in many ways, not possible with a normal FPGA input. There are chips implementing the physical access (UTMI).

--
Uwe Bonnes                bon@elektron.ikp.physik.tu-darmstadt.de

Institut fuer Kernphysik  Schlossgartenstrasse 9  64289 Darmstadt
 Click to see the full signature
Reply to
Uwe Bonnes

Hi,

take a look here:

formatting link

I think, the Spartan-3 Micromodule with USB UTMI Phy is exactly what you want.

best regards Thorsten Trenz

Reply to
Thorsten Trenz

Thanks. I see. If I built an transceiver board myself, it'd have to be for USB 1.1 with a basic transceiver chip such as the MAX3346E which I'd run at low speed. I have managed to solder 14-pin TSSOP packages to prototype boards in the past, although I'd rather find a DIP chip if I could.

--
Dave Farrance
Reply to
Dave Farrance

Ah yes. Thanks. That's the most promising so far. The Trendz TE-XC3S micromodule with TE-0143 carrier board and TE-0149 programmer comes to $173. I can live with a parallel-port programmer, although I rather have USB or serial-port programming.

--
Dave Farrance
Reply to
Dave Farrance

Whoops, I mangled your name, Herr Trenz. Sorry about that.

--
Dave Farrance
Reply to
Dave Farrance

Dave

Have a look at this module

formatting link
in conjunction with our Raggedstone1 product. Basically the module is a voltage limiter(bus switch) on the USB lines leaving the logic to be implemented in the FPGA.

--
John Adair
Enterpoint Ltd. - Home of Raggedstone1. The Low Cost Spartan-3 Board.
 Click to see the full signature
Reply to
John Adair

Thanks. I'm a bit confused by the "shop" section. The RS1-400 and the RS1-1500 both have the same description including:

"FPGA: XilinxTM SpartanTM-3 FPGA, in FG456 package, fitted to the board. Available with XC3S400 fitted."

I presume that it should be the XC3S1500 in the latter case.

Also the wording is ambiguous. I presume that "Available with XC3S400 fitted" does mean that the FPGA *is* fitted for the that price, rather than being an option?

--
Dave Farrance
Reply to
Dave Farrance

Yes chips are fitted. The RS1-1500 has a XC3S1500.

I will see if we can get the text a little less ambiguous. There are a few areas like this that we need to tidy up on the website.

John Adair Enterpoint Ltd. - Home of Broaddown2. The Ultimate Spartan3 Development Board.

formatting link

Reply to
John Adair

Dave Farrance skrev:

If it is a just for fun hack kinda thing you don't need a transciever. I've implemented the opencores usb core in an FPGA using just two normal IOs and a pullup connected to a usb connector and a little fpga logic to simultate the phy. got as far as getting plugged and enumerated on windows, never used it for anything though

-Lasse

Reply to
langwadt

Got VHDL?

Thanks! Rich

Reply to
Rich Grise

Thanks. I'll bear that in mind.

Actually, I've just remembered that there are cheap tssop-to-dip adaptors available, which are easy to solder. Just run some solder along the pins, and wick off the excess with solder-braid.

I'll probably use a pre-built interface like the Enterpoint one mentioned elsewhere in this thread, though.

--
Dave Farrance
Reply to
Dave Farrance

many

the

Nope Verilog ;)

can't find it at the moment but was something like this at the top level.

inout Dplus; // pin connected to USB D+ inout Dminus; // pin connected to USB D-

wire txdp; // Dplus data (from usb_phy) wire txdn; // Dminus data (from usb_phy) wire txoe; // output enable for Dplus/Dminus (from usb_phy) wire rxd ; // data from differential receiver (to usb_phy) wire rxdp; // data from Dplus (to usb_phy) wire rxdn; // data from Dminus (to usb_phy)

assign Dplus = (txoe ? txdp : 1'bz); assign Dminus = (txoe ? txdn : 1'bz);

assign rxdp = Dplus; assign rxdn = Dminus;

assign rxd = Dplus; // no differential receiver, so just use Dplus and hope

-Lasse

Reply to
langwadt

Thanks to everybody that helped me in this thread. I've decided to buy the above product.

--
Dave Farrance
Reply to
Dave Farrance

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.