AnsweredAssumed Answered

USB enumeration fails with some PC hosts

Question asked by Alex Ferreirós on Oct 30, 2015
Latest reply on Jul 5, 2017 by DAVE COLEMAN

I'm trying to run the USB CDC virtual com example that comes in KSDK 1.2 on a custom board with the KL27 MCU (MKL27Z256VFM4)


To do so, first I have build the USB library for this MCU (I cloned the provided usbd_sdk_frdmkl27z_mqx library and followed the attached guide in this post: Re: USB CDC on KL27 processor ). From there, we successfully built the CDC example.


The thing is, the board successfully appears as Virtual COM when connected with some PCs but it doesn't with others (where the enumaration phase fails). I mean, the same unit and the same cable works OK on some hosts (a Windows 8.1 workstation, a Windows 10 laptop, a Windows 7 laptop) but fails on others (another Windows 8.1 workstation, a Windows XP laptop)


Can anybody throw any light about what could be happening? I totally ran out of ideas.


More clues:

- I think the issue is in the board side because I also have tested this example on a FRDM-KL27 board and it worked fine with all hosts listed above (same cables also)

- Tracking the error with the tool USBView reports this:

[Port1] FailedEnumeration

Is Port User Connectable:         yes
Is Port Debug Capable:            no
Companion Port Number:            0
Companion Hub Symbolic Link Name:
Protocols Supported:
USB 1.1:                         yes
USB 2.0:                         yes
USB 3.0:                         no

       ---===>Device Information<===---

ConnectionStatus:                  FailedEnumeration
Current Config Value:              0x00  -> Device Bus Speed: Low
Device Address:                    0x00
Open Pipes:                           0
*!*ERROR:  No open pipes!

          ===>Device Descriptor<===
*!*ERROR:  bLength of 0 incorrect, should be 18
bLength:                           0x00
bDescriptorType:                   0x00
bcdUSB:                          0x0000
bDeviceClass:                      0x00
*!*ERROR:  Device enumeration failure


Also, just to mention I work with KDS 3.0, KSDK 1.2, MQX and our custom KL27 board has no external crystal.