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.

[参考译文] AM3351:USB0 处于"oc suspend"未连接器件

Guru**** 2893300 points

Other Parts Discussed in Thread: AM3351

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1642473/am3351-usb0-in-oc-suspend-with-no-device-attached

器件型号: AM3351

尝试在基于 AM335x 的定制电路板上启动 USB。 USB 端口在未连接器件的情况下锁存在“oc suspend“状态。该设计不连接 USB0_VBUS 以进行隔离。 是否可以将 USB0_VBUS 检测引脚悬空?

在 AM335x 原理图检查清单 (SPRABN2A) 中:

USB 外设的典型连接: USBx_VBUS 应直接连接到 USB 连接器上的 VBUS 引脚  

USB 主机的典型连接:USBx_VBUS 应连接到 5V VBUS 电源的输出端  

准则规定“应“而不是“必须“。 USB0_VBUS 导致的 OC 是否未检测到任何电压? 如果是、我们如何在不连接 USB0_VBUS 的情况下启动 USB0?

以下是 lsusb -v 和 dmesg 的输出

[   80.764720] usb usb1-port1: over-current condition
[   80.905195] musb-hdrc musb-hdrc.0: VBUS_ERROR in a_wait_vrise (81, <SessEnd), retry #1, port1 0000010c
[   81.057622] musb-hdrc musb-hdrc.0: VBUS_ERROR in a_wait_vrise (81, <SessEnd), retry #2, port1 0000010c
[   81.210062] musb-hdrc musb-hdrc.0: VBUS_ERROR in a_wait_vrise (81, <SessEnd), retry #3, port1 0000010c
[   81.362484] musb-hdrc musb-hdrc.0: VBUS_ERROR in a_wait_vrise (80, <SessEnd), retry #3, port1 0008010c
lsusb -v
lsusb -v

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0
  bDeviceProtocol         1 Single TT
  bMaxPacketSize0        64
  idVendor           0x1d6b Linux Foundation
  idProduct          0x0002 2.0 root hub
  bcdDevice            6.01
  iManufacturer           3 Linux 6.1.46 musb-hcd
  iProduct                2 MUSB HDRC host driver
  iSerial                 1 musb-hdrc.0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0019
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval              12
Hub Descriptor:
  bLength               9
  bDescriptorType      41
  nNbrPorts             1
  wHubCharacteristic 0x0011
    Per-port power switching
    No overcurrent protection
    TT think time 8 FS bits
  bPwrOn2PwrGood        5 * 2 milli seconds
  bHubContrCurrent      0 milli Ampere
  DeviceRemovable    0x02
  PortPwrCtrlMask    0xff
 Hub Port Status:
   Port 1: 0000.010c power oc suspend
Device Status:     0x0001
  Self Powered
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Glen、

    如果未连接 AM335x USB 的 USB_VBUS 引脚、则该 USB 将无法正常工作。 文档中的“应“是指“必须“。

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

    像往常一样、Bin 通过。
    我发现 USB 配置上的 PPT 很有用。

    谢谢你。

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

    您好 Glen、

    我很高兴它能提供帮助。

    我将与检查清单文档所有者交谈、了解是否可以改进说明以避免混淆。

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

    尊敬的 Bin:

    我在硬件方面与 Glen 合作。  我还有一些问题。

    此设计为隔离式 USB。  物理 USB 连接器和 AM3351 之间有一个 2kV 隔离栅。  无法让 VBUS 穿过隔离栅... AM3351 与 USB 连接器和 5V VBUS 电源轨进行电隔离。

    从硬件手册第 16.2.2 节“上拉/下拉电阻器“中、我可以推断 VBUS 引脚电压是内部上拉或下拉电阻器所必需的。  如果这种解释有误、请你纠正我吗?

    由于我们无法从连接器获得 VBUS、因此可以穿过隔离栅到达 AM3351 VBUS 引脚、因此我们是否可以将 Sitara VBUS 引脚接地、在软件控制下只允许主机模式?

     硬件手册 还建议 USB ID 引脚是可选的... 是这样吗?   我们是否可以将 VBUS 引脚接地以在数据线上获得正确的下拉、然后在软件控制下将 USBnMODE [Bit7=IDDIG_MUX]写入 主机?

    我们能否消除/不连接 USB ID 信号引脚、而是在 SW 下完全控制它?

    提前感谢您的帮助。  我们要使用完全双角色 OTG USB、但似乎对于隔离式设计来说并不容易实现。  因此、现在我们正在尝试了解如何在 VBUS 不穿过隔离栅的情况下支持仅主机模式。

    此致、

    Tom

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

    Tom、

    在您的设计中、AM335x USB 控制器是在仅主机模式、仅外设模式还是双角色模式下工作?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们本来要使用完全双角色 OTG USB、但听起来对于隔离式设计来说并不容易实现。  因此、现在我们正在尝试了解如何在 VBUS 不穿过隔离栅的情况下支持仅主机模式。

    对不起,我没有阅读你的完整信息,现在刚刚意识到你已经提供了我的问题的答案。

    总之、我是一个软件小伙子、对电路板设计中的模拟知识不多。 但如果 AM335x USB 控制器必须在双角色模式下工作、我不确定是否可以实现您的 USB 设计目标。

    如果您可以将设计更改为仅 USB 主机模式、USB VBUS 引脚不必连接到 USB 连接器、只需连接到电路板上的 5V 电源轨。  

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

    尊敬的 Bin:

    谢谢你。 我们将处理此问题、并回答任何其他软件问题。   

    同时、数据表未指定 VBUS 引脚上的电流或输入阻抗。  我会在一个单独的帖子中询问这个问题,然后继续尝试使这个工作。   

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

    您好、Tom、

    据我所知、VBUS 引脚的内部是电压比较器、因此无需电流。

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

    过去、当控制器在仅主机模式下工作时、我有客户直接将 VBUS 引脚连接到 5V 电源轨。

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

    谢谢 Bin、

    已了解:VBUS 是高阻抗输入。 我们将把 5V 电压直接连接到该引脚。

    跟进上述最后一个问题:   

    假设仅主机模式下 5V 电压连接到 Sitara VBUS 引脚、 我们是否需要将 USB ID 引脚连接到任何位置?  或者、我们是否可以通过设置控制寄存器中的正确位、让 USB ID 引脚悬空并在软件中处理该部分?

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

    您好、Tom、

    当 USB 控制器处于仅主机模式时、内核器件树应在 USB 节点中设置 dr_mode =“host“、然后忽略物理 USB ID 引脚、USB IDDIG 多路复用器在软件中使用、因此可以将 USB ID 引脚保持未连接/悬空状态。

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

    非常感谢 Bin。  这听起来我们将使用的方法。

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

    尊敬的 Bin:

    抱歉。  我有一个后续问题。

    当 AM3351 VBUS 引脚连接到 5V 电源轨且 USB_ID 连接到 AM3351 引脚时、 这是否允许 Sitara 同时作为主机和客户端?

    我们知道、随着 USB 正常运行、存在复杂的物理层和逻辑层协商。  所幸的是、AM3351 与 Linux 驱动程序相结合。  我们正在尝试使电路板设计 尽可能涵盖更多的功能。  鉴于无论是主机还是客户端、VBUS 上都需要 5V 电压、因此会引发一个问题:“我们是否可以在 VBUS 上同时连接 5V 电压并连接 USB ID 的情况下、同时为主机和客户端供电?“

    非常感谢!

    Tom

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

    您好、Tom、

    USB_ID 连接到 AM3351 引脚

    我想您是指 AM335x USB ID 引脚连接到 USB 连接器的 ID 引脚。

    当 AM3351 VBUS 引脚连接到 5V 电源轨且 USB_ID 连接到 AM3351 引脚时、 是否允许 Sitara 同时作为主机和客户端?

    编号 一旦 VBUS 引脚永久连接到 5V 电源轨、USB 控制器只能在仅主机模式下工作。 对于客户端/设备模式、控制器应知道 VBUS 何时存在(来自 USB 主机)以及 VBUS 何时不存在、这是 USB 控制器内的状态机能够在主机模式和客户端模式之间切换所必需的。