本帖最后由 wanglei0307 于 2013-8-27 23:43 编辑
插入USB线缆后,主机识别到USB,然后枚举,枚举开始后
1、主机发setup标记包,FPGA收到:2D 00 10
2、主机发8字节的设备描述符请求包,FPGA收到:C3 80 06 00 01 00 00 40 00 DD 94,校验正确
3、FPGA回ACK:42
4、主机发IN标记包:69 00 10,要读取设备描述符
5、FPGA回18 字节的设备描述符和2字节的CRC1校验:
4B 12 01 00 02 FF FF FF 40 24 04 07 00 00 01 01 02 03 01 3E 77
最后的0x3E77是CRC16,请问算的是否正确。
6、主机回ACK
现在是步骤6没有出现,FPGA发完设备描述符后没有回ACK
上图为收到的IN标记包和FPGA发的数据包
上图是FPGA发送数据时,发送4B 12 01后stp就拉低了,以后的字节全部是收一个就拉低如下图
上图是FPGA发送USB的BCD码0x0200时的,先接收0x00,nxt拉高一个clock就拉低,接收0x20时也是直到最后一个。如下图
按照ULPIde协议应该是下图结束写,拉高stp,上图ULPI协议说是发生了transmit error
|