Forums

FPGA board for USB experiments?

Started by Dave Farrance June 3, 2006
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
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:
> 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
"Jim" <cairosearch@gmail.com> wrote:

>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.
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: http://www.xilinx.com/xlnx/xebiz/designResources/ip_product_details.jsp?key=HW-SPAR3E-SK-US 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
Dave Farrance schrieb:

> "Jim" <cairosearch@gmail.com> wrote: > > >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. > > 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: > http://www.xilinx.com/xlnx/xebiz/designResources/ip_product_details.jsp?key=HW-SPAR3E-SK-US > > 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
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
"Antti" <Antti.Lukats@xilant.com> wrote:

>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
Thanks for that. It would have to be the USB interface on the censored page. Is the usb eeprom reprogrammable on-board? -- Dave Farrance
Dave Farrance schrieb:

> "Antti" <Antti.Lukats@xilant.com> wrote: > > >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 > > Thanks for that. It would have to be the USB interface on the censored > page. Is the usb eeprom reprogrammable on-board? > > -- > Dave Farrance
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
"Antti" <Antti.Lukats@xilant.com> wrote:

>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
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
In comp.arch.fpga Dave Farrance <DaveFarrance@omitthisyahooandthis.co.uk> wrote:
> "Antti" <Antti.Lukats@xilant.com> wrote:
> >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
> 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.
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 --------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
Hi,

> 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.
take a look here: http://shop.trenz-electronic.de/catalog/default.php?cPath=1 I think, the Spartan-3 Micromodule with USB UTMI Phy is exactly what you want. best regards Thorsten Trenz
Uwe Bonnes <bon@hertz.ikp.physik.tu-darmstadt.de> wrote:

>In comp.arch.fpga Dave Farrance <DaveFarrance@omitthisyahooandthis.co.uk> wrote: >> 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. > >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).
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