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.

[参考译文] TMS320F28388D:如何针对特定要求修改 USB 功能

Guru**** 2589245 points
Other Parts Discussed in Thread: C2000WARE, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1172312/tms320f28388d-how-to-modify-usb-function-for-specific-requirement

器件型号:TMS320F28388D
主题中讨论的其他器件:C2000WARESysConfig

您好、专家、

我的客户正在从 C2000ware 测试 USB_ex4_dev_bulk 示例、演示没有问题、但他们希望对代码进行一些修改以满足其要求。

     C:\ti\c2000Ware_4_01_00_00\driverlib\f2838x\examples\C28x\USB

将接收的数据的第一个字节存储到 TG_pui8USBRxBuffer[0]以进行教学时间  

如下图所示、他们希望每次从  TG_pui8USBRxBuffer[0]接收到的数据对齐时、如何修改代码?

2.如何在 函数 RxHandler 之外调用函数 EchoNewDataToHost

在示例中、 EchoNewDataToHost 在函数 RxHandler 中被调用、他们希望在  其他 ISR 中调用 EchoNewDataToHost 函数、  

但不知道如何操作、因为不知道如何设置 pvMsgData 和 psDevice 的指针值。  

pvMsgData 和  psDevice 值来自 RxHandler 的 pvCBData、pvMsgData、如下所示

但是、如何知道在何处设置   RxHandler 函数的 pvCBData、pvMsgData 的值? 我在  CCS 中搜索 RxHandler、找不到任何信息。

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

    您好!  

    我们将在明天回来讨论这个问题。

    此致

    Siddharth  

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

    Siddharth、

    谢谢、客户只需下载 C2000Ware_4_02_00_00并发现 USB 示例有更新。

    似乎仍然无法修改代码以满足上述2个要求。  

    C:\ti\c2000\C2000Ware_4_02_00_00

    将接收的数据的第一个字节存储到 TG_pui8USBRxBuffer[0]以进行教学时间   

    2.如何在 函数 RxHandler 之外调用函数 EchoNewDataToHost

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

    强、

    它。 这两个都在 USB 库中进行处理

    与缓冲区管理相关的是、每次接收到新数据时、写入索引都会递增。  

    2.  pvCBData 是批量器件实例的指针、应可在 ISR 外部访问。  

    我们将继续 对其进行研究并更新您的信息。

    此致

    Siddharth  

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

    Siddharth、

    感谢您的回复。

    与缓冲区管理相关的是、每次接收到新数据时、写入索引都会递增。  

    --> 写索引递增时,如果客户想知道当前接收数据的数据长度,唯一 的方法是用新的写索引减去旧的写索引?

    2.关于 C2000Ware_4_02_00_00的示例代码、还有另一个问题、  

    对于 C2000Ware_4_01_00_00、 有 USB_ex4_dev_bulk_structs.c 和 USB_ex4_dev_bulk_structs.h、

    客户可以修改以下配置、但    C2000Ware_4_02_00_00中没有 USB_ex4_dev_bulk_structs.c 和 usb_ex4_dev_bulk_structs.h、

    如何在 C2000Ware_4_02_00_00中执行相同的配置?

    //
    tUSBDBulkDevice g_sBulkDevice =

    USB_VID_TI_1CBE、
    USB_PID_BULK、
    500、
    USB_CONF_ATTR_SELF、
    USBBufferEventCallback、
    (空*)&g_sRxBuffer、
    USBBufferEventCallback、
    (空*)&g_sTxBuffer、
    G_ppui8字符串描述符、
    num_string_descriptors
    };

    //
    //
    //接收缓冲区(从 USB 角度)。
    //
    //
    uint8_t g_pui8USBRxBuffer[bulk_buffer_size];
    uint8_t g_pui8RxBufferWorkspace[USB_buffer_workspace_size];
    tUSBBuffer g_sRxBuffer =

    false、//这是一个接收缓冲区。
    RxHandler、// pfnCallback
    (void *)&g_sBulkDevice、//回调数据是我们的器件指针。
    USBDBulkPacketRead、// pfnTransfer
    USBDBulkRxPacketAvailable、// pfnAvailable
    (void *)&g_sBulkDevice、// pvHandle
    G_pui8USBRxBuffer、// pi8Buffer
    bulk_buffer_size // ui32BufferSize
    };

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

    强、

    对于第一部分、缓冲区管理在 USB 库中完成。 我正在尝试弄清楚如何在不对 USB Lib 代码进行任何更改的情况下访问 writeIndex。

    2.在 C2000Ware v4.02版本中添加了对 USB 的 SysConfig 支持。 因此、现在可以通过 SysConfig 工具完成此配置。 它将生成  structs.c 和 structs.h 文件。  

    会让您随时了解最新信息。  

    此致

    Siddharth

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

    强、

    您能否下载并尝试4.02版的 C2000WARE + USB SysConfig 工具?

    NIMA

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

    这就是它看起来的样子:

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

    NIMA、

    感谢您的支持、客户已经解决了该问题。

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

    非常感谢!