• 8
  • 9月

简单记录一下USB的DP与DM状态。

RESET,DP、DM都拉低,并维持20MS以上。
SUSPEND,处于IDLE状态DP为高,DM为低,即连续三次没有等到SOF。
RESUME,DP为低、DM为高,并维持20MS以上。

在做USB的Host时,有几个地方需要注意:
1、在做插拔简测时,检测到DP没有上拉时间,判定设备掉线的时间一定要远远大于RESET的时间。因为在RESET的时候,DP可能拉低很长一段时间,会造成拔出误判;
2、在整个USB的枚举及通信过程,不要去随意修改DP、DM的上下拉电阻,可能会对设备制造一些RESUME误判等。
3、在检测到设备插入时,最好能第一时间对设备进行RESET。
4、在发送第一条命令之前,确认发送足够的SOF,以便部分芯片内部的初始化。
5、SCSI命令的超时时间,建议采取Windows的标准,也就是10s。