Part Number:TMS320F28377SOther 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.
- 连接问题如下图:
Yale Li:
Hi hongwei liu,
您看一下程序开头的注释:
这个例程是针对controlCARD的。有关USB部分的硬件设计:
F2837x_180controlCARD_R1_1_a_SCH_09May2014.pdf
,
hongwei liu:
Hi Yale Li
我注意到了程序开头的注释,我想建立28377与电脑的usb通讯,使用cdc模式,找不到更合适的例程,才使用此例程的。
这一例程确实针对controlCARD。SPRUHX5G中描述28377作为device,只连接Vbus,D+,D-,GND即可建立usb连接。controlCARD原理图中还多了ID,请问这一连接是必须的吗?
,
hongwei liu:
我注意到:microUSB 接口有5脚定义:Vbus,D+,D-,ID,GND,而电脑的usb接口一般为TypeA,只有4脚定义Vbus,D+,D-,GND。
,
Yale Li:
Hi hongwei,
这个问题我已经询问相关工程师了,有了结果我会第一时间回复
,
hongwei liu:
Hi Yale Li
下图是USB Device Viewer的信息,供参考
,
Yale Li:
好的
,
Yale Li:
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); }
,
hongwei liu:
Hi Yale Li
请问上文提到的 “USB 连接器” 是指USB线束吗?我使用的28377s连接了controlCARD原理图中列出的6个引脚的上拉和下拉电阻,但没有连接芯片TPS2051BDBVR和TPD4S012DRYR,并在软件中更改了GPIO number,如下:
问题依然存在。
请问是否一定要使用controlCARD原理图中列c出的全部电路?因我手头没有controlCARD,我希望了解建立usb cdc通讯,哪些部分是必须的。
,
Yale Li:
Hi hongwei,
hongwei liu 说:请问上文提到的 “USB 连接器” 是指USB线束吗?
是指USB接头,焊接在电路板上的。
其它问题我已经跟进过去了,感谢您的耐心等候。
,
Yale Li:
Hi hongwei,
hongwei liu 说:请问是否一定要使用controlCARD原理图中列c出的全部电路?
不一定;
hongwei liu 说:TPS2051BDBVR
TPS2051BDBVR是用来控制F2837x ControlCARD是处于被供电状态(Device mode)还是供电状态(Host mode)的。
hongwei liu 说:TPD4S012DRYR
TPD4S012DRYR是一个ESD二极管,没有的话也行,但是操作的时候要小心一些。
,
hongwei liu:
Hi Yale Li
谢谢上述回复!
我在例程调试阶段发现初始化运行到USBDCDCInit(0, &g_sCDCDevice);函数时,总线上有数据,但并没有完成device descriptor的读取就suspend了,可以读到ui32Event = 7(USB_EVENT_SUSPEND),下图是总线数据包的情况:
,
Yale Li:
Hi hongwei,
我跟进给相关工程师了。
,
Yale Li:
Hi hongwei,
看一下这个帖子:
https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/653260/tms320f28377s-starting-usb-on-launchxl-f28377s
,
hongwei liu:
Hi Yale Li,
根据上述帖子,本问题已解决,非常感谢!
,
Yale Li:
hongwei,
不客气,问题解决就好