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.

[参考译文] Linux/AM5718:USB 控制器配置

Guru**** 2999690 points

Other Parts Discussed in Thread: AM5718, AM5728

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/679204/linux-am5718-usb-controller-configuration

器件型号:AM5718
主题中讨论的其他器件: AM5728

工具/软件:Linux

尊敬的 TI:

具有 USB 集线器的定制板(参考 AM5718和 AM5728)。
在引导过程中、可以看到集线器检测。
但是、在 ls /sys/class/udc 中没有相对于 USB1 (0x48890000)的控制器。
我能够看到 USB2控制器(0x488d0000)。

在 ls /sys/class/udc 之后、我期望应该有两个 USB 控制器
48890000.usb 488d0000.usb

请找到所附的引导日志。
如果您遗漏了任何内容、请向我提出建议。

谢谢、

Anile2e.ti.com/.../sd_5F00_master_5F00_usb1_5F00_hub_5F00_log1.txt

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

    Anil、

    [报价用户="Anil goud">我希望在 ls /sys/class/udc 之后应该有两个 USB 控制器
    48890000.usb 488d0000.usb

    这并非总是正确的。 这取决于器件树中的 dr_mode 设置。 如果 dr_mode 设置为"host"、则没有 UDC 条目、因为 UDC 表示 USB 设备控制器、但 dr_mode=host 会将控制器设置为主机。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Bin Liu、
    非常感谢您提供的宝贵信息、我还有一个疑问。

    具有两个 CPU (AM5728)的定制板、配置如下:
    1)带有 USB1集线器(来自 AM5728的基准)接口的 CPU1、
    2) 2)用于 USB 器件的 CPU2 USB1控制器。
    CPU2 USB1连接到下游上的 USB 集线器(内部连接在板上)。

    因此、CPU1能够检测集线器和下游端口、因此我是否可以假设 USB 路径正常。
    在 CPU2中、USB1配置为小工具器件与 UDC 48890000.usb 绑定

    但在 CPU1侧看不到驱动器名称(分区磁盘)。
    请建议、我可能会犯什么错误。

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

    我假设您已在 CPU2 USB1上加载 g_mass 存储小工具驱动程序?
    CPU2上的"Cat /sys/class/udc/48890000.usb/uevent 将告诉您这一点。

    然后检查 CPU2 USB1连接到的集线器下行端口是否具有 VBUS 电源。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Bin Liu、

    1) 1)我在 CPU2 USB1上使用 CONFIGFS 小工具驱动程序、 下面显示了相关信息。

    CAT /sys/class/udc/48890000.usb/uevent
    driver=configfs-gadget
    USB_UDC_name=dwc3-gadget
    USB_UDC_DRIVER=G1

    2) 2)然后检查 CPU2 USB1连接到的集线器下行端口是否具有 VBUS 电源。

    是、CPU2 USB1具有 VBUS 电源(3.3V)

    仍然无法在 CPU1侧看到驱动器分区。

    请建议我仍然缺少任何东西。

    谢谢、

    Anil

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

    Anil、

    [引用用户="Anil goud"]

    1) 1)我在 CPU2 USB1上使用 CONFIGFS 小工具驱动程序、 下面显示了相关信息。

    CAT /sys/class/udc/48890000.usb/uevent
    driver=configfs-gadget
    USB_UDC_name=dwc3-gadget
    USB_UDC_DRIVER=G1

    [/报价]

    信息显示小工具看起来正常。 但出于调试目的、最好从'modprobe g_zero"开始。

    [引用用户="Anil goud"]是的,CPU2 USB1具有 VBUS 电源(3.3V)[/引用]

    VBUS 必须为5.0V。 请检查您的硬件设计。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    顺便说一下、这里是 AM57x 原理图检查清单和高速接口布局指南的链接、供您参考。

    processors.wiki.ti.com/.../AM57xx_Schematic_Checklist

    www.ti.com/.../spraar7
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Bin Liu、
    感谢您的意见、我将仔细检查并返回更新。
    谢谢、
    Anil
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Bin Liu、

    符合 AM57xx_Schematic Checklist 标准

    USB 器件的 AM57xx 典型连接:

    USBx_DP  和 USBx_DM 直接连接到 USB 连接器

    2.  连接器 ID 引脚可以保持未连接状态

    USBx_DRVVBUS  未使用、可以保持未连接状态

    但在 AM5718中、idk 板原理图显示了

    ID 和 drvbus 未断开连接、您能解释一下这一概念吗?

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

    Anil、

    [引用用户="Anil goud"]

    USB 器件的 AM57xx 典型连接:
    2.  连接器 ID 引脚可以保持未连接状态
    USBx_DRVVBUS  未使用、可以保持未连接状态

    [/报价]

    如上所述、这些要求适用于"USB 器件"、也称为外设模式、

    [引用用户="Anil goud"]

    但 在 AM5718 中、idk 板原理图显示了

    ID 和 drvbus 未断开连接、您能解释一下这一概念吗?

    [/报价]

    但在 AM5718 IDK EVM 中、USB1处于仅主机模式、USB2处于双角色模式、但它们均未处于外设模式。  

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

    您好、Bin Liu、

    从上面的讨论中可以清楚地看到、CPU2 USB1小工具看起来正常、CPU1集线器正常、但 CPU1中不会发生器件检测。

    如何交叉检查集线器检测到器件(CPU2 USB1)。

    以及需要在针对 CPU2、USB1的 DTS 文件中执行的操作。

    我做的如下:

    USB1:DR_MODE ="外设";

    将 mux_data.h 中的 GPIO7_25更改为 PIN_INPUT_PULLUP

    USB1_DRVVBUS:mux_data.h 中的 PIN_INPUT_SLEW

    如果我有任何问题、请更正。

    但是 、在 CPU2 USB1中没有连接器、CPU2 USB1在电路板中互连至集线器的 CPU1 USB1 (下游侧)(与 AM5728 EVM 的原理图相同)。

    下面显示了 CPU2 USB1。(移除了 R831、R833)。

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

    您是否解决了集线器下行端口上的 VBUS 电压问题? 您提到过它是3.3V。 它必须是5V。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Bin Liu、

    在调试时、我观察到、

    对于主机端(CPU1:带集线器的 USB1):

    CD /sys/kernel/debug/48890000.usb
    # ls
    link_state 模式       regdump    测试模式
    # cat link_state
    SS.已禁用
    # cat 模式
    主机

    ------------

    对于器件端(CPU2、:USB1):

    CD /sys/kernel/debug/48890000.usb
    # CD 48890000.usb/
    # ls
    link_state regdump    测试模式
    # cat link_state
    SS.已禁用

    请建议我、这可能是什么错误

    谢谢、

    Anil

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

    [引用用户="Anil goud"]

    对于主机端(CPU1:带集线器的 USB1):

    (笑声)
    # cat link_state
    SS.已禁用

    [/报价]

    这是"S.禁用"正常。 由于此 LINK_ST态 条目适用于处于设备模式的 USB 控制器、因此与主机模式无关。

    [引用用户="Anil goud"]

    对于器件端(CPU2、:USB1):

    (笑声)
    # cat link_state
    SS.已禁用

    [/报价]

    此消息指示未枚举设备。 假设您在设备端加载了小工具驱动程序、则此问题是集线器下行端口不枚举设备。

    正如我在您创建的与此问题相关的另一个 e2e 线程中提到的、您必须检查您的电路板设计与集线器相关。 例如、您说集线器下行端口 VBUS 电源为3.3V、这是错误的、必须为5V。

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

    现在、它对我来说工作正常、
    首先、我运行了自供电 USB 设备、然后启动了主机 USB 集线器、在这种情况下、所有事件触发都很正常。
    能够检测主机上的磁盘。

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

    很高兴它现在在工作。
    但是、是什么导致它以前不起作用? 是否必须在启动 CPU1之前首先启动 CPU2 - USB 器件?