On Thu, Dec 8, 2011 at 4:39 PM, Joerg Wunsch <[email protected]> wrote: > As Xiaofan Chen wrote: > >> I think the root cause of the issue is the following codes >> in usb_libusb.c. > >> usb_reset(udev); > > No, it isn't. The main reason is that all the Atmel-provided tools > (JTAGICEmkII, AVRISPmkII, AVR Dragon) voluntarily leave and rejoin > the USbus when we say "Good-bye" to them, causing them to be > enumerated by the OS. That "dead time" also applies to these tools on > FreeBSD where AVRDUDE doesn't call usb_reset() by itself.
I see. In that case, what I said (data toggle issue) may not apply. But why do this Atmel tools leave and rejoin the USB Bus is still a mystery which is worth some time of investigations. Something must trigger it to do that, right? And it will only be those commands avrdude send to it. Does this happen under Windows with the original Atmel driver (Jungo) and libusb-win32 filter driver? Does it happen under Windows with libusb-win32 device driver? What is the case with Mac OS X? Does it make a difference using libusb-1.0+libusb-compat and using legacy libusb-0.1, under Linux and Mac OS X? BTW, Ubuntu/Debian are still using legacy libusb-0.1. But take note libusb-0.1 is no longer maintained by the upstream libusb project. Mac OS X will also be much better off using libusb-compat. -- Xiaofan _______________________________________________ avrdude-dev mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/avrdude-dev
