Mon 22 Sep 2014 09:45:32 AM UTC, comment #4:
OK, fired the USB analyzer onto it.
The difference between Linux and Windows from the analyzer's
point of view is that Windows transactions are wrapped in a
countainer declaring them as "BULK IN" (or "BULK OUT"), Linux
transactions aren't.
Then, inside the Windows "BULK IN", the incomplete transaction
is flagged as "Malformed", commented as "The handshake is
missing". In contrast, the incomplete Linux transactions are
just that, incomplete only (which is expected since no data
are present).
Strange enough, if I connect an Atmel AVRISPmkII, there is no
sign at all from the usb_drain() visible on the bus. I don't
understand why they are handled differently though.
I'm attaching the analyzer trace reports for anyone who is
interested. In the lufa-avrisp2.xml file, the interesting
spot is at time 2.074379450 (Linux usb_drain()), and time
12.669058217 (Windows usb_drain()). In atmel-avrisp2.xml,
the respective OUT transaction (CMD_SIGN_ON) is at time
10.247395683.
(file #32160, file #32161)
|