|
View:
New views
4 Messages
—
Rating Filter:
Alert me
|
|
|
usb_read_bulk error 0xc000008 USBD_STATUS_DATA_OVERRUN problemHello,
I am working on little USB project with AVR AT90USB162 at one side and Windows Vista at second one. Using latest win32 device driver. Configuration data are: - Manufacturer : xxxx - Product : xxxx - Serial Number: 46373133313515120E22 wTotalLength: 39 bNumInterfaces: 1 bConfigurationValue: 1 iConfiguration: 0 bmAttributes: 80h MaxPower: 50 bInterfaceNumber: 0 bAlternateSetting: 0 bNumEndpoints: 3 bInterfaceClass: 255 bInterfaceSubClass: 0 bInterfaceProtocol: 0 iInterface: 0 bEndpointAddress: 01h bmAttributes: 02h wMaxPacketSize: 3 bInterval: 10 bRefresh: 0 bSynchAddress: 0 bEndpointAddress: 82h bmAttributes: 02h wMaxPacketSize: 3 bInterval: 10 bRefresh: 0 bSynchAddress: 0 bEndpointAddress: 83h bmAttributes: 03h wMaxPacketSize: 0 bInterval: 10 bRefresh: 0 bSynchAddress: 0 I have problem with receiving data on PC side from IN endpoint 0x82. My scenario is: PC sents 10 bytes to AVR and AVR makes response with 7 byte. My firmware successfully receives 10 bytes and then (I hope) successfuly sends 7 byte as response. But PC side function usb_read_bulk(handle, 0x82, ptr, 7, 5000) gets error, more in debug list: LIBUSB-DRIVER - set_configuration(): configuration 1 LIBUSB-DRIVER - set_configuration(): timeout 5000 LIBUSB-DRIVER - get_descriptor(): buffer size 18 LIBUSB-DRIVER - get_descriptor(): type 0001 LIBUSB-DRIVER - get_descriptor(): recipient 0000 LIBUSB-DRIVER - get_descriptor(): index 0000 LIBUSB-DRIVER - get_descriptor(): language id 0000 LIBUSB-DRIVER - get_descriptor(): timeout 5000 LIBUSB-DRIVER - get_descriptor(): buffer size 9 LIBUSB-DRIVER - get_descriptor(): type 0002 LIBUSB-DRIVER - get_descriptor(): recipient 0000 LIBUSB-DRIVER - get_descriptor(): index 0000 LIBUSB-DRIVER - get_descriptor(): language id 0000 LIBUSB-DRIVER - get_descriptor(): timeout 5000 LIBUSB-DRIVER - get_descriptor(): buffer size 39 LIBUSB-DRIVER - get_descriptor(): type 0002 LIBUSB-DRIVER - get_descriptor(): recipient 0000 LIBUSB-DRIVER - get_descriptor(): index 0000 LIBUSB-DRIVER - get_descriptor(): language id 0000 LIBUSB-DRIVER - get_descriptor(): timeout 5000 LIBUSB-DRIVER - set_configuration(): found interface 0 LIBUSB-DRIVER - update_pipe_info(): interface 0 LIBUSB-DRIVER - update_pipe_info(): endpoint address 0x01 LIBUSB-DRIVER - update_pipe_info(): endpoint address 0x82 LIBUSB-DRIVER - update_pipe_info(): endpoint address 0x83 LIBUSB-DRIVER - claim_interface(): interface 0 LIBUSB-DRIVER - transfer(): bulk or interrupt transfer LIBUSB-DRIVER - transfer(): direction out LIBUSB-DRIVER - transfer(): endpoint 0x01 LIBUSB-DRIVER - transfer(): size 10 LIBUSB-DRIVER - transfer(): sequence 4 LIBUSB-DRIVER - transfer_complete(): sequence 4: 10 bytes transmitted LIBUSB-DRIVER - transfer(): bulk or interrupt transfer LIBUSB-DRIVER - transfer(): direction in LIBUSB-DRIVER - transfer(): endpoint 0x82 LIBUSB-DRIVER - transfer(): size 7 LIBUSB-DRIVER - transfer(): sequence 5 LIBUSB-DRIVER - transfer_complete(): sequence 5: transfer failed: status: 0xc0000001, urb-status: 0xc0000008 I get error EIO -5 I/O error from usb_read_bulk, urb-status is 0xc0000008 = USBD_STATUS_DATA_OVERRUN and dont know why. Enpoint datasize is set to 64 bytes. Firmware send 7 and only 7 bytes. I think, mistake will be somewhere in firmware, but dont know where. Is there anybody who will help me where I should find errors? Regards Jedlinsky ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensign option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ Libusb-win32-devel mailing list Libusb-win32-devel@... https://lists.sourceforge.net/lists/listinfo/libusb-win32-devel |
|
|
Re: usb_read_bulk error 0xc000008 USBD_STATUS_DATA_OVERRUN problemThese overrun errors are usually generated when a device
transmits more bytes than requested. Either make sure that your device only transmits 7 bytes or just read 64 bytes instead of 7. Stephan 2009/4/27 Jaroslav Jedlinský <diram@...>: > Hello, > > I am working on little USB project with AVR AT90USB162 at one side and > Windows Vista at second one. Using latest win32 device driver. > Configuration data are: > > - Manufacturer : xxxx > - Product : xxxx > - Serial Number: 46373133313515120E22 > wTotalLength: 39 > bNumInterfaces: 1 > bConfigurationValue: 1 > iConfiguration: 0 > bmAttributes: 80h > MaxPower: 50 > bInterfaceNumber: 0 > bAlternateSetting: 0 > bNumEndpoints: 3 > bInterfaceClass: 255 > bInterfaceSubClass: 0 > bInterfaceProtocol: 0 > iInterface: 0 > bEndpointAddress: 01h > bmAttributes: 02h > wMaxPacketSize: 3 > bInterval: 10 > bRefresh: 0 > bSynchAddress: 0 > bEndpointAddress: 82h > bmAttributes: 02h > wMaxPacketSize: 3 > bInterval: 10 > bRefresh: 0 > bSynchAddress: 0 > bEndpointAddress: 83h > bmAttributes: 03h > wMaxPacketSize: 0 > bInterval: 10 > bRefresh: 0 > bSynchAddress: 0 > > I have problem with receiving data on PC side from IN endpoint 0x82. My > scenario is: PC sents 10 bytes to AVR and AVR makes response with 7 > byte. My firmware successfully receives 10 bytes and then (I hope) > successfuly sends 7 byte as response. But PC side function > usb_read_bulk(handle, 0x82, ptr, 7, 5000) gets error, more in debug list: > > LIBUSB-DRIVER - set_configuration(): configuration 1 > LIBUSB-DRIVER - set_configuration(): timeout 5000 > LIBUSB-DRIVER - get_descriptor(): buffer size 18 > LIBUSB-DRIVER - get_descriptor(): type 0001 > LIBUSB-DRIVER - get_descriptor(): recipient 0000 > LIBUSB-DRIVER - get_descriptor(): index 0000 > LIBUSB-DRIVER - get_descriptor(): language id 0000 > LIBUSB-DRIVER - get_descriptor(): timeout 5000 > LIBUSB-DRIVER - get_descriptor(): buffer size 9 > LIBUSB-DRIVER - get_descriptor(): type 0002 > LIBUSB-DRIVER - get_descriptor(): recipient 0000 > LIBUSB-DRIVER - get_descriptor(): index 0000 > LIBUSB-DRIVER - get_descriptor(): language id 0000 > LIBUSB-DRIVER - get_descriptor(): timeout 5000 > LIBUSB-DRIVER - get_descriptor(): buffer size 39 > LIBUSB-DRIVER - get_descriptor(): type 0002 > LIBUSB-DRIVER - get_descriptor(): recipient 0000 > LIBUSB-DRIVER - get_descriptor(): index 0000 > LIBUSB-DRIVER - get_descriptor(): language id 0000 > LIBUSB-DRIVER - get_descriptor(): timeout 5000 > LIBUSB-DRIVER - set_configuration(): found interface 0 > LIBUSB-DRIVER - update_pipe_info(): interface 0 > LIBUSB-DRIVER - update_pipe_info(): endpoint address 0x01 > LIBUSB-DRIVER - update_pipe_info(): endpoint address 0x82 > LIBUSB-DRIVER - update_pipe_info(): endpoint address 0x83 > LIBUSB-DRIVER - claim_interface(): interface 0 > LIBUSB-DRIVER - transfer(): bulk or interrupt transfer > LIBUSB-DRIVER - transfer(): direction out > LIBUSB-DRIVER - transfer(): endpoint 0x01 > LIBUSB-DRIVER - transfer(): size 10 > LIBUSB-DRIVER - transfer(): sequence 4 > LIBUSB-DRIVER - transfer_complete(): sequence 4: 10 bytes transmitted > LIBUSB-DRIVER - transfer(): bulk or interrupt transfer > LIBUSB-DRIVER - transfer(): direction in > LIBUSB-DRIVER - transfer(): endpoint 0x82 > LIBUSB-DRIVER - transfer(): size 7 > LIBUSB-DRIVER - transfer(): sequence 5 > LIBUSB-DRIVER - transfer_complete(): sequence 5: transfer failed: > status: 0xc0000001, urb-status: 0xc0000008 > > I get error EIO -5 I/O error from usb_read_bulk, urb-status is > 0xc0000008 = USBD_STATUS_DATA_OVERRUN and dont know why. Enpoint > datasize is set to 64 bytes. Firmware send 7 and only 7 bytes. I think, > mistake will be somewhere in firmware, but dont know where. > > Is there anybody who will help me where I should find errors? > > Regards > Jedlinsky > > > ------------------------------------------------------------------------------ > Crystal Reports - New Free Runtime and 30 Day Trial > Check out the new simplified licensign option that enables unlimited > royalty-free distribution of the report engine for externally facing > server and web deployment. > http://p.sf.net/sfu/businessobjects > _______________________________________________ > Libusb-win32-devel mailing list > Libusb-win32-devel@... > https://lists.sourceforge.net/lists/listinfo/libusb-win32-devel > ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensign option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ Libusb-win32-devel mailing list Libusb-win32-devel@... https://lists.sourceforge.net/lists/listinfo/libusb-win32-devel |
|
|
Re: usb_read_bulk error 0xc000008 USBD_STATUS_DATA_OVERRUN problemI tried this:
MCU sends 7 bytes - usb_read_bulk reads 7 bytes > fail MCU sends 7 bytes - usb_read_bulk reads 64 bytes > fail MCU sends 7 bytes - usb_read_bulk reads 32 bytes > fail MCU sends 7 bytes - usb_read_bulk reads 128 bytes > fail MCU sends 64 bytes - usb_read_bulk reads 64 bytes > fail MCU sends 64 bytes - usb_read_bulk reads 7 bytes > fail Always with the same result code. I noticed that first 3 bytes in received packet are valid - same as MCU sent, rest of data not. Jedlinsky Stephan Meyer napsal(a): > These overrun errors are usually generated when a device > transmits more bytes than requested. > Either make sure that your device only transmits 7 bytes > or just read 64 bytes instead of 7. > > Stephan > > 2009/4/27 Jaroslav Jedlinský <diram@...>: >> Hello, >> >> I am working on little USB project with AVR AT90USB162 at one side and >> Windows Vista at second one. Using latest win32 device driver. >> Configuration data are: >> >> - Manufacturer : xxxx >> - Product : xxxx >> - Serial Number: 46373133313515120E22 >> wTotalLength: 39 >> bNumInterfaces: 1 >> bConfigurationValue: 1 >> iConfiguration: 0 >> bmAttributes: 80h >> MaxPower: 50 >> bInterfaceNumber: 0 >> bAlternateSetting: 0 >> bNumEndpoints: 3 >> bInterfaceClass: 255 >> bInterfaceSubClass: 0 >> bInterfaceProtocol: 0 >> iInterface: 0 >> bEndpointAddress: 01h >> bmAttributes: 02h >> wMaxPacketSize: 3 >> bInterval: 10 >> bRefresh: 0 >> bSynchAddress: 0 >> bEndpointAddress: 82h >> bmAttributes: 02h >> wMaxPacketSize: 3 >> bInterval: 10 >> bRefresh: 0 >> bSynchAddress: 0 >> bEndpointAddress: 83h >> bmAttributes: 03h >> wMaxPacketSize: 0 >> bInterval: 10 >> bRefresh: 0 >> bSynchAddress: 0 >> >> I have problem with receiving data on PC side from IN endpoint 0x82. My >> scenario is: PC sents 10 bytes to AVR and AVR makes response with 7 >> byte. My firmware successfully receives 10 bytes and then (I hope) >> successfuly sends 7 byte as response. But PC side function >> usb_read_bulk(handle, 0x82, ptr, 7, 5000) gets error, more in debug list: >> >> LIBUSB-DRIVER - set_configuration(): configuration 1 >> LIBUSB-DRIVER - set_configuration(): timeout 5000 >> LIBUSB-DRIVER - get_descriptor(): buffer size 18 >> LIBUSB-DRIVER - get_descriptor(): type 0001 >> LIBUSB-DRIVER - get_descriptor(): recipient 0000 >> LIBUSB-DRIVER - get_descriptor(): index 0000 >> LIBUSB-DRIVER - get_descriptor(): language id 0000 >> LIBUSB-DRIVER - get_descriptor(): timeout 5000 >> LIBUSB-DRIVER - get_descriptor(): buffer size 9 >> LIBUSB-DRIVER - get_descriptor(): type 0002 >> LIBUSB-DRIVER - get_descriptor(): recipient 0000 >> LIBUSB-DRIVER - get_descriptor(): index 0000 >> LIBUSB-DRIVER - get_descriptor(): language id 0000 >> LIBUSB-DRIVER - get_descriptor(): timeout 5000 >> LIBUSB-DRIVER - get_descriptor(): buffer size 39 >> LIBUSB-DRIVER - get_descriptor(): type 0002 >> LIBUSB-DRIVER - get_descriptor(): recipient 0000 >> LIBUSB-DRIVER - get_descriptor(): index 0000 >> LIBUSB-DRIVER - get_descriptor(): language id 0000 >> LIBUSB-DRIVER - get_descriptor(): timeout 5000 >> LIBUSB-DRIVER - set_configuration(): found interface 0 >> LIBUSB-DRIVER - update_pipe_info(): interface 0 >> LIBUSB-DRIVER - update_pipe_info(): endpoint address 0x01 >> LIBUSB-DRIVER - update_pipe_info(): endpoint address 0x82 >> LIBUSB-DRIVER - update_pipe_info(): endpoint address 0x83 >> LIBUSB-DRIVER - claim_interface(): interface 0 >> LIBUSB-DRIVER - transfer(): bulk or interrupt transfer >> LIBUSB-DRIVER - transfer(): direction out >> LIBUSB-DRIVER - transfer(): endpoint 0x01 >> LIBUSB-DRIVER - transfer(): size 10 >> LIBUSB-DRIVER - transfer(): sequence 4 >> LIBUSB-DRIVER - transfer_complete(): sequence 4: 10 bytes transmitted >> LIBUSB-DRIVER - transfer(): bulk or interrupt transfer >> LIBUSB-DRIVER - transfer(): direction in >> LIBUSB-DRIVER - transfer(): endpoint 0x82 >> LIBUSB-DRIVER - transfer(): size 7 >> LIBUSB-DRIVER - transfer(): sequence 5 >> LIBUSB-DRIVER - transfer_complete(): sequence 5: transfer failed: >> status: 0xc0000001, urb-status: 0xc0000008 >> >> I get error EIO -5 I/O error from usb_read_bulk, urb-status is >> 0xc0000008 = USBD_STATUS_DATA_OVERRUN and dont know why. Enpoint >> datasize is set to 64 bytes. Firmware send 7 and only 7 bytes. I think, >> mistake will be somewhere in firmware, but dont know where. >> >> Is there anybody who will help me where I should find errors? >> >> Regards >> Jedlinsky ------------------------------------------------------------------------------ Register Now & Save for Velocity, the Web Performance & Operations Conference from O'Reilly Media. Velocity features a full day of expert-led, hands-on workshops and two days of sessions from industry leaders in dedicated Performance & Operations tracks. Use code vel09scf and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf _______________________________________________ Libusb-win32-devel mailing list Libusb-win32-devel@... https://lists.sourceforge.net/lists/listinfo/libusb-win32-devel |
|
|
Re: usb_read_bulk error 0xc000008 USBD_STATUS_DATA_OVERRUN problemProblem solved! Notice about only first 3 valid bytes received helped
me. I had my EP in MCU configured for 64 bytes length, but in USB descriptor I had wrong wMaxPacketSize. I correced it and now it works :-) Jedlinsky Jaroslav Jedlinský napsal(a): > I tried this: > > MCU sends 7 bytes - usb_read_bulk reads 7 bytes > fail > MCU sends 7 bytes - usb_read_bulk reads 64 bytes > fail > MCU sends 7 bytes - usb_read_bulk reads 32 bytes > fail > MCU sends 7 bytes - usb_read_bulk reads 128 bytes > fail > MCU sends 64 bytes - usb_read_bulk reads 64 bytes > fail > MCU sends 64 bytes - usb_read_bulk reads 7 bytes > fail > > Always with the same result code. I noticed that first 3 bytes in > received packet are valid - same as MCU sent, rest of data not. > > Jedlinsky > > Stephan Meyer napsal(a): >> These overrun errors are usually generated when a device >> transmits more bytes than requested. >> Either make sure that your device only transmits 7 bytes >> or just read 64 bytes instead of 7. >> >> Stephan >> >> 2009/4/27 Jaroslav Jedlinský <diram@...>: >>> Hello, >>> >>> I am working on little USB project with AVR AT90USB162 at one side and >>> Windows Vista at second one. Using latest win32 device driver. >>> Configuration data are: >>> >>> - Manufacturer : xxxx >>> - Product : xxxx >>> - Serial Number: 46373133313515120E22 >>> wTotalLength: 39 >>> bNumInterfaces: 1 >>> bConfigurationValue: 1 >>> iConfiguration: 0 >>> bmAttributes: 80h >>> MaxPower: 50 >>> bInterfaceNumber: 0 >>> bAlternateSetting: 0 >>> bNumEndpoints: 3 >>> bInterfaceClass: 255 >>> bInterfaceSubClass: 0 >>> bInterfaceProtocol: 0 >>> iInterface: 0 >>> bEndpointAddress: 01h >>> bmAttributes: 02h >>> wMaxPacketSize: 3 >>> bInterval: 10 >>> bRefresh: 0 >>> bSynchAddress: 0 >>> bEndpointAddress: 82h >>> bmAttributes: 02h >>> wMaxPacketSize: 3 >>> bInterval: 10 >>> bRefresh: 0 >>> bSynchAddress: 0 >>> bEndpointAddress: 83h >>> bmAttributes: 03h >>> wMaxPacketSize: 0 >>> bInterval: 10 >>> bRefresh: 0 >>> bSynchAddress: 0 >>> >>> I have problem with receiving data on PC side from IN endpoint 0x82. My >>> scenario is: PC sents 10 bytes to AVR and AVR makes response with 7 >>> byte. My firmware successfully receives 10 bytes and then (I hope) >>> successfuly sends 7 byte as response. But PC side function >>> usb_read_bulk(handle, 0x82, ptr, 7, 5000) gets error, more in debug list: >>> >>> LIBUSB-DRIVER - set_configuration(): configuration 1 >>> LIBUSB-DRIVER - set_configuration(): timeout 5000 >>> LIBUSB-DRIVER - get_descriptor(): buffer size 18 >>> LIBUSB-DRIVER - get_descriptor(): type 0001 >>> LIBUSB-DRIVER - get_descriptor(): recipient 0000 >>> LIBUSB-DRIVER - get_descriptor(): index 0000 >>> LIBUSB-DRIVER - get_descriptor(): language id 0000 >>> LIBUSB-DRIVER - get_descriptor(): timeout 5000 >>> LIBUSB-DRIVER - get_descriptor(): buffer size 9 >>> LIBUSB-DRIVER - get_descriptor(): type 0002 >>> LIBUSB-DRIVER - get_descriptor(): recipient 0000 >>> LIBUSB-DRIVER - get_descriptor(): index 0000 >>> LIBUSB-DRIVER - get_descriptor(): language id 0000 >>> LIBUSB-DRIVER - get_descriptor(): timeout 5000 >>> LIBUSB-DRIVER - get_descriptor(): buffer size 39 >>> LIBUSB-DRIVER - get_descriptor(): type 0002 >>> LIBUSB-DRIVER - get_descriptor(): recipient 0000 >>> LIBUSB-DRIVER - get_descriptor(): index 0000 >>> LIBUSB-DRIVER - get_descriptor(): language id 0000 >>> LIBUSB-DRIVER - get_descriptor(): timeout 5000 >>> LIBUSB-DRIVER - set_configuration(): found interface 0 >>> LIBUSB-DRIVER - update_pipe_info(): interface 0 >>> LIBUSB-DRIVER - update_pipe_info(): endpoint address 0x01 >>> LIBUSB-DRIVER - update_pipe_info(): endpoint address 0x82 >>> LIBUSB-DRIVER - update_pipe_info(): endpoint address 0x83 >>> LIBUSB-DRIVER - claim_interface(): interface 0 >>> LIBUSB-DRIVER - transfer(): bulk or interrupt transfer >>> LIBUSB-DRIVER - transfer(): direction out >>> LIBUSB-DRIVER - transfer(): endpoint 0x01 >>> LIBUSB-DRIVER - transfer(): size 10 >>> LIBUSB-DRIVER - transfer(): sequence 4 >>> LIBUSB-DRIVER - transfer_complete(): sequence 4: 10 bytes transmitted >>> LIBUSB-DRIVER - transfer(): bulk or interrupt transfer >>> LIBUSB-DRIVER - transfer(): direction in >>> LIBUSB-DRIVER - transfer(): endpoint 0x82 >>> LIBUSB-DRIVER - transfer(): size 7 >>> LIBUSB-DRIVER - transfer(): sequence 5 >>> LIBUSB-DRIVER - transfer_complete(): sequence 5: transfer failed: >>> status: 0xc0000001, urb-status: 0xc0000008 >>> >>> I get error EIO -5 I/O error from usb_read_bulk, urb-status is >>> 0xc0000008 = USBD_STATUS_DATA_OVERRUN and dont know why. Enpoint >>> datasize is set to 64 bytes. Firmware send 7 and only 7 bytes. I think, >>> mistake will be somewhere in firmware, but dont know where. >>> >>> Is there anybody who will help me where I should find errors? >>> >>> Regards >>> Jedlinsky > > > ------------------------------------------------------------------------------ > Register Now & Save for Velocity, the Web Performance & Operations > Conference from O'Reilly Media. Velocity features a full day of > expert-led, hands-on workshops and two days of sessions from industry > leaders in dedicated Performance & Operations tracks. Use code vel09scf > and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf ------------------------------------------------------------------------------ Register Now & Save for Velocity, the Web Performance & Operations Conference from O'Reilly Media. Velocity features a full day of expert-led, hands-on workshops and two days of sessions from industry leaders in dedicated Performance & Operations tracks. Use code vel09scf and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf _______________________________________________ Libusb-win32-devel mailing list Libusb-win32-devel@... https://lists.sourceforge.net/lists/listinfo/libusb-win32-devel |
| Free embeddable forum powered by Nabble | Forum Help |