Tue Aug 26 15:28:15 CEST 2008

USB / model based design?

I'm writing some support code for the Univeral Serial Bus.  The
problem with usb is its (too) complex setup procedure.  It is quite
general, and has a lot of overhead when you want to do simple things
with little meta-data overhead.  It seems that this is the main reason
most people stick to the HID subsystem, moreover because this does not
require device driver developent.

I'm looking at this from two perspectives:

  * Need to support USB PICkit2 through libusb/FFI
  * Client code for the PIC18

The host code necessary to drive the PICkit2 is interesting to figure
out how things work, while the client code for the PIC18 is an
interesting excercise for code generation from a higher level
description.  I've attempted this before without much success.

The eventual state of a USB connection is data packets moving back and
forth between virtual pipes called ENDPOINTs.

Apparently, the host side isn't that complicated.  For PICkit2 I get
away with claiming the interface and sending/receiving 64 byte buffers