USB host (was Re: What's the real problem with wireless on the Ben?)

Werner Almesberger werner at almesberger.net
Tue Oct 4 14:20:30 EDT 2011


Rafael Ignacio Zurita wrote:
> Thanks a lot if you can guide this idea!.. Let me start studying 
> your ideas and those projects. Naturally, I would prefer to write 
> all the first tests in C.

Perhaps a good start would be to access the 8:10 card port
and output a square wave (just by bit-banging).

The basics for this are in
http://projects.qi-hardware.com/index.php/p/wernermisc/source/tree/master/spiio/spiio.c

You should notice a bit of jitter. Next, you can try to control
the timing better using some of the tricks of ubb-vga:

http://projects.qi-hardware.com/index.php/p/ben-blinkenlights/source/tree/master/ubb-vga/ubb-vga.c

Especially disable_interrupts and disable_lcd. Also the timer
code may be useful, because it will give you a much easier
time reference than instruction timing.

With a little luck, you may be able to do without disabling the
LCD, only a minimum of interrupt disabling, and just synchronize
the bit timing with the timer.

For USB references, this is a good and compact introduction:
http://www.beyondlogic.org/usbnutshell/

At some point in time you'll need the official specification:
http://www.usb.org/developers/docs/usb_20_071411b.zip
(file usb_20.pdf)

Or you could also pick the old revision 1.1, which doesn't
have high-speed:
http://esd.cs.ucr.edu/webres/usb11.pdf

(The USB 2.0 spec mixes low-speed, full-speed, and high-speed
all over the place. Things are clearly marked, but it's still
inconvenient if you have to skip over all those high-speed
things.)

- Werner




More information about the discussion mailing list


interactive