USB Enumeration Problem

Hi,

I am working on a CDC class USB device. When I connect this device to Windows XP SP2 machine it's enumeration fails and Windows gives following error.

"One of the device attached to this computer has malfunctioned and windows does not recognize it"

USB trace has only PNP message no Get_descriptor request from host.

D+ is pulled to high as it's a full speed device.

Can any one help me to find what could be the issue.

USB Trace is showing following packets.

Seq Type Time Request I/O EP DO IRP Status Data Len

------------------------------------------------------------- #1 PNP 18.290722 QUERY_ID OUT 0 0x83E2D4C0 0x83D27008 STATUS_NOT_SUPPORTED

0 #2 PNP 18.290805 QUERY_ID IN 0 0x83E2D4C0 0x83D27008 STATUS_SUCCESS 0 #3 PNP 18.290812 QUERY_CAPABILITIES OUT 0 0x83E2D4C0 0x83D27008 STATUS_NOT_SUPPORTED 0 #4 PNP 18.290813 QUERY_CAPABILITIES IN 0 0x83E2D4C0 0x83D27008 STATUS_SUCCESS 0 #5 PNP 18.290818 QUERY_DEVICE_TEXT OUT 0 0x83E2D4C0 0x83D27008 STATUS_NOT_SUPPORTED 0 #6 PNP 18.290820 QUERY_DEVICE_TEXT IN 0 0x83E2D4C0 0x83D27008 STATUS_SUCCESS 0 #7 PNP 18.290824 QUERY_DEVICE_TEXT OUT 0 0x83E2D4C0 0x83D27008 STATUS_NOT_SUPPORTED 0 #8 PNP 18.290827 QUERY_DEVICE_TEXT IN 0 0x83E2D4C0 0x83D27008 STATUS_SUCCESS 0 #9 PNP 18.290831 QUERY_ID OUT 0 0x83E2D4C0 0x83D27008 STATUS_NOT_SUPPORTED 0 #10 PNP 18.290833 QUERY_ID IN 0 0x83E2D4C0 0x83D27008 STATUS_SUCCESS 0 #11 PNP 18.291116 QUERY_ID OUT 0 0x83E2D4C0 0x83D27008 STATUS_NOT_SUPPORTED 0 #12 PNP 18.291119 QUERY_ID IN 0 0x83E2D4C0 0x83D27008 STATUS_SUCCESS 0 #13 PNP 18.291124 QUERY_ID OUT 0 0x83E2D4C0 0x83D27008 STATUS_NOT_SUPPORTED 0 #14 PNP 18.291126 QUERY_ID IN 0 0x83E2D4C0 0x83D27008 STATUS_SUCCESS 0 #15 PNP 18.291147 QUERY_RESOURCE_REQUIREMENTS OUT 0 0x83E2D4C0 0x83D27008 STATUS_NOT_SUPPORTED 0 #16 PNP 18.291215 QUERY_RESOURCE_REQUIREMENTS IN 0 0x83E2D4C0 0x83D27008 STATUS_SUCCESS 0 #17 PNP 18.291261 QUERY_BUS_INFORMATION OUT 0 0x83E2D4C0 0x83D27008 STATUS_NOT_SUPPORTED 0 #18 PNP 18.291263 QUERY_BUS_INFORMATION IN 0 0x83E2D4C0 0x83D27008 STATUS_SUCCESS 0 #19 PNP 18.291379 QUERY_RESOURCES OUT 0 0x83E2D4C0 0x83D27008 STATUS_NOT_SUPPORTED 0 #20 PNP 18.291381 QUERY_RESOURCES IN 0 0x83E2D4C0 0x83D27008 STATUS_NOT_SUPPORTED 0

--------------------------------------------------------------------------------

Reply to
atailor22
Loading thread data ...

--------------------------------------------------------------------------------

Are you using the Cypress EZ-USB FX2 (CY7C68013A) chip? If so, make sure you have pullup resistors on both I2C pins - clock and data. I inherited a design that had an 16 Kbyte EEPROM connected to the I2C bus. There was jumper block between the micro and the I2C data line so the EEPROM could be disconnected. This way, if bad boot code in the EEPROM prevented the micro from booting (and thus loading good code over the bad using the Cypress CyConsole utility), the EEPROM could be disconnected and the micro would enumerate using the defauld VID/PID. The problem: The I2C data pullup resistor was on the memory side of the jumper, not the micro side. So when the jumper was removed, there was no pullup. The description for the SDA pin in the Cypress datasheet states, "Connect to VCC with a 2.2K resistor, even if no I2C-compatible peripheral is attached." And this is statement is in bold type, so there must be know issues with having no pullup. With the jumper removed, I was seeing the exact same error message as you are gettting, except I was able to get the board to enumerate with no jumper if I used a short cable. After I installed the jumper, the error was gone and the device enumerated independent of USB cable length.

Reply to
Paul Urbanus

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.