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.

[参考译文] TMS320F28378S:USB 库软件

Guru**** 1825110 points
Other Parts Discussed in Thread: TMS320F28378S, C2000WARE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1260455/tms320f28378s-usb-library-software

器件型号:TMS320F28378S
主题中讨论的其他器件: C2000WARE

您好!  

我们在使用于 TMS320F28378S 的 USB 软件正常工作时遇到一些困难。 我们已尽最大努力遵循 C2000 Ware 中的 usb_ex4_dev_bulk.c 示例、但是由于许多重要函数都被注释掉、所以这有点挑战性。  

我们用于初始化 USB 软件的代码如下所示。 如果我们在  INT_myUSB0_ISR、 USBBufferEventCallback 或 RxHandler 中设置断点、 断点永远不会被命中 ——即使我们多次断开/连接主机。  

静态 tUSBDBulkDevice USB_BULK_DEVICE =
{
secret_VID、
secret_PID、
125、
USB_CONF_ATTR_SELF_PWR、
RxHandler、
(void *)&g_sRxBuffer、
USBBufferEventCallback、
(void *)&g_sTxBuffer、
g_pStringDescriptor,
sizeof (g_pStringDescriptors)、
};

中断失效 INT_myUSB0_ISR (void)
{
USB0DeviceIntHandler ();
INTERRUPT_clearACKGROUP (INTERRUPT_ACK_group9);

空 配置 USB ()
{
静态 void* pvdevice = NULL;
GpioCtrlRegs.GPBAMSL.bit.GPIO42 = 1;//在 GPIO 上启用 USB 操作
GpioCtrlRegs.GPBAMSL.bit.GPIO43 = 1;//在 GPIO 上启用 USB 操作
GPIO_SetupPinOptions (43、GPIO_input、GPIO_pullup);
InitAuxPll (XTAL_OSC、3、0、0);// XTAL 振荡器为20 MHz,需要60 MHz PLL 输出

USBBufferInit (&g_sTxBuffer);
USBBufferInit (&g_sRxBuffer);
INTERRUPT_register (INT_USBA、INT_myUSB0_ISR);
USBStackModeSet (0、eUSBModeForceDevice、ModeCallback);
pvdevice = USBDBulkInit (0、&USB_BULK_DEVICE);


我们可以使用示波器来验证 USB D++线路上是否存在流量。 主机可以识别在 D+上拉后 USB 设备已连接、但是由于设备软件不响应、USB 驱动程序会指示"设备描述符请求失败"。  

非常感谢这里的任何指导。  

谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!  

    请提供以下信息-  

    1 . 您正在使用哪个版本的 C2000Ware?

    2.您是在控制卡还是定制板上运行示例?

    3.如果是控制卡,那么您是否能够在上面运行 C2000Ware 中提供的现有示例?

    此致

    西达尔特

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Siddarth:

    我们意识到我们没有启用包含 USBA 中断的中断组9。 我们添加了此行以解决我们的问题:  

     IER |= M_INT9;              //启用 CPU INT9 (组9,包括 USBA)

    谢谢!