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.
usb_ex1_dev_serial例程下载至LAUNCHXL-F28377S评估板,例程可以正常编译、下载、运行,插入usb连接线后,win10的usb口连接有问题:请求设备描述符失败,请问如何解决这个问题?
注:
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,请问这一连接是必须的吗?
Hi hongwei,
关于将USB例程从controlCARD适配到LaunchPad,您需要将相应的 C2000 器件引脚连接并焊接到 USB 连接器;需要考虑以下信号,更改其中一些信号的 GPIO number(但不是 USB DM 和 DP,因为它们仅在特定设备引脚上)。
//****************************************************************************** // //! 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); // // Set the direction for ID. // GPIO_setMasterCore(47, GPIO_CORE_CPU1); GPIO_setDirectionMode(47, GPIO_DIR_MODE_IN); GPIO_setMasterCore(120, GPIO_CORE_CPU1); GPIO_setDirectionMode(120, GPIO_DIR_MODE_IN); GPIO_setMasterCore(121, GPIO_CORE_CPU1); GPIO_setDirectionMode(121, GPIO_DIR_MODE_OUT); GPIO_writePin(121, 1); }
Hi Yale Li
请问上文提到的 “USB 连接器” 是指USB线束吗?我使用的28377s连接了controlCARD原理图中列出的6个引脚的上拉和下拉电阻,但没有连接芯片TPS2051BDBVR和TPD4S012DRYR,并在软件中更改了GPIO number,如下:
问题依然存在。
请问是否一定要使用controlCARD原理图中列c出的全部电路?因我手头没有controlCARD,我希望了解建立usb cdc通讯,哪些部分是必须的。
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),下图是总线数据包的情况: