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/AM3358:USB VBUS 脉冲

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/814464/linux-am3358-usb-vbus-pulses

器件型号:AM3358
主题中讨论的其他器件:TPS65217

工具/软件:Linux

您好!

我们的产品使用内核为4.9.78的 BeagleBone Black、我们发现一个问题与中所述的类似:

https://e2e.ti.com/support/processors/f/791/p/250507/887113#887113

因此,我们将遇到随机重新启动问题,如所述:

e2e.ti.com/.../383903

我们如何在 VBUS 线上禁用这些脉冲? 使用内核3.8.x 时、如果在内核配置中禁用 USB_OTG、这些脉冲将被禁用、但对于内核4.9、这不起作用。 如果加载了 g_ether 驱动程序、即使禁用了 USB_OTG、我仍然可以看到脉冲。 如果删除了 G_ether 模块、则脉冲将消失。

相关线程提到在内核驱动程序中禁用这些功能、但我不确定在哪里查找。 是否有需要设置的特定配置选项或是否应修改源?

请告知、

- Tavi

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

    尊敬的 Tavi:

    您使用的是哪个处理器 SDK 版本?

    当您看到 VBUS 脉冲时、BBB USB0端口是连接到 USB 主机还是拔下?

    请在电路板上运行以下命令并提供其输出。

    # cat /sys/firmware/devicetree/base/ocp/usb@47400000/USB@47401000/dr_mode

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

    您好、Bin、

    我只能在拔下电缆时看到脉冲。 只有先连接电缆、然后断开连接、才会发生这种情况。 如果电路板在没有电缆的情况下引导、则不会出现脉冲。

    如果我移除 g_ether 模块(modprobe -r g_ether)、VBUS 脉冲也会消失

    上面列出的 cat 命令的输出是"peripheral"

    此产品不使用 TI SDK、并且内核/文件系统基于 BBB debian 社区映像。

    我知道 TI 不支持这种配置、但我希望您能指向正确的内核配置或源文件、在这里我可以禁用内核4.9.x 的 VBUS 脉冲

    - Tavi

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

    TAMI、

    请测试 TI Processor SDK 内核、以查看问题是否也会发生。

    我测试了基于内核 v4.9.41的 SDK v4.1.0.6、但在拔下 USB 电缆后看不到任何 VBUS 脉冲。

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

    我在 sdcard 上刷写了 SDK v4.1.0.6附带的 rootfs、但仍然看到同样的问题。

    以下是我复制它所遵循的步骤:

    -从使用 tisdk-rootfs-image-am335x-evm.tar.xz 刷写的 sdcard 引导。 此电路板由5V 直流连接器(P1)供电。 我正在从串行控制台监控引导过程

    -将 USB 电缆插入 mini-USB 连接器(P4)。 USB 电缆的另一端连接到我的 Linux 工作站。

    -拔下 USB 电缆

    -现在我可以在示波器上看到 VBUS 脉冲,PMIC 也会检测到这些脉冲。  当我运行命令"watch -n0 i2cdump -f -y 0 0x24"时、TPS65217的寄存器0xA 在0x8c 和0x88之间变化

    注:

    未加载模块 g_ether、因此我无法验证行为是否受此影响。

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

    TAMI、

    我执行的测试序列相同、但在示波器上看不到 VBUS 脉冲。

    您在 BeagleBone Black 上进行测试、而不是在定制板上进行测试、对吧?

    您能否提供示波器的屏幕截图以显示脉冲的外观?

    顺便说一下、SDK rootfs 默认加载 g_multi-driver。 您可以使用以下命令检查加载的 USB 小工具驱动程序。

    # cat /sys/class/udc /*/uevent

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

    您好、Bin、

    是的、我正在 BeagleBone Black 上进行测试。 我附加了脉冲的屏幕截图。 它们大约为2.5V、每2秒重复一次。

    我还粘贴在 cat 命令的输出下方、在 SDK 映像上运行

    root@AM335x-EVM:~# cat /sys/class/udc /*/uevent
    驱动程序=g_multi
    USB_UDC_NAME=musb-hdrc
    USB_UDC_DRIVER=g_MULTI

    我们基于 debian 的系统使用 g_ether、我可以使用"modprobe -r g_ete"来移除它、它会停止 VBUS 脉冲。

    我尝试以与 SDK 映像相同的方式删除 g_multi,但命令挂起。 系统仍然正常工作、只有 modprobe 命令永远不会返回。

    - Tavi

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

    TAMI、

    感谢您提供示波器屏幕截图。 现在我知道脉冲是什么。 但是、我们需要一起进行调试、以找到导致脉冲的驱动程序错误、因为我无法在设置中看到问题。

    拔下 USB 电缆以触发脉冲时、请在电路板上运行以下命令并提供其输出。

    # cat /sys/devices/platform/ocp/47400000.usb/47401400.usb/musb-hdrc.0/mode

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

    TAMI、

    请忽略我之前的调试请求、并确保您使用2019年发布的任何内核版本、并仔细检查内核是否已应用以下补丁。

    marc.info/

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

    谢谢你。

    拔下 USB 电缆后、应用上面列出的补丁程序即可消除 VBUS 脉冲。

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

    TAMI、

    感谢您的更新。 我很高兴问题得到解决。