Windows 10 changes USB timing

General discussions about V-USB, our firmware-only implementation of a low speed USB device on Atmel's AVR microcontrollers
Post Reply
cpldcpu
Rank 2
Rank 2
Posts: 44
Joined: Sun Nov 10, 2013 11:26 am

Windows 10 changes USB timing

Post by cpldcpu » Mon Aug 03, 2015 9:15 pm

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?

jasmin

Re: Windows 10 changes USB timing

Post by jasmin » Tue Aug 04, 2015 4:25 pm

...to less than 20µs.

according to the scope pictures it should be milliseconds.

jasmin

cpldcpu
Rank 2
Rank 2
Posts: 44
Joined: Sun Nov 10, 2013 11:26 am

Re: Windows 10 changes USB timing

Post by cpldcpu » Sat Aug 08, 2015 12:12 pm

You are right. ms, not µs.

ulao
Rank 4
Rank 4
Posts: 481
Joined: Mon Aug 25, 2008 8:45 pm

Re: Windows 10 changes USB timing

Post by ulao » Mon Aug 10, 2015 6:43 pm

Wonderful, nice job M$!!! I hope they didn't mess up the pole rates.

BrainSlugs83
Posts: 6
Joined: Sun Mar 20, 2016 4:30 am

Re: Windows 10 changes USB timing

Post by BrainSlugs83 » Sun Mar 20, 2016 4:33 am

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?).

delta_guy

Re: Windows 10 changes USB timing

Post by delta_guy » Fri Aug 19, 2016 3:48 am

+1

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

BrainSlugs83
Posts: 6
Joined: Sun Mar 20, 2016 4:30 am

Re: Windows 10 changes USB timing

Post by BrainSlugs83 » Tue Oct 25, 2016 12:12 am

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.

Post Reply