??? 08/14/08 07:32 Read: times |
#157486 - AT89c5131 enumeration problem... |
I produced HID device based on Atmel keyboard enumeration example. But the problem with enumeration occurs on the computer with MSI mainboard (nForce2 chipset) with Win XP SP2 - drivers and BIOS are up to date. It works well on the other computers. I found out that the program freezes in the section where the device descriptor is being sent. Host requests 64b of data, device send 18b (size of device descriptor) and then waiting and wainting in the loop for ACK from the host, nothing happens and then reset interrupt comes...
Atmel example ("while loop" isnt breaked): /* send last data packet */ pbuffer = usb_send_ep0_packet(pbuffer, data_to_transfer); data_to_transfer = 0; while ((!(Usb_rx_complete())) && (!(Usb_tx_complete()))); Usb_clear_tx_complete(); if ((Usb_rx_complete())) /* if cancel from USB Host */ { Usb_clear_tx_ready(); Usb_clear_rx(); return; } I dont know where the problem can be... One more question. How can I detect that the enumeration process is at the end and I am able to send user data to the host? If I try to send user data during enumeration it naturally fails... Thank you very much for your reply... I am the beginner, excuse me. |
Topic | Author | Date |
AT89c5131 enumeration problem... | 01/01/70 00:00 | |
Initialization problem | 01/01/70 00:00 | |
Windows bug | 01/01/70 00:00 | |
continuing problem... | 01/01/70 00:00 | |
End of enumeration | 01/01/70 00:00 | |
Zero-length data packet | 01/01/70 00:00 | |
ZLP to the interrupt IN EP | 01/01/70 00:00 | |
My fault... | 01/01/70 00:00 | |
Which example? | 01/01/70 00:00 | |
Implementing the USB Enumeration Process... | 01/01/70 00:00 | |
Packet size of the interrupt IN EP | 01/01/70 00:00 | |
packet size... | 01/01/70 00:00 | |
Detailed log...![]() | 01/01/70 00:00 |