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.

[参考译文] PROCESSOR-SDK-AM64X:基于 AM64x EVM 的设计 USB VBUS PHY 电源

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1414320/processor-sdk-am64x-am64x-evm-based-design-usb-vbus-phy-power

器件型号:PROCESSOR-SDK-AM64X

工具与软件:

使用当前运行 Linux 且基于 AM64x EVM 设计的硬件电路板。  对于 USB 设备配置、该问题来自 USB VBUS 未连接。   

就背景知识而言、AM64x 硬件设计为插入背板、有一个主插槽(指定为 USB 主机)和第二个插槽(指定为 USB 设备)。  硬件上的 FPGA 会检测到该插槽、并相应地向 USB-ID 引脚发送信号。  背板上的信号仅包含 USB_DATA+和 USB_DATA-。  目的是将此 USB 连接用作 USB 上的以太网。  Linux 中提供此方面的软件支持。

我能够通过将背板第二槽连接器连接到 micro-USB b 电缆并连接到 AM64x EVM 板来验证 USB 主机(在背板的主插槽中)。  由于 VBUS 没有在背板上发出信号、因此我将 J23接头(USB0_VBUS)的引脚1连接到 EVM 上的+5V 电源、以便为 VBUS 供电。  Linux 在两块电路板上启动并在 EVM 电路板上执行"modprobe g_ether"后、USB Connected 和以太网 over USB 的工作效果非常好。  这似乎也验证了器件树对于定制电路板是正确的。

问题在于硬件设计的器件模式。  虽然硬件通过 USB-ID 正确地检测到 USB 设备模式、但是 VBUS 信号未连接到任何设备。  我目前正在尝试解决 Linux USB 驱动程序中的问题。

我修改了 cdns3驱动程序(源文件 drd.c:函数 cdns_get_vbus())、以对 VBUS 进行硬编码、使其始终返回有效。  这具有使驱动器完全启动的积极效果。  通过执行"modprobe g_ether"、"usb0"器件将出现、并可通过"ifconfig"进行修改。  但是、似乎没有发生 USB 数据信令。

这就引出了以下问题。

1. AM64x 上的内部 USB2.0 PHY 是否需要 USB0_VBUS 才能供电才能正常运行?

2. 是否 可以进行软件调整来启动 USB PHY?

如有任何问题、请告诉我。

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

    尊敬的 Daryl:

    感谢您的 USB 使用案例的详细信息。 尽管我不清楚具体情况、但我在某些地方感到有点困惑、在这些地方、我不确定所提到的"硬件"是 AM64x 或背板。 无论如何,困惑在回答你的问题不重要。 以下是我的评论:

    尽管 AM64x EVM 始终连接 USB VBUS 引脚、而无论 USB 控制器处于主机模式或器件模式、但在没有 VBUS 引脚的情况下不会验证。 不过、

    - AM64x USB 控制器在主机模式下不使用 USB VBUS 引脚工作,我想您的测试证实了这一点。

    -从硬件角度来看,设备模式下的 AM64x USB 控制器确实需要 USB VBUS 引脚。 根据 USB2.0规范、用于通知 USB 主机进行 USB 连接的 DP/DM 线路上拉依赖于 USB 器件侧的 USB VBUS 电压(本例中为 AM64x)。 如果没有 USB VBUS 引脚、AM64x USB 将无法在设备模式下工作。 我认为没有任何软件权变措施。

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

    很高兴知道、非常感谢您的帮助、非常感谢。