阅读:2027回复:12
枚举过程到了Get_Configuration后重复,失败?(20分)
各位大侠,我现在用D12设计,在设备枚举过程当中,我能够分别收到:
1.设备描述符请求80H-06H-00H-01H-00H-00H-40H-00H,我返回00H-08H-12H-01H-01H-00H-FFH-FFH-FFH-08H,然后发送一个Validate_Buffer使缓冲区有效命令,接着回送00H-08H-39H-0FH-17H-F9H-01H-00H-00H-00H,再发送一个Validate_Buffer使缓冲区有效命令,之后回送000H-02H-00H-01H,最后发送Validate_Buffer使缓冲区有效命令,紧跟一个空数据包; 2.收到SET_Address请求00H-05H-02H-00H-00H-00H-00H-00H,我使能地址后返回; 3.收到设备描述符请求80H-06H-00H-01H-00H-00H-12H-00H,我返回00H-08H-12H-01H-01H-00H-FFH-FFH-FFH-08H,然后发送一个Validate_Buffer使缓冲区有效命令,接着回送00H-08H-39H-0FH-17H-F9H-01H-00H-00H-00H,再发送一个Validate_Buffer使缓冲区有效命令,之后回送000H-02H-00H-01H,最后发送Validate_Buffer使缓冲区有效命令,紧跟一个空数据包; 4.收到获取配置请求80H-06H-00H-02H-00H-00H-09H-00H,(但是此时读取最后传输状态寄存器为A1H,我不知道有没有错误),我返回 00H-08H-09H-02H-25H-01H-01H-00H-80H,然后发送一个Validate_Buffer使缓冲区有效命令,接着回送00H-01H-50H,再发送一个Validate_Buffer使缓冲区有效命令,最后发送一个空数据包; 5.接收不到主机应该发送的获取配置请求80H-06H-00H-02H-00H-00H-FFH-00H,而是收到重试请求80H-06H-00H-01H-00H-00H-40H-00H. 请各位大侠帮帮忙,帮忙看看错在那里,我该如何改动,我已经在这里徘徊一周多了,各位就帮帮忙吧,这里先谢过大家了!!! [编辑 - 3/11/02 作者: colwil] [编辑 - 3/11/02 作者: colwil] |
|
最新喜欢:![]() |
沙发#
发布于:2003-05-02 20:03
我和你的问题一样,今天终于搞通了,不知道你是否使用bushound来捕捉数据?问题有可能在这个软件
|
|
|
板凳#
发布于:2003-04-30 17:59
我现在正在做usb接口设计,同样遇到了很多问题。
我们可以相互交流。 我的E-MAIL:sanshou8848@163.com qq:66187454 请告知联系方法。 ;) |
|
地板#
发布于:2003-04-30 15:52
我的问题和你一样,不知道你是怎么决定的,谢谢你,有时间发封信,我们沟通一下
|
|
|
地下室#
发布于:2002-03-13 12:26
第一次虽然让你返回64byte,但你有那么多数据返回吗?如果没有,就不要返回,这是usb通讯的基本原则。
|
|
|
5楼#
发布于:2002-03-12 16:24
还有,我能不能在收到配置描述符后就可以确认先前的部分枚举过程已经正确的完成?
|
|
6楼#
发布于:2002-03-12 15:59
谢谢斑竹了,我再试试看了!
那么,第一次的64个字节后边的我随便写嘛? |
|
7楼#
发布于:2002-03-12 13:26
我怀疑你的第二次描述符传输只传走了一开始的8个字节。 第一次要传的不是8个byte,是0x40 bytes,顶楼给出的数据写的很清楚。 首先,EP0有16个byte,你为什么不用满?像你这样每次不把buffer填满,效率太低。 其次,你4中第一次根本没有送出8个byte,而是7个。这样host得到的configure descriptor根本就是不全的,怎么进行下去? |
|
|
8楼#
发布于:2002-03-12 07:05
多谢两位了,我想很可能是我的传送程序有问题, 主机收不到我的后边的传送数据,仅仅只有前边的8个数据!
真的谢谢了! |
|
9楼#
发布于:2002-03-12 01:23
我怀疑你的第二次描述符传输只传走了一开始的8个字节。
因为实际上第一次描述符传输,主机方只希望获取你的描述符的头 8个字节。如果你多传了的话,有可能会产生错误。然而你的实际 状况是传输了整个描述符却没有出现错误,说明实际传输的只是 头八个字节。 |
|
|
10楼#
发布于:2002-03-12 00:11
没有具体分析你的数据情况,单从现象来说,应该是你返回给主机的设备描述符有问题,主机没有接收,所以要你重发,在尝试3次仍失败后,就会出现‘UNKOWN DEVICE’,所以你应该检查一下你的描述符数据以及返回给主机这些数据的流程和指令。
|
|
|
11楼#
发布于:2002-03-11 15:44
怎么回事,还是没有人吗?
|
|
12楼#
发布于:2002-03-11 13:27
怎么没有人理我,斑竹也帮帮忙嘛!
|
|