Teensy 4.0 not recognized as USB serial device with v1.53 (Windows)

Status
Not open for further replies.

torsten-pf

New member
Hi,

I have a problem after upgrading my build environment from 1.49 to 1.53. My controller works as virtual serial device (1 port), but after the upgrade it is not recognized anymore. Windows tells me that a unrecognized device was plugged in.
To get it working again, I have to uninstall this device in the device manager, put the Teensy into programming mode and search for changed hardware. Then I'm able to upload a new firmware.

When I switch back to 1.49, it works without any problem. Serial port is recognized and the Teensy Loader can upload a new firmware without pressing the program button. I already checked the defines given to the compiler (-DUSE_SERIAL is set) and have no idea what to do now.

My environment: Arduino 1.8.13, Teensyduino 1.53, Windows 10

Here is the output of USB Device Tree Viewer if it helps:

Code:
    =========================== USB Port3 ===========================

Connection Status        : 0x02 (Device failed enumeration)
Port Chain               : 3-2-1-4-3
Properties               : 0x01
 IsUserConnectable       : yes
 PortIsDebugCapable      : no
 PortHasMultiCompanions  : no
 PortConnectorIsTypeC    : no
ConnectionIndex          : 3

      ======================== USB Device ========================

        +++++++++++++++++ Device Information ++++++++++++++++++
Device Description       : Unbekanntes USB-Gerät (Fehler beim Anfordern einer Gerätebeschreibung.)
Device ID                : USB\VID_0000&PID_0002\D&5D1B47&0&3
Hardware IDs             : USB\DEVICE_DESCRIPTOR_FAILURE
Driver KeyName           : {36fc9e60-c465-11cf-8056-444553540000}\0023 (GUID_DEVCLASS_USB)
Driver Inf               : C:\WINDOWS\inf\usb.inf
Legacy BusType           : PNPBus
Class                    : USB
Class GUID               : {36fc9e60-c465-11cf-8056-444553540000} (GUID_DEVCLASS_USB)
Enumerator               : USB
Location Info            : Port_#0003.Hub_#0010
Manufacturer Info        : (Standard-USB-Hostcontroller)
Capabilities             : 0x64 (Removable, SilentInstall, RawDeviceOK)
Status                   : 0x01806400 (DN_HAS_PROBLEM, DN_DISABLEABLE, DN_REMOVABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
Problem Code             : 43 (CM_PROB_FAILED_POST_START)
Address                  : 3
HcDisableSelectiveSuspend: 0
EnableSelectiveSuspend   : 0
SelectiveSuspendEnabled  : 0
EnhancedPowerMgmtEnabled : 0
IdleInWorkingState       : 0
WakeFromSleepState       : 0
Power State              : D3 (supported: D0, D2, D3, wake from D0, wake from D2)

        ---------------- Connection Information ---------------
Connection Index         : 0x03 (3)
Connection Status        : 0x02 (DeviceFailedEnumeration)
Current Config Value     : 0x00
Device Address           : 0x00 (0)
Is Hub                   : 0x00 (no)
Device Bus Speed         : 0x02 (High-Speed)
Number Of Open Pipes     : 0x00 (0 pipes to data endpoints)
Data (HexDump)           : 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
                           00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 02   ................
                           00 00 00                                          ...

        --------------- Connection Information V2 -------------
Connection Index         : 0x03 (3)
Length                   : 0x10 (16 bytes)
SupportedUsbProtocols    : 0x03
 Usb110                  : 1 (yes)
 Usb200                  : 1 (yes)
 Usb300                  : 0 (no)
 ReservedMBZ             : 0x00
Flags                    : 0x00
 DevIsOpAtSsOrHigher     : 0 (Is not operating at SuperSpeed or higher)
 DevIsSsCapOrHigher      : 0 (Is not SuperSpeed capable or higher)
 DevIsOpAtSsPlusOrHigher : 0 (Is not operating at SuperSpeedPlus or higher)
 DevIsSsPlusCapOrHigher  : 0 (Is not SuperSpeedPlus capable or higher)
 ReservedMBZ             : 0x00
Data (HexDump)           : 03 00 00 00 10 00 00 00 03 00 00 00 00 00 00 00   ................

    ---------------------- Device Descriptor ----------------------
bLength                  : 0x00 (0 bytes)

      -------------------- String Descriptors -------------------
String descriptors are not available  (because the device has problem code CM_PROB_FAILED_POST_START)

Any help is appreciated.
 
Does Port Chain "3-2-1-4-3" mean you have multiple hubs between your PC and Teensy? Maybe try plugging directly into your PC?

Also, for the sake of testing, please program Teensy with a very simple program like File > Examples > 01.Basics > Blink. When a program crashes early, this "Device failed enumeration" is exactly the expected error when the crash interferes with USB communication.

First focus on getting it working with 1.53. Then let's figure out what changed between 1.49 and 1.53, once more is know about what was causing the problem with 1.53 (crashing code, timing of certain USB hubs, etc....)
 
Paul, thanks for your quick reply.

Yes, the device was plugged into a hub. I changed it, but the behavior is the same.
Then, I used the blink example. And this works as expected. Tried to flash it multiple times, everything is fine.
Installing my software results in the USB enum error again. So the problem must be in my initialization code that behaves differently on 1.53 compared to 1.49, right?
 
Status
Not open for further replies.
Back
Top