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.

[参考译文] TM4C1231C3PM:USB 主机-手柄复合器件

Guru**** 2524460 points
Other Parts Discussed in Thread: EK-TM4C1294XL

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1238697/tm4c1231c3pm-usb-host---handle-composite-device

器件型号:TM4C1231C3PM
主题中讨论的其他器件:TM4C123、EK-TM4C1294XL

您好!

我打算在主机模式下使用 Usblib (与 TM4C123结合使用)。

将连接到我的器件的外设是一个复合器件、包含 MSD 和串行器件。  

usblib 为 HID 类和海量存储类提供 API。 是否甚至可以与复合器件通信? 我是否需要实施自定义主机类驱动程序?

感谢您的帮助

此致、

桑德罗

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [quote userid="566437" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1238697/tm4c1231c3pm-usb-host---handle-composite-device 该 usblib 为 HID-Class 和 Mass Storage -Class 提供 API。 是否甚至可以与复合器件通信? 是否需要实施自定义主机类驱动程序?

    尊敬的 Sandro:

     是的、我认为您需要实施自定义主机类驱动程序来支持复合器件。  对于 USB 设备模式、我们确实有一些您可以参考的复合器件示例。 例如、 C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\usb_dev_cserial 是具有两个 CDC 类的复合 USB 器件模式。  

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

    您好,Charles

    感谢您的快速回复。

    在当前的实现中、我使用 CDC 类驱动程序和 MSC 类驱动程序初始化 Host Class 驱动程序。

    到目前为止、我已尝试将一个复合器件(包括 MSD 和 CDC 器件)连接到我的主机器件。

    MSD 被检测、但 CDC 被忽略。 因此、库似乎以某种方式检测到存在器件。

    当我只将 CDC 器件连接到主器件时、系统会检测到该器件并能够进行通信。

    我唯一缺少的是让 MSD 和 CDC 同时被检测到。

    您是否有关于处理复合器件的 USB 主机模式的示例?

    是否可以使用支持多个设备的集线器类驱动程序?

    Br、

    桑德罗

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

    您是否有关于处理复合器件的 USB 主机模式的示例?

    是否可以使用支持多个设备的集线器类驱动程序?

    [/报价]

    尊敬的 Sandro:

     正如我在第一个回复中提到的、我们没有任何关于 USB 主机模式处理复合器件的示例。 TivaWare 库中唯一的主机模式示例如下所示。 它们适用于 TM4C129 MCU。 但是、您可以将其移植到 TM4C123。  

    有一个适用于 TM4C123及主机模式示例的应用手册、但它适用于单类器件、而不是复合器件。  

    https://www.ti.com/lit/pdf/spna243

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

    尊敬的 Charles:

    感谢您的回答。

    我正在尝试通过集线器类实现 USB 主机模式。 系统会检测到集线器、但未检测到连接的设备(也包括 USB 记忆棒等单个设备)、但将集线器连接到我的设备时、会为连接到 USB 集线器的每个设备检测到 USB_EVENT_UNKNOWN。

    "我怎么了? 我的代码基于 Tivaware C 系列库随附的 usb_host_hub 示例。

    Br、

    桑德罗

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

    我能明白,我忘了扩大 HCD 池的大小。 但是、当通过 USB 集线器将该复合设备连接到我的设备时、仍然只有 MSD 被检测到。

    您能给我一些提示、说明如何为复合器件构建自定义 USB 主机驱动程序吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我能明白,我忘了扩大 HCD 池的大小。 但是、当通过 USB 集线器将复合设备连接到我的设备时、仍然只有 MSD 被检测到

    很高兴您取得了进步。

    您能提示我如何为复合设备构建自定义 USB 主机驱动程序吗?

    我希望能提供一些提示、但我不是 USB 库专家。 我最好的建议是了解 USB 设备模式对复合设备的支持情况。 某种程度上、自定义库需要能够解释复合器件描述符。