USB枚举过程卡在SET_ADDRESS阶段,不再往下走
做U盘设备测试时,发现有时候枚举会卡在SET_ADDRESS,主机那边提示设备错误。逻辑分析仪看命令都收到了,就是设备没响应后续请求。是不是某个中断没正确清?多半是状态机没走完,得仔细看下控制阶段。 我之前遇到过,是EP0缓冲没清零导致的。 这个阶段如果ACK丢了,主机会直接停。 检查下USB中断服务里有没有卡在while循环。 是不是用了FreeRTOS?我遇到任务切换延迟也这样。 U595的USB IP挺挑的,注意时钟配置别动。 我记得Cube里那个USB_Device例程有类似注释。 有时候SET_ADDRESS后要delay一点再继续。 建议在EP0中断里打log看看有没有触发。 我试过加个软复位,能解决一半情况。
页:
[1]