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.
工具与软件:
问题标题: 在 USB0 OTG 模式配置下从 USB 主机切换后、RNDIS USB 设备模式不工作
SDK 版本: Linux-RT-AM437X-EVM-06.03.00.106
我的具有 AM4378的 H/W 板使用单个 USB0端口进行以太网连接。 USB0端口应支持通过 USB0 (器件模式)的 RNDIS 以太网和 USB0至以太网适配器(主机模式、Micro USB 至 RJ45)的热交换。 在器件树中、USB0配置为 OTG 模式。 以下场景(1、2、3)运行良好。 但是、测试案例4失败。 您能给我提一下调试这个问题的想法吗?
1. RNDIS USB 设备模式:良好
2. USB0到以太网适配器的 USB 主机模式: 良好
3.从 RNDIS USB 设备模式热交换到 USB 主机模式(USB0到以太网适配器): 好
4. 从 USB 主机模式(USB0到以太网适配器)热交换到 RNDIS USB 设备模式:失败
1. USB0连接到以太网适配器(RJ45)。 笔记本电脑可以通过路径 ping 硬件板(笔记本电脑-以太网交换机-以太网适配器-硬件板及 TI 处理器)。
2.断开以太网适配器的连接
3.将 RNDIS 电缆(USB-A 到 micro USB)插入 H/W 板的 USB0。 请确保连接(带 TI 处理器的 H/W 板- USB0 - RNDIS 电缆-笔记本电脑)
4.笔记本电脑尝试 ping 硬件板。
执行步骤3后、笔记本电脑报告 Windows 设备管理器上无法识别的 USB 连接。 第4步失败。
如果我跳过步骤1和2 (即不要尝试将 USB0连接到以太网适配器)、步骤3和4可以正常运行。
大多数情况下、以太网适配器和 RNDIS 之间的热交换在 GPEVM 上运行良好。 我曾经看到过相同的问题、但在再次热插拔后问题消失了。 我会向硬件工程团队查看 USB 硬件原理图。 您是否有任何可能有助于解决此问题的建议?
这是我第一次听到这种类型的问题、所以不确定什么可能是根本原因。 但下面是我的几个评论:
-使用 Linux PC 而不是 Windows 来测试定制板。 Linux 主机 dmesg 日志提供比 Windows 更多的 USB 枚举信息;
-在热插拔时检查 VBUS 线电压,确保在下一次连接之前 VBUS 下降到接近0v。 否则、USB 控制器可能出现异常行为。
我怀疑热插拔时的 VBUS 电压。 我将在与硬件工程师核实问题状态后更新问题状态。
在执行步骤2"断开以太网适配器"后、VBUS 保持在2.3V 左右。 H/W 工程师一直在检查阻止 VBUS 下降到接近0伏的因素。 BTW、当 RNDIS USB 连接为 USB 设备时、 VBUS 5V 是否正常? 连接 RNDIS 后、Vbus 应为0V。 我认为仅在连接了 USB 主机时 VBUS 才为高电平。
步骤2"断开以太网适配器"后、VBUS 停留在2.3V 左右。 H/W 工程师一直在检查阻止 VBUS 下降到接近0伏的因素。[/报价]请首先检查断开后 USBx_DRVVBUS 引脚是否为低电平。 我会这么认为、因为 VBUS 是2.3V、而不是5V。 但请仔细检查。
当 RNDIS USB 连接为 USB 设备时、 VBUS 5V 正常吗?您的意思是当 RNDIS 小工具驱动程序加载在 AM437x 上并且其 USB 端口连接至 USB 主机时? 如果是、那么在这种情况下、VBUS 应该为5V、5V 来自主机 USB 端口上的 VBUS 线路。
[/quote]
您好、Bin、
我是在这个问题上为 Matt L.提供帮助的硬件人员。 他使用 AM4378入门套件(而非 GP EVM)测试了 USB 主机/设备交换。
除了 VBUS 驱动器和 ESD 保护外、我们的设计看起来与 GP EVM 上的设计有些相似。 我们目前使用 TPD6E004RSER 实现 USB ESD 保护(VBUS 连接到 TPD6E004SER 上的 VCC)、GP EVM 和入门套件 EVM 使用 TPD4S012。 我们的 VBUS 驱动器是 AP2171WG-7。 Matt 和我已经确认 USB0_DRVVBUS 正常工作、以便在主机模式下启用总线负载开关。 切换到器件模式时、我们会看到 USB0_DRVVBUS 为低电平(EN 线上也有10k PD)。 ID 引脚直接从 Micro-USB 连接器连接到 MPU。 在主机模式下、VBUS 线上确实有大约120 μ F 的电容。
您刚才提到、问题出在 VBUS 耗尽路径中。 我们在 VUSB_VBUS 上确实有一个90.9千欧的 PD 电阻器、但是、在断开主机或设备后、我们仍然会在 VBUS 线路上看到2.3V。 您建议使用哪种类型的 VBUS 耗尽路径、为什么两个 EVM 板都没有耗尽路径?
谢谢、希望能尽快收到回复!
嗨、OsarZ、
抱歉、我是一家软件供应商、真的对硬件设计的模拟方面不太了解、也不知道到底该如何漏极 VBUS。 但有一件事我确信120uF 电容器不应该出现是错误的、
USB 规范要求 USB 主机端口上的电容最小为120uF、以避免连接 USB 器件时 VBUS 电压降、但出于同样的原因、USB 规范还要求 USB 器件的电容不应超过10uF。
因此、我们通常为 USB 双角色端口添加~7 μ F 电容器、因此该小电容器将限制连接的某些器件。
箱、
谢谢、这有助于我了解评估原理图。 我们将移除大容量电容、并将其降至4.7uF 以实现双角色功能。 我们还将利用外部主机和器件对其进行测试、以确保其符合 VBUS 上更新的电容值。