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.

CCS/TM4C1290NCPDT: Device Descriptor Failure

Part Number: TM4C1290NCPDT
Other Parts Discussed in Thread: EK-TM4C1294XL, EK-TM4C123GXL

Tool/software: Code Composer Studio

I'm working to get the TivaWare USB CDC driver to talk to Windows 10 for testing.  I'm editing the example .INF file in the documentation.  I install the .INF file and when I connect the USB cable I get the error "Device Descriptor Failure".  I have the VID and PID values correct.  Some of other messages are:

... was not migrated due to partial or ambiguous match.

Migration rank: 0xF00FFF...FFF020

I'm confused about the relationship between some of the the Descriptor Strings in the rUSBCDCDevice structure and the string definition in the [Strings] section of the .INF file.  I see the relationship between the manufacturer string in the string descriptor table (in the usb_dev_serial example) and the MFGNAME name in the .INF ("Texas Instruments"), but not for the string descriptor table entries:

Product String: "Virtual COM Port", Serial Number String "12345678", Control Interface String "ACM Control Interface" and Configuration String "Self Powered Configuration"

and the .INF [Strings] section in the example of:

DESCRIPTION_0 = "USB Serial Port" and SERVICE = "USB CDC serial port".

Thanks, Doug

  • Note that the top level error message is "Device Descriptor Request Failed.  Code 43"

  • Hello Charles

    I am not needing for my end application to work on Win10, the application will use USB to communicate with my embedded TM4C cpu and a proprietary Linux based computer, so I do not need to have a signed driver, I'm just using Win10 as a (hopefully) easy way to confirm that the USB code and interface is working on the embedded cpu.  I am able to install my .INF file without it being signed, I just need to be able to communicate with the builtin CDC usb driver.  I was hoping that someone knew what it took to have Windows allow my TivaWare USB code to communicate with it.

    Thanks, Doug

  • Hi Doug,

      Did you have a chance to run the TivaWare usb_dev_cserial example as is which can be found under <TivaWare_Installation>/examples/boards/ek-tm4c1294xl/usb_dev_cserial? There is another simpler CDC example for the TM4C123 device  under <TivaWare_Installation>/examples/boards/ek-tm4c123gxl/usb_dev_serial that you can also reference. If you can get these examples to work that should help you debug your problem. 

      I'm not too sure if the INF file must match the description string. I'm looking at the usb_dev_serial example for TM4C123. 

    The usb_serial_struct.h file:

      

    //*****************************************************************************
    //
    // The manufacturer string.
    //
    //*****************************************************************************
    const uint8_t g_pui8ManufacturerString[] =
    {
        (17 + 1) * 2,
        USB_DTYPE_STRING,
        'T', 0, 'e', 0, 'x', 0, 'a', 0, 's', 0, ' ', 0, 'I', 0, 'n', 0, 's', 0,
        't', 0, 'r', 0, 'u', 0, 'm', 0, 'e', 0, 'n', 0, 't', 0, 's', 0,
    };
    
    //*****************************************************************************
    //
    // The product string.
    //
    //*****************************************************************************
    const uint8_t g_pui8ProductString[] =
    {
        2 + (16 * 2),
        USB_DTYPE_STRING,
        'V', 0, 'i', 0, 'r', 0, 't', 0, 'u', 0, 'a', 0, 'l', 0, ' ', 0,
        'C', 0, 'O', 0, 'M', 0, ' ', 0, 'P', 0, 'o', 0, 'r', 0, 't', 0
    };






    The INF file:

    [Strings]
    MFGNAME     = "Texas Instruments, Inc."
    DESCRIPTION = "TivaWare USB serial port"
    SERVICE     = "TivaWare USB CDC serial port"

    In the descriptor file the manufacture is Texas Instruments while the INF file has Texas Instruments, Inc. They are different so I tend to think that the MFGNAME does not really relate to the manufacture string in terms of the string name.