我有一个任务,需要在链路电源管理中实现L2挂起状态。我使用一个开发板,它有DWC3 usb控制器与物理层接口。基本上,我们的板卡使用Linux usb DWC3驱动程序,并连接到主机。
我的理解是USB控制器在总线不活动3.125毫秒后产生挂起信号。谁能告诉我如何配置这个控制器来实现L2挂起状态?
发布于 2017-07-11 14:56:43
在当前设置中,您的主板处于设备/小工具模式,并且您已连接到主机。请记住,USB设备不能驱动挂起信号。它应该由主机启动。
USB 2.0设备挂起过程-
USB 1-USB主机没有要发送的数据,当前正在发送
帧
2-主机软件通过在EHCI/XHCI控制器中设置挂起/U3来挂起设备
3-现在USB设备在没有SOF的总线中看到idle状态
6-由于主机已移除终端,设备将转至挂起
USB 3.0设备挂起过程-
USB 1-
主机没有要发送的数据
2主机软件通过在XHCI控制器中设置U3来挂起设备
3-主机开始发送LGO_U3链路命令以启动挂起信令
4-设备收到LGO_U3命令后,将确认并启动suspend
因此,总而言之,您不能从USB设备启动挂起信号。您只能设置设备堆栈的内部状态。
编辑1-此挂起过程适用于USB 2.0 /高速设备。如果您的主板是通过SS端口连接到主机的超高速/ USB 3.0设备,则该过程在链路级别上略有不同,但从用户的角度来看没有区别。
编辑2-我现在已经更新了USB2.0和USB 3.0设备的挂起过程的答案
https://stackoverflow.com/questions/45026962
复制相似问题