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:USB1的 VBUS_ERROR

Guru**** 2544130 points
Other Parts Discussed in Thread: AM3358

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/799298/linux-am3358-vbus_error-for-usb1

器件型号:AM3358

工具/软件:Linux

您好!

我们开发了使用 AM3358处理器的 Owen 定制板。  

我使用 USB1连接3G 调制解调器(UC20、Quectel)。 USB 0连接到 PC。

在 DTS 文件中、我将 USB 0设置为外设、将 USB 1设置为主机。

在内核配置文件中、MUSB_Mode_Selection 设置为"双角色模式"。 Linus SDK 版本为 Linux 4.9.28

我已启用

USB 小工具支持驱动程序。  

2. USB 串行驱动程序支持 -(已启用- USB 串行控制台驱动程序支持、USB 通用控制台设备支持、USB qualocom 串行调制解调器、用于 GSM 和 CDMA 的 USB 驱动程序)  

3.已启用 USB 调制解调器支持(CDC ACM)

我可以在命令 lsusb ->上看到以下输出

总线001器件001:ID 1d6b:0002

我可以在/dev/directory 中看到 ttyGS0文件(我认为这适用于 USB0)

硬件方面  

USB1_DRVVBUS 是输出引脚、通过3.3V 拉电阻器连接到调制解调器。

在所有这些设置下、当我打开设备时、我收到以下错误

musb-hdrc musb-hdrc.1:a_wait_vrise 中的 VBUS_ERROR (81、<SessEnd), retry #1, port1 00000104

musb-hdrc musb-hdrc.1:a_wait_vrise 中的 VBUS_ERROR (80、<SessEnd), retry #3, port1 0008010c

此外、当我提供以下命令时  

Echo USB1 >/sys/bus/usb/drivers/usb/unbind

Echo USB1 >/sys/bus/usb/drivers/usb/bind

我有以下输出

[1159.513689]集线器1-0:1.0:找到 USB 集线器
[1159.517575]集线器1-0:1.0:检测到1个端口
/#[1159.977868] USB USB1-port1:过流情况
[1160.131739] musb-hdrc musb-hdrc.1:a_wait_vrise 中的 VBUS_ERROR (80、<SessEnd), retry #3, port1 0008010c

请指引我出错的地方?? 如何在 USB 1的/dev/dev 目录中看到设备文件(可能是 ttyUSB????) 以及如何消除 VBUS 误差?

我的设置是否正确、特别是 作为双角色模式的 MUSB_Mode 和作为3.3V 上拉输出的 USB1_VBUS 引脚、  是否存在硬件侧问题?

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

    听起来您的硬件设计不正确。 请发布原理图的 USB 部分。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Vivek、
    USBn_DRVVBUS 不是 USB 电源。 它不应连接到 USB 设备本身。 它是*控制* 5V VBUS 电源开关的引脚,该开关在启用时为连接的 USB 设备供电。

    请参阅我们的参考设计之一、了解有关此方面的更多详细信息。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Vivek、

    我在由电池供电的 BeagleBone 上看到此错误"a_wait_vrise 中的 VBUS_ERROR "。 这意味着 USB 电压降至5V 以下。 因此、我认为3G 调制解调器可能会拉低 VBUS 引脚上的5V 电源、从而导致错误。

    此致、
    Ahmad

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

    是否可能由于此错误(VBUS_ERROR)、我没有获取器件文件?
    我还在配置文件中启用了 CDC ACM、通过此选项、我可以在/dev/中 看到 ttyACM0

    我得到的 lsusb 命令
    总线001设备003:ID 0525:a4a7

    但我的调制解调器产品 ID 是0x05c6、供应商 ID 是0x9003、lsusb 命令上没有显示这种情况
    即使从电路板上卸下调制解调器、我也会遇到相同的错误。


    以下是电路板上 USB1的引脚配置

    USB1_DM 连接到调制解调器的 USB_DM
    USB1_DP 连接到调制解调器的 USB_DP
    USB1_DRVVBUS 通过3.3V (15K)上拉电阻连接到调制解调器的 W_DISABLE#引脚。
    上拉电阻器导致此设置为3.3V
    (对于调制解调器、W_DISABLE#为低电平有效引脚、将其驱动为低电平将使模块进入飞行模式
    模式)
    USB1_VBUS 保持悬空(无连接)
    USB1_CE 保持悬空(无连接)
    USB1_ID 保持悬空(无连接)
    VSSA_USB1接地
    VDDA3P3V_USB1连接至3.3V
    VDDA3P3V_USB1连接至1.8V

    在 DTS 文件中、USB1配置为主机
    在配置文件中、将 MUSB_Mode_Selection 设置为"双角色模式"

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

    Vivek、

    根据您的说明、您的硬件设计在 USB 部分中存在一些问题。 请查看以下链接中的清单。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回复、
    此检查清单对我非常有帮助。

    如检查清单中所述、我的观察结果是将 USB1配置为主机、
    USB1_VBUS 应连接至5V。 但在我的硬件中、它保持悬空(无连接)。
    是否可以在源代码中将 VBUS 引脚内部设置为5V?
    我的意思是代码中的某个位置、VBUS 引脚应该被读取并检查它是否被设置为5V 等
    是否可以在源代码/固件中强制将其设置为5V (逻辑1)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Vivek、
    对于主机模式、USBn_VBUS 必须连接到由 USBn_DRVVBUS 控制的5V 电源的输出端。 根据 USBn_VBUS 引脚上的电压、有多种由硬件控制的时序要求。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的回复。 这对我真的很有帮助。