On Thu, Dec 8, 2011 at 4:37 PM, Bill Perry <[email protected]> wrote: > I can't speak for other OS's but not doing the usb_reset() on Ubuntu 10.10 > which is kernel 2.6.35-31 does not work and makes things worse. > > With the usb_reset() in place using the stock 5.11.1 code you get this > message > with back to back commands on a avr dragon. > > avrdude: usbdev_open(): did not find any USB device "usb" > > > With no usb_reset() in usbdev_close(), you get these messages instead: > > avrdude: usb_open(): cannot read serial number "error sending control > message: Cannot send after transport endpoint shutdown" > avrdude: usb_open(): cannot read product name "error sending control > message: No such device" > avrdude: usbdev_open(): error setting configuration 1: could not set config > 1: No such device > avrdude: usbdev_open(): did not find any USB device "usb" > and the second command fails. > > Adding in the USB device polling in usbdev_open() but still not doing the > usb_reset() in usbdev_close() > makes it work but there is a long pause/stall on the second command after > getting the above errors other than the "did not find any USB device" error. > This seems to match behavior in the comment in usbdev_close() about the > AVRISP mkII.
This is in line with what Joerg mentioned -- the device voluntarily leaves and rejoins the USB bus after avrdude exits, even without the usb_reset(). In that case, a delay is anyway needed. And usb_reset() seems to be needed for different reasons than data toggle I mentioned. > So it appears that the usb_reset() is still very much needed to get things > back synchronized at least for Ubuntu 10.10 I see. Thanks. I have a Dragon and I might be able to do some tests under Linux, Windows and Mac OS X. I am only using Dragon with AVR32 now under AVR Studio 5, so not a real avrdude user myself. -- Xiaofan _______________________________________________ avrdude-dev mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/avrdude-dev
