IEEE course on USB programming on Linux

phiscock-g851W1bGYuGnS0EtXVNi6w at public.gmane.org phiscock-g851W1bGYuGnS0EtXVNi6w at public.gmane.org
Thu Mar 6 22:13:51 UTC 2008


> Saw this; it's pretty pricey, and certainly of specialized purpose, so
> I doubt it's for everyone...
> http://toronto.ieee.ca/education/usb0408/
>
> But if you're keen on learning about programming for USB devices, and
> paying for training does not daunt, then it's worth looking at...
> --

If you are designing some remote hardware device from the ground up, then
an alternative to 'native USB' is the 'Virtual Com Port' approach. You use
a particular IC in the remote hardware (http://www.ftdichip.com/) to
connect to USB at that end. This chip produces translates USB-speak to
serial-port signals which can then talk to a microprocessor serial port.

At the host end you access the device via a virtual com port - something
like /dev/ttyUSB0 under Linux.

This approach works under Linux, Windows and Mac. The drivers are so
common that they are now in the Linux kernel.

Then you can program the remote hardware over what appears to be a very
fast serial port.

Advantages:
 - Simple, no requirement to learn anything about USB (which is dauntingly
complex)
 - Can use legacy software that accesses the serial port
 - USB provides power (5V at 500mA max) to the device
 - *Much* faster than serial port (~200kbaud)

Disadvantage:
 - requires the circuit board area for an extra IC
 - cost of the IC may be an issue in rock-bottom commodity product

This is the approach we use with our DSO-101 oscilloscope and WGM-101
waveform generator, with Tcl/Tk host software.

Disclaimer: I have no connection to FTDI other than as a satisfied customer.

-- 
Peter Hiscocks
Syscomp Electronic Design Limited, Toronto
http://www.syscompdesign.com
USB Oscilloscope and Waveform Generator
647-839-0325

--
The Toronto Linux Users Group.      Meetings: http://gtalug.org/
TLUG requests: Linux topics, No HTML, wrap text below 80 columns
How to UNSUBSCRIBE: http://gtalug.org/wiki/Mailing_lists





More information about the Legacy mailing list