Page 1 of 1

Windows 10 changes USB timing

Posted: Mon Aug 03, 2015 9:15 pm
by cpldcpu
I just tested V-USB and Win10 for the first time - and yes, more things have changed to the worse.

It seems that the win10 drivers reduce the time between USB reset and the first datapacket to less than 20µs. This means that osccalASM.s can not complete on devices using the internal oscillator.

Images: http://imgur.com/a/6OAD7#GXSamJo

Fun...

Anyone up to writing a osccal that takes less than 12µs?

Re: Windows 10 changes USB timing

Posted: Tue Aug 04, 2015 4:25 pm
by jasmin
...to less than 20µs.

according to the scope pictures it should be milliseconds.

jasmin

Re: Windows 10 changes USB timing

Posted: Sat Aug 08, 2015 12:12 pm
by cpldcpu
You are right. ms, not µs.

Re: Windows 10 changes USB timing

Posted: Mon Aug 10, 2015 6:43 pm
by ulao
Wonderful, nice job M$!!! I hope they didn't mess up the pole rates.

Re: Windows 10 changes USB timing

Posted: Sun Mar 20, 2016 4:33 am
by BrainSlugs83
This seems to be a bigger deal than just osccal...

I can't get any of the examples working in Windows 10 -- same exact hardware/firmware works fine in Windows 7, but completely fails in Windows 10 with "A request for the USB device descriptor failed.", and in device manager under VID/PID it says the Hardware ID is "USB\DEVICE_DESCRIPTOR_FAILURE".

Is there any proposed patch to make this work again? -- I'm using "vusb-20121206" which appears to be the latest (am I mistaken?).

Re: Windows 10 changes USB timing

Posted: Fri Aug 19, 2016 3:48 am
by delta_guy
+1

How are hobbyists/developers working around this in Win 10?

Re: Windows 10 changes USB timing

Posted: Tue Oct 25, 2016 12:12 am
by BrainSlugs83
Upon closer inspection; the failure I received seems to be closer to a problem with USB 3.0 ports in Windows 10. New devices with crystal oscillators still works fine with USB 2.0 ports on Windows 10 computers.

It's worse for OSCCAL though -- if you store the tuning in EEPROM, you can at least unplug and replug the device (I did this on an old Arcade Joystick I built, it's still able to tune itself and store the correct tuning values, but the device will fail the first time on any Windows 10 computer, and then you have to unplug / replug and it will start working). -- It works fine on my Raspberry PI though.

I'm considering putting an inline USB hub between the device and a computer and seeing if that makes it any better... -- I've also considered putting an auto reset -- like if it goes a certain period of time without being polled, it should just reset itself automatically, maybe.