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.

TMS320F28377S: USB请求设备描述符失败

Part Number: TMS320F28377S
Other Parts Discussed in Thread: C2000WARE

usb_ex1_dev_serial例程下载至LAUNCHXL-F28377S评估板,例程可以正常编译、下载、运行,插入usb连接线后,win10的usb口连接有问题:请求设备描述符失败,请问如何解决这个问题?

注:

  • 硬件连接图参照SPRUHX5G–August 2014–Revised September 2019:Figure 22-2. USB Scheme

 

  • 使用win10, CCS12.1.0.00007_win64,C2000Ware_4_02_00_00, sysconfig-1.14.0_2667.
  • 连接问题如下图:

 

 

  • Hi hongwei liu,

    您看一下程序开头的注释:

    这个例程是针对controlCARD的。有关USB部分的硬件设计:

    F2837x_180controlCARD_R1_1_a_SCH_09May2014.pdf

  • Hi Yale Li

    我注意到了程序开头的注释,我想建立28377与电脑的usb通讯,使用cdc模式,找不到更合适的例程,才使用此例程的。

    这一例程确实针对controlCARD。SPRUHX5G中描述28377作为device,只连接Vbus,D+,D-,GND即可建立usb连接。controlCARD原理图中还多了ID,请问这一连接是必须的吗?

  • 我注意到:microUSB 接口有5脚定义:Vbus,D+,D-,ID,GND,而电脑的usb接口一般为TypeA,只有4脚定义Vbus,D+,D-,GND。

  • Hi hongwei,

    这个问题我已经询问相关工程师了,有了结果我会第一时间回复

  • Hi Yale Li

    下图是USB Device Viewer的信息,供参考

  • Hi hongwei,

    关于将USB例程从controlCARD适配到LaunchPad,您需要将相应的 C2000 器件引脚连接并焊接到 USB 连接器;需要考虑以下信号,更改其中一些信号的 GPIO number(但不是 USB DM 和 DP,因为它们仅在特定设备引脚上)。

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    //******************************************************************************
    //
    //! Enables USB related GPIOs to perform their USB function.
    //
    //******************************************************************************
    void USBGPIOEnable(void)
    {
    //
    // Set the USB DM and DP.
    //
    GPIO_setMasterCore(42, GPIO_CORE_CPU1);
    GPIO_setAnalogMode(42, GPIO_ANALOG_ENABLED);
    GPIO_setMasterCore(43, GPIO_CORE_CPU1);
    GPIO_setAnalogMode(43, GPIO_ANALOG_ENABLED);
    //
    // Set the direction for VBUS.
    //
    GPIO_setMasterCore(46, GPIO_CORE_CPU1);
    GPIO_setDirectionMode(46, GPIO_DIR_MODE_IN);
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • Hi Yale Li

    请问上文提到的 “USB 连接器” 是指USB线束吗?我使用的28377s连接了controlCARD原理图中列出的6个引脚的上拉和下拉电阻,但没有连接芯片TPS2051BDBVR和TPD4S012DRYR,并在软件中更改了GPIO number,如下:

    问题依然存在。

    请问是否一定要使用controlCARD原理图中列c出的全部电路?因我手头没有controlCARD,我希望了解建立usb cdc通讯,哪些部分是必须的。

  • Hi hongwei,

    请问上文提到的 “USB 连接器” 是指USB线束吗?

    是指USB接头,焊接在电路板上的。

    其它问题我已经跟进过去了,感谢您的耐心等候。

  • Hi hongwei,

    请问是否一定要使用controlCARD原理图中列c出的全部电路?

    不一定;

    TPS2051BDBVR

    TPS2051BDBVR是用来控制F2837x ControlCARD是处于被供电状态(Device mode)还是供电状态(Host mode)的。

    TPD4S012DRYR

    TPD4S012DRYR是一个ESD二极管,没有的话也行,但是操作的时候要小心一些。

  • Hi Yale Li

    谢谢上述回复!

    我在例程调试阶段发现初始化运行到USBDCDCInit(0, &g_sCDCDevice);函数时,总线上有数据,但并没有完成device descriptor的读取就suspend了,可以读到ui32Event = 7(USB_EVENT_SUSPEND),下图是总线数据包的情况:

  • Hi hongwei,

    我跟进给相关工程师了。

  • Hi Yale Li,

    根据上述帖子,本问题已解决,非常感谢!

  • hongwei,

    不客气,问题解决就好