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.

[参考译文] TDA4VM:CAN USB0或 USB1直接在主机模式下工作、无需集线器芯片

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1411914/tda4vm-can-usb0-or-usb1-work-in-host-mode-directly-without-hub-chip

器件型号:TDA4VM

工具与软件:

您好、TI 专家:

有一种情况,当 TDA4VM 运行 QNX OS 时,我需要使用 USB 转 eth 芯片 AX88179A 来扩展 eth 端口。 我注意到有一个 USB 3.1 Type C 接口(CC 和 PD 控制器、制造商 器件型号为 TUSB321RWBR 和 PTPS25830QWRHBTQ1)用于连接到 USB0的 CC 检测和电力输送、以及  连接到 USB1的 USB 2.0集线器(TUSB4041IPAPR)。 在本例中、任何一个 USB 端口都可以正常工作、因为主机应该没问题。

但我们设计的板已移除   TUSB321RWBR(USB3.1 C 型 )和 TUSB4041IPAPR(USB 2.0集线器) USB 集线器芯片,并将 USB0_DP/USB0_DM 直接连接到 micro-USB 连接器(尝试作为 USB 主机工作),所以当板运行 QNX 操作系统并按 USB OTG 命令执行时,会发生错误:

sh -c "isend -n/dev/i2c0 -A0x22 0x04 0xce >/dev/null 2>&1"(由于我们移除了 I2C GPIO 扩展器2、因此无法使用该 GPIO 控制)
IO-USB-OTG -d cdns3-xhci ioport=0x6010000、IRQ=128、iosize=65536、ioport=0x6410000、IRQ=136、iosize=65536、nousb3

使用 slog2info 检查日志显示如下 、它无法检测到任何 USB 设备

[629 2024/9/9 14:32:22 071] Jan 01 00:00:20.033 IO_USB_OTG.663574 slog 11 HUB_STATE_INDED (569)[tid:1]:bdentry 0、dentry 0 0
[630 2024/9/9 14:32:22 082] Jan 01 00:00:20.033 IO_USB_OTG.663574 slog 13 HUB_CONFIGURATION_ENABLE (263)[tid:1]:1.
[631 2024/9/9 14:32:22 090] Jan 01 00:00:20.135 IO_USB_OTG.663574 slog 0 USBH_TIMEOUT_INIT (203)[tid:1]:完成
[632 2024/9/9 14:32:22 104] Jan 01 00:00:22.187 IO_USB_OTG.663574 slog 0 xhci_check_core_ready Controller not ready:OP_USBSTS[STS_CNR]仍然为高电平
[633 2024/9/9 14:32:22 118] Jan 01 00:00:24.188 IO_USB_OTG.663574 slog 0 HC_RESET 重置失败... 控制器未就绪:OP_USBCMD[CMD_HCRST]仍为高电平
[634 2024/9/9 14:32:22 132] Jan 01 00:00:26.186 IO_USB_OTG.663574 slog 0 xhci_check_core_ready Controller not ready:OP_USBSTS[STS_CNR]仍然为高电平
[635 2024/9/9 14:32:22 143] Jan 01 00:00:26.186 io_usb_OTG.663574 slog 0 xhci_controller_start:HC 复位失败(RC =-1)
[636 2024/9/9 14:32:22 157] JAN 01 00:00:26.186 IO_USB_OTG.663574 slog 8 USBH_HC_START (150)[tid:1]:启动控制器时出错(19)
[637 2024/9/9 14:32:22 165] JAN 01 00:00:26.186 IO_USB_OTG.663574 slog 0 USBH_TIMEOUT_DISCOVERY (124)[tid:1]:
[638 2024/9/9 14:32:22 179] Jan 01 00:00:26.186 IO_USB_OTG.663574 slog 0 USBH_TIMEOUT_HANDLER (100)[tid:9]:接收退出脉冲
[639 2024/9/9 14:32:22 187] JAN 01 00:00:26.186 IO_USB_OTG.663574 slog 0 USBH_TIMEOUT_HANDLER (109)[tid:9]:退出
[640 2024/9/9 14:32:22 199] JAN 01 00:00:26.186 IO_USB_OTG.663574 slog 0 USBH_PORT_MONITOR_DESOUR (378)[tid:1]:
[641 2024/9/9 14:32:22 211] JAN 01 00:00:26.186 IO_USB_OTG.663574 slog 0 USBH_PORT_CHANGE_HANDLER (168)[tid:8]:退出

当 TDA4VM 运行 QNX 时、如果尝试使 USB0或 USB1在主机模式下工作、我的问题是:

1.  是否必须 将 USB3.1集线器芯片 TUSB321RWBR 添加到我设计的硼中 、以便使"io-USB-OTG -d cdns3-xhci"  命令 有效? (某些引脚状态似乎不正确)

2.当  TDA4VM 运行 QNX 时、USB0或 USB1总线是否可以在没有集线器芯片的情况下用作主机? (我 想 QNX 下的"IO-USB-OTG -d cdns3-xhci"适用于两个芯片:TUSB321RWBR (USB3.1 Type C)和 TUSB4041IPAPR (USB 2.0集线器))

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

    您好、TI 专家:

      是什么导致了  STS_CNR/CMD_HCRST 错误并使  USB OTG 驱动程序意外退出?

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

    我将在内部与我们的团队进行接洽、然后重新开始这个过程。

    我想说的是、无论您在电路板上使用何种集线器芯片、SoC 都应该能够切换 b.w 主机/器件模式。

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

    Jing、从日志中、第一行建议它正在尝试枚举一个集线器、而您的 h/w 中没有集线器 您应更新 s/w 以告知其电路板上没有集线器。

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

    您好 ShreyasRao:

    我没有关于 USB OTG 驱动程序 devu-hcd-cdns3-xhci.so 的源代码(它在 QNX BSP 中作为二进制文件提供)、因此我无法 更新软件。

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

    您好 ShreyasRao、如日志所述、它将访问 HCRST 位和 CNR 位。 我只查看 J721E 芯片手册 J721E DRA829TDA4VM 处理器、没有找到任何相关的寄存器。 您是否知道我们可以如何访问它?  或任何用户指南如何进行 USB 编程? 我注意到数据表中的行"每个控制器实例都包含单个 xHCI、具有以下特性:与 xHCI 规范(版本1.0)兼容"、并且我在 xHCI 规范中找到了 HCRST 和 CNR。 据我所知、这个驱动程序也许会尝试访问 xHCI 内部寄存器、但我未找到有关如何访问它的任何指南。 您能给我们任何提示吗?

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

    这里是包含 USB 的器件的技术参考手册。

    https://www.ti.com/lit/zip/spruil1

    我们建议您尝试使用 Linux 来查看 USB 是否正常工作。 如果它在 Linux 中工作、则是 QNX 问题。 我们的 SoC 无需集线器即可作为主机运行。

    根据 Linux 日志、我们的团队可以进一步提供帮助。

x 出现错误。请重试或与管理员联系。