gpt4 book ai didi

linux - 链路电源管理中的 L2 状态

转载 作者:太空宇宙 更新时间:2023-11-04 12:24:52 24 4
gpt4 key购买 nike

我有一项任务需要在链路电源管理中实现 L2 挂起状态。我使用的开发板具有与 PHY 接口(interface)的 DWC3 usb Controller 。基本上我们的板子使用 Linux usb DWC3 驱动程序并连接到主机。

我的理解是 USB Controller 在总线不活动 3.125 毫秒后生成 SUSPEND 信号。谁能告诉我如何配置此 Controller 以实现 L2 挂起状态?

最佳答案

在您当前的设置中,您的开发板处于设备/小工具模式并且您已连接到主机。请记住,USB 设备无法驱动挂起信号。它应该由 Host 启动。

USB 2.0设备suspend的过程-

1 - USB host has no data to send and currently its sending SOF frames
2 - Host SW suspends the device by setting suspend/U3 in EHCI/XHCI controller
3 - Now the USB device sees idle state in the bus where there is no SOF
4 - After approx 3 ms, the device hardware starts to suspend itself by removing its termination to the ground and connecting the internal pull up register
5 - Then the device again poll the lines to see whether the host has removed its termination or not.
6 - Since host has removed the termination, the device will go to suspend

USB 3.0 设备挂起过程 -

1 - USB host has no data to send
2 - Host SW suspends the device by setting U3 in XHCI controller
3 - Host starts sending LGO_U3 link commands to initiate the suspend signalling
4 - After device receives LGO_U3 command, it will acknowledge and start suspend

总而言之,您无法从 USB 设备启动挂起信号。您只能设置设备堆栈的内部状态。

编辑 1 - 此挂起过程适用于 USB 2.0/高速设备。如果您的开发板是通过 SS 端口连接到主机的超高速/USB 3.0 设备,那么链接级别的过程会略有不同,但从用户的角度来看没有区别。
编辑 2 - 我现在已经用 USB 2.0 和 USB 3.0 设备的挂起过程更新了答案

关于linux - 链路电源管理中的 L2 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45026962/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com