??? 04/27/09 04:55 Read: times |
#164852 - Enumeration is fine, but... Responding to: ???'s previous message |
I have a problem with enumeration on this device on a computer with nForce2 chipset. AT89C5131 is a full-speed device. For NVIDIA nForce2 chipset, the connection of this device makes this difference depending on the bus topology. - direct USB connection - companion OHCI of the USB port works - connection over a Hi-speed hub (so-called USB2.0 hub) - EHCI of the USB port works over hub's transaction translator. On the sniffer log, I see these findings. 1) Enumeration was done successfully, in either trace. - Set_Configuration (SELECT_CONFIGURATION on URB) succeeded. 2) The device fails at the second interrupt or bulk transfer after enumeration, on the first trace. The error code, 0xc0000006, means that the host controller on the PC received a packet corrupted on PID, for DATAx/NAK of IN transaction, or ACK of OUT transaction. (*1) This error suggests hardware error rather than chip firmware bug. The transmission of PID of packets are fully regulated by the USB engine on the chip, without firmware intervention. Noise, or unstable power supply, as Michael suggested, is the likely cause. Check the bypass capacitors for the AT89C5131 - USB connector VBUS-GND pins - 1-10 uF - VDD-VSS pins of the chip - AVDD-AVSS pins of the chip Also, for the external crystal connection, - short trace between XTAL1, XTAL2 pins and external crystal/capacitors The chance of the PC side bug is not still neglected. I recommend you to apply firmware (or BIOS) update for the nForce2 chipset, if any, too. Tsuneo (*1) The error code is defined in this WinDDK (or WDK) header. C:WINDDK3790.1830incddkwxpusbdi.h or C:WINDDK6001.18002incapiusb.h Find "USBD_STATUS_" on these files. #define USBD_STATUS_PID_CHECK_FAILURE ((USBD_STATUS)0xC0000006L) And brief comments for the error are here "USBD_STATUS" on MSDN http://msdn.microsoft.com/en-us/lib...76356.aspx USBD_STATUS_PID_CHECK_FAILURE The device returned a packet identifier check failure (defined for backward compatibility with the USB 1.0). The OHCI spec provides a little more details. Open Host Controller Interface Specification http://download.microsoft.com/download/.../hci_1.exe 4.3.3 Completion Codes (p32) PIDCHECKFAILURE - code 0110 Check bits on PID from endpoint failed on data PID (IN) or handshake (OUT) |
Topic | Author | Date |
Enumeration problem on AT89C5131 | 01/01/70 00:00 | |
Looks Like An Up Transfer... | 01/01/70 00:00 | |
My hub is non-powered... | 01/01/70 00:00 | |
Enumeration is fine, but... | 01/01/70 00:00 | |
Capacitors...![]() | 01/01/70 00:00 |