views:

86

answers:

2

I have a Full Speed device that specifies the max packet size as 256 bytes. This is not USB compliant since the maxiumum packet size for a Full Speed Device should be 64 bytes. I can read (ReadFile) and write (WriteFile) to the device just fine, but I'm wondering if there could be issues that could arise that I'm just not seeing other than maybe a performance hit from writing across multiple usb frames (1ms)? I'm not really a USB expert, so any advice will be appreciated.

+1  A: 

When I plug my USB 2.0 hard drives into my creaky old laptop (as opposed to my faster laptop) that only has USB 1.0 ports, it moves the data just as slow as if it were a USB 1.0 drive.

Your device will negotiate with what you plug it into and, like a convoy, it will move at the speed of the slowest device.

Tangurena
Does that take into account the fact that this is expected USB behaviour by compliant 2.0 and 1.0 devices ? This question is not about the relative speed of 2.0 and 1.0 (or even 1.x), but about the tolerance of the USB standard to devices that deviate from the permissable spec, as I read it.
cms
+2  A: 

This is whats called the "compliant by hope" strategy.

From experience I can tell you that your device will crash a wide range of embedded hosts and cause corruption on others. (buffer overflows on most controllers where expected packet size is 64 and poor software is used.

These include different setup boxes, phones, etc.

Also, hacks like these, that work with a Nec hcd, might not work with an Intel one.

Murkin