This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TUSB2046B: USB device not recognized

Part Number: TUSB2046B
Other Parts Discussed in Thread: TPS2044

I have designed a individual-power non-ganged mode usb hub. 

so upstream usb D+/D- and gnd been connected to the board/ic, but not the usb_5V, we using external input power.

this is the schematic:

 Please ignoring the 4D+/4D-, they pull-down to the ground. 

I can see couple things from oscilloscope:

1. crystal stop works in 2 second, 

2. downstream ports have individual 5V, D- is staying 3.3V but D+ has nothing. 

3. upstream port, D+ and D- are sine wave before crystal failed.

4. usb view tree info: usb_reset_failed


    =========================== USB Port3 ===========================

Connection Status        : 0x02 (Device failed enumeration)
Port Chain               : 2-12-3

Device Manager Problem   : 43 (CM_PROB_FAILED_POST_START)
Used Endpoints           : 0

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

        +++++++++++++++++ Device Information ++++++++++++++++++
Device Description       : Unknown USB Device (Port Reset Failed)
Device ID                : USB\VID_0000&PID_0001\6&98B719B&0&3
Hardware IDs             : USB\RESET_FAILURE
Driver KeyName           : {36fc9e60-c465-11cf-8056-444553540000}\0012 (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
PDO                      : \Device\USBPDO-7
Location Info            : Port_#0003.Hub_#0003
Manufacturer Info        : (Standard USB Host Controller)
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 (Port 3)
Connection Status        : 0x02 (DeviceFailedEnumeration)
Current Config Value     : 0x00 (Configuration 0)
Device Address           : 0x00 (0)
Is Hub                   : 0x00 (no)
Device Bus Speed         : 0x00 (Low-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 00 00 00 00 00 00 00 00 02   ................
                           00 00 00                                          ...

        --------------- Connection Information V2 -------------
Connection Index         : 0x03 (3)
Length                   : 0x10 (16 bytes)
SupportedUsbProtocols    : 0x01
 Usb110                  : 1 (yes, port supports USB 1.1)
 Usb200                  : 0 (no, port not supports USB 2.0)
 Usb300                  : 0 (no, port not supports USB 3.0)
 ReservedMBZ             : 0x00
Flags                    : 0x00
 DevIsOpAtSsOrHigher     : 0 (Device is not operating at SuperSpeed or higher)
 DevIsSsCapOrHigher      : 0 (Device is not SuperSpeed capable or higher)
 DevIsOpAtSsPlusOrHigher : 0 (Device is not operating at SuperSpeedPlus or higher)
 DevIsSsPlusCapOrHigher  : 0 (Device is not SuperSpeedPlus capable or higher)
 ReservedMBZ             : 0x00
Data (HexDump)           : 03 00 00 00 10 00 00 00 01 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)
  • Hi Thomas,

    It looks like you have an 8MHz crystal installed instead of a 6MHz one, can you confirm that?

    Regards,

    JMMN

  • sorry, it is 6MHZ, i forgot to change that, and also, I have 18pF for crystal instead of 20pF. 

  • Ok, that's good.  Can you share the upstream DP/DM waveform?

  • I forgot place resistor(22R) between port to IC 

  • Did adding this resistor fix the issue?

    Regards,

    JMMN

  • You mean it isn't in the layout?  That shouldn't cause this behavior.

    I need a zoomed out plot that isn't using infinite persistence.  Maybe try triggering on DP going low and or DP going high.

    Regards,

    JMMN

  • The Upstream D+/D-, looks fine

    This is the upstream D+/D-

    The downstream D+/D-:

    I can tell the reset failed at this time, or every time. I dont understand why.

    My components using in reset(C3 and R1): 10nF and 12.1k

    This is the downstream D+/D-, I can tell the reset failed, causing the D+ keeps acting low, and D- keeps acting high. What should I do with my reset. The reset value: 10nF, and 12.1K

  • One more thing, the SUSPND is floating, and when the crystal faliled/ reset acting. the suspnd acting high too.

  • The crystal will turn off when the hub suspends, so that is not unexpected.  Does the host detect the hub properly, just not the downstream devices?  can you send USB tree view of the hub instance?

    What kind of devices are you attaching downstream?

    Regards,

    JMMN

  • yes, upstream and hub be detected correctly, only the downstream not recognized, I am testing usb1.1 keyboard and usb 2.0 usb driver.

    
        =========================== USB Port7 ===========================
    
    Connection Status        : 0x01 (Device is connected)
    Port Chain               : 2-7
    
          ========================== Summary =========================
    Vendor ID                : 0x0451 (Texas Instruments)
    Product ID               : 0x2046
    USB Version              : 1.10
    Port maximum Speed       : High-Speed
    Device maximum Speed     : Full-Speed
    Device Connection Speed  : Full-Speed
    Self powered             : yes
    Demanded Current         : 0 mA
    Used Endpoints           : 2
    
          ========================== USB Hub =========================
    
            +++++++++++++++++ Device Information ++++++++++++++++++
    Device Description       : Generic USB Hub
    Device ID                : USB\VID_0451&PID_2046\5&1079772F&0&7
    Hardware IDs             : USB\VID_0451&PID_2046&REV_0125 USB\VID_0451&PID_2046
    Driver KeyName           : {36fc9e60-c465-11cf-8056-444553540000}\0016 (GUID_DEVCLASS_USB)
    Driver                   : \SystemRoot\System32\drivers\UsbHub3.sys (Version: 10.0.19041.1202  Date: 2021-09-14)
    Driver Inf               : C:\Windows\inf\usbhub3.inf
    Legacy BusType           : PNPBus
    Class                    : USB
    Class GUID               : {36fc9e60-c465-11cf-8056-444553540000} (GUID_DEVCLASS_USB)
    Service                  : USBHUB3
    Enumerator               : USB
    Location Info            : Port_#0007.Hub_#0002
    Location IDs             : PCIROOT(0)#PCI(1400)#USBROOT(0)#USB(7), ACPI(_SB_)#ACPI(PCI0)#ACPI(XHC_)#ACPI(RHUB)#ACPI(HS07)
    Container ID             : {828152bb-7808-11ec-ba96-38689328c138}
    Manufacturer Info        : (Standard USB HUBs)
    Capabilities             : 0x84 (Removable, SurpriseRemovalOK)
    Status                   : 0x0180600A (DN_DRIVER_LOADED, DN_STARTED, DN_DISABLEABLE, DN_REMOVABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
    Problem Code             : 0
    Address                  : 7
    HcDisableSelectiveSuspend: 0
    EnableSelectiveSuspend   : 0
    SelectiveSuspendEnabled  : 0
    EnhancedPowerMgmtEnabled : 0
    IdleInWorkingState       : 1
    WakeFromSleepState       : 0
    Power State              : D0 (supported: D0, D1, D2, D3, wake from D0, wake from D1, wake from D2)
    
            ------------------- USB Hub Descriptor -----------------
    bDescriptorLength        : 0x09 (9 bytes)
    bDescriptorType          : 0x29 (Hub Descriptor)
    bNumberOfPorts           : 0x04 (4 Ports)
    wHubCharacteristics      : 0x0009
     Power switching         : Individual
     Compound device         : No
     Over-current protection : Individual
     TT Think Time           : At most 8 FS bit times
     Port Indicators         : Not supported
    bPowerOnToPowerGood      : 0x32 (100 ms)
    bHubControlCurrent       : 0x64 (100 mA)
    DeviceRemovable          : 0x00
     Bit 0                   : 0 (reserved, any value)
     Bit 1                   : 0 (Device at Port 1 is removable)
     Bit 2                   : 0 (Device at Port 2 is removable)
     Bit 3                   : 0 (Device at Port 3 is removable)
     Bit 4                   : 0 (Device at Port 4 is removable)
     Bit 5                   : 0 (unused, must be 0)
     Bit 6                   : 0 (unused, must be 0)
     Bit 7                   : 0 (unused, must be 0)
    PowerControlMask         : 0x1E
    Data (HexDump)           : 09 29 04 09 00 32 64 00 1E                        .)...2d..
    HubIsBusPowered          : 0x00 (Self Powered)
    
          ---------------- Extended USB Hub Descriptor ---------------
    HubType                  : 0x02 (Usb20Hub - hub descriptor is defined in USB 2.0 and 1.1 specifications)
    HighestPortNumber        : 0x04 (4 Ports)
    UsbHubDescriptor         : identical with "USB Hub Descriptor" shown above
    Data (HexDump)           : 09 29 04 09 00 32 64 00 1E                        .)...2d..
    
            ----------------- USB Hub Capabilities ----------------
    HubIs2xCapable           : 0 (Is not 2.x capable)
    Data (HexDump)           : 00 00 00 00                                       ....
    
            --------------- USB Hub Capabilities Ex ---------------
    HighSpeedCapable         : 0 (No)
    HighSpeed                : 0 (No)
    MultiTtCapable           : 0 (No)
    HubIsMultiTt             : 0 (No)
    ArmedWakeOnConnect       : 0 (No)
    IsBusPowered             : 0 (No)
    IsRoot                   : 0 (No)
    Data (HexDump)           : 00 00 00 00                                       ....
    
            ---------------- Connection Information ---------------
    Connection Index         : 0x07 (Port 7)
    Connection Status        : 0x01 (DeviceConnected)
    Current Config Value     : 0x01 (Configuration 1)
    Device Address           : 0x38 (56)
    Is Hub                   : 0x01 (yes)
    Device Bus Speed         : 0x01 (Full-Speed)
    Number Of Open Pipes     : 0x01 (1 pipe to data endpoints)
    Pipe[0]                  : EndpointID=1  Direction=IN   ScheduleOffset=0  Type=Interrupt  wMaxPacketSize=1    bInterval=255
    Data (HexDump)           : 07 00 00 00 12 01 10 01 09 00 00 08 51 04 46 20   ............Q.F 
                               25 01 00 00 00 01 01 01 01 38 00 01 00 00 00 01   %........8......
                               00 00 00 07 05 81 03 01 00 FF 00 00 00 00         ..............
    
            --------------- Connection Information V2 -------------
    Connection Index         : 0x07 (7)
    Length                   : 0x10 (16 bytes)
    SupportedUsbProtocols    : 0x03
     Usb110                  : 1 (yes, port supports USB 1.1)
     Usb200                  : 1 (yes, port supports USB 2.0)
     Usb300                  : 0 (no, port not supports USB 3.0)
     ReservedMBZ             : 0x00
    Flags                    : 0x00
     DevIsOpAtSsOrHigher     : 0 (Device is not operating at SuperSpeed or higher)
     DevIsSsCapOrHigher      : 0 (Device is not SuperSpeed capable or higher)
     DevIsOpAtSsPlusOrHigher : 0 (Device is not operating at SuperSpeedPlus or higher)
     DevIsSsPlusCapOrHigher  : 0 (Device is not SuperSpeedPlus capable or higher)
     ReservedMBZ             : 0x00
    Data (HexDump)           : 07 00 00 00 10 00 00 00 03 00 00 00 00 00 00 00   ................
    
        ---------------------- Device Descriptor ----------------------
    bLength                  : 0x12 (18 bytes)
    bDescriptorType          : 0x01 (Device Descriptor)
    bcdUSB                   : 0x110 (USB Version 1.10)
    bDeviceClass             : 0x09 (Hub)
    bDeviceSubClass          : 0x00
    bDeviceProtocol          : 0x00
    bMaxPacketSize0          : 0x08 (8 bytes)
    idVendor                 : 0x0451 (Texas Instruments)
    idProduct                : 0x2046
    bcdDevice                : 0x0125
    iManufacturer            : 0x00 (No String Descriptor)
    iProduct                 : 0x00 (No String Descriptor)
    iSerialNumber            : 0x00 (No String Descriptor)
    bNumConfigurations       : 0x01 (1 Configuration)
    Data (HexDump)           : 12 01 10 01 09 00 00 08 51 04 46 20 25 01 00 00   ........Q.F %...
                               00 01                                             ..
    
        ------------------ Configuration Descriptor -------------------
    bLength                  : 0x09 (9 bytes)
    bDescriptorType          : 0x02 (Configuration Descriptor)
    wTotalLength             : 0x0019 (25 bytes)
    bNumInterfaces           : 0x01 (1 Interface)
    bConfigurationValue      : 0x01 (Configuration 1)
    iConfiguration           : 0x00 (No String Descriptor)
    bmAttributes             : 0xE0
     D7: Reserved, set 1     : 0x01
     D6: Self Powered        : 0x01 (yes)
     D5: Remote Wakeup       : 0x01 (yes)
     D4..0: Reserved, set 0  : 0x00
    MaxPower                 : 0x00 (0 mA)
    Data (HexDump)           : 09 02 19 00 01 01 00 E0 00 09 04 00 00 01 09 00   ................
                               00 00 07 05 81 03 01 00 FF                        .........
    
            ---------------- Interface Descriptor -----------------
    bLength                  : 0x09 (9 bytes)
    bDescriptorType          : 0x04 (Interface Descriptor)
    bInterfaceNumber         : 0x00 (Interface 0)
    bAlternateSetting        : 0x00
    bNumEndpoints            : 0x01 (1 Endpoint)
    bInterfaceClass          : 0x09 (Hub)
    bInterfaceSubClass       : 0x00
    bInterfaceProtocol       : 0x00
    iInterface               : 0x00 (No String Descriptor)
    Data (HexDump)           : 09 04 00 00 01 09 00 00 00                        .........
    
            ----------------- Endpoint Descriptor -----------------
    bLength                  : 0x07 (7 bytes)
    bDescriptorType          : 0x05 (Endpoint Descriptor)
    bEndpointAddress         : 0x81 (Direction=IN EndpointID=1)
    bmAttributes             : 0x03 (TransferType=Interrupt)
    wMaxPacketSize           : 0x0001 (1 byte)
    bInterval                : 0xFF (255 ms)
    Data (HexDump)           : 07 05 81 03 01 00 FF                              .......
    
          -------------------- String Descriptors -------------------
    none
    
  • Ok, then the reset to the hub should be fine.  The series resistors should be closer to the device, but even placed incorrectly I would expect to see some toggling on the downstream ports.

    Can you share waveform on the downstream port with a USB 2.0 (HS/FS) device connected?

    Regards,

    JMMN

  • This is the PCB layout

  • Hi Thomas,

    Are the blue / yellow lines the upstream port?  And the downstream port are the pink / dark blue ones?  Why are both DP and DM high on the pink / dark blue lines, that is an invalid line state and should not occur.

    Regards,

    JMMN

  • yes, you are right, top two are DP0+/DP0-, and the bottom 2 are DP3+(blue),DP3-(pink).

    I cannot explain the question you asked. I thought the D+ should be always high causing I am testing usb2.0 full speed? if it is not about the reset or crystal, then what can cause it happens? or its might the reset issue?

  • by the way, I did not using SN75420(diode in between the signals, it that might be the case then?

  • Hi Thomas,

    This is not a reset or crystal issue since the upstream port of the hub works properly.

    When you plug in a downstream device and it sees VBUS, if it is a FS or HS device, the device will turn on a pullup on DP

    When you plug in a downstream device and it sees VBUS, if it is a LS device, the device will turn on a pullup on DM

    In your system both DP and DM are high which is likely causing the issue.

    Can you disconnect the downstream device, make sure VBUS is at 5V on the port and then capture what happens on DP and DM when the downstream device is connected?

    Regards,

    JMMN

  • Hi JMMN,

    Thank you for your helping, the thing is now the board works, I knew what mistake I made. I used 0.022uF cap in pull-down between TUSB2046 and TPS2044, it is actually 22nF, not 22pF. This is how my test failed. Overall, its not the mistake happened in my board, but the components I used. This is no way we can fix it if I did not double check. 

    Regrads,

    Thomas Sui