Tech Support > Computer Hardware > Microprocessors > Embedded USB
Embedded USB
Posted by Roger on January 21st, 2007


I'd like to interface a USB mouse to an FPGA. Does anyone have any advice
regarding how best to go about doing this. I suspect the use of some form of
bridge chip or uC is the way to go but all these seem dominated by the
assumption that a PC is involved. Has anyone had any experience in doing
this kind of thing please?

TIA,

Rog.


Posted by larwe on January 21st, 2007



Roger wrote:
There are UHCI and presumably EHCI cores for FPGAs. However, it's a
*lot* of space in your FPGA, just to support a mouse. Maybe you want to
consider one of the embedded host ICs like the Cypress SL811HS.


Posted by cs_posting@hotmail.com on January 22nd, 2007


Roger wrote:
Go to your local hamfest/computer swap meet and see if you can find
someone who will trade your USB mouse for a serial or PS/2 one.

The difference in complexity of the project will be reduced by a factor
of several hundred...


Posted by Michael R. Kesti on January 22nd, 2007


cs_posting@hotmail.com wrote:

....unless your anticipated build volume exceeds one.


--
================================================== ======================
Michael Kesti | "And like, one and one don't make
| two, one and one make one."
mrkesti at hotmail dot com | - The Who, Bargain

Posted by charlesoram@hotmail.com on January 22nd, 2007


Roger wrote:
Hi,
You may be able to use a VNC1L from FTDI (USB host controller).
See http://www.ftdichip.com/FTProducts.htm#Vinculum

- Charles


Posted by RaceMouse on January 22nd, 2007


Roger wrote:
can be both host and device...

/RaceMouse

Posted by Andrew Jackson on January 22nd, 2007


You could try using the Maxim 3421E which is driven through an SPI
interface. I've used one of these and they are quite straightforward to
program (a simple register interface). As others have remarked the FTDI
and Cypress chips are alternative possibilities.

Andrew

Posted by Hans-Bernhard Bröker on January 24th, 2007


Roger wrote:
My advice would be: don't try. It may be possible, but it's almost
certainly not practical.

Unless that FPGA is really very big, and doing a heck of a lot of things
already, the USB implementation would probably end up an order of
magnitude bigger than the entire rest of the the project. It takes a
rather powerful CPU and a good deal of extra code/builtin libraries to
implement USB host-side. Doing that in an FPGA would be like mounting
your bed-side alarm-clock on an 18-wheeler in order to move it long
distances.

That's because the whole *idea* of USB is that a PC should be involved.
The move towards USB can be interpreted as a nifty marketing plan
to keep PCs alive and present in households for the foreseeable future.

Posted by 42Bastian Schick on January 26th, 2007


On Sun, 21 Jan 2007 22:31:40 -0000, "Roger"
<enquiries@rwconcepts.co.uk> wrote:


I do not know how complex (in matters of FPGA cells) a USB host is,
but I think it could be easily placed into one.

I guess you have some kind of soft-core on the FPGA, so you might pull
lot of the protocol into software. Also limiting it to USB mouse only
might simplify the design.

Anyway, an (fullblown) USB host stack takes about 8K Code on an
ColdFire.

--
42Bastian
Do not email to bastian42@yahoo.com, it's a spam-only account :-)
Use <same-name>@monlynx.de instead !

Posted by 42Bastian Schick on January 26th, 2007


On Thu, 25 Jan 2007 00:34:45 +0100,
=?ISO-8859-1?Q?Hans-Bernhard_Br=F6ker?= <HBBroeker@t-online.de> wrote:

Nope. A 180MHz ColdFire can do, and I guess lower speeds would as
well.


--
42Bastian
Do not email to bastian42@yahoo.com, it's a spam-only account :-)
Use <same-name>@monlynx.de instead !

Posted by 42Bastian Schick on January 26th, 2007


On Sun, 21 Jan 2007 22:31:40 -0000, "Roger"
<enquiries@rwconcepts.co.uk> wrote:

ISP1561 from NXP e.g. needs PCI, but AFAIK there are USB host chips
with a simple data/adress bus plus chip-select.
--
42Bastian
Do not email to bastian42@yahoo.com, it's a spam-only account :-)
Use <same-name>@monlynx.de instead !


Similar Posts