Tricky USB device.

Bernd Walter ticso at cicely12.cicely.de
Sat Apr 9 14:24:37 PDT 2005


On Sat, Apr 09, 2005 at 05:05:31PM -0400, David Gilbert wrote:
> >>>>> "Bernd" == Bernd Walter <ticso at cicely12.cicely.de> writes:
> 
> Bernd> Yes - you must use 1 - there is only one out-endpoint.  0x81 is
> Bernd> for receiving data and endpoint 0 is the mandandory control
> Bernd> endpoint.  Interrupt Endpoints are not variable in size.  Both
> Bernd> interrupt endpoints are 8 Bytes, so you must read and write
> Bernd> exact 8 Bytes per transfer - 5 shouldn't work for USB compliant
> Bernd> devices.
> 
> I took your earlier advice and just opened ugen0.1 O_RDWR.  I've tried
> sending 5 and 8 byte strings to it without effect.  To make the 8 byte
> strings, I added spaces to the end of my 5 byte strings.  I've also
> got a proper multitester now to verify operation.
> 
> Bernd> Depends on the device's firmware.  I wouldn't be surprised if
> Bernd> the whole device just hangs after receiving bogus data - it
> Bernd> seems to be broken in many points.  But it may block if the
> Bernd> device has nothing to send.  An easy way to check out is using
> Bernd> tools like usbdevs -v and see if it hangs when accessing this
> Bernd> device.
> 
> usbdevs -v and udesc_dump both operate fine after trying this.

Then the device is still working and just has nothing to send.
Would be helpfull to know something about the protocol used on the
endpoints.

-- 
B.Walter                   BWCT                http://www.bwct.de
bernd at bwct.de                                  info at bwct.de



More information about the freebsd-hackers mailing list