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

Reply via email to