ictoad
驱动牛犊
驱动牛犊
  • 注册日期2004-04-02
  • 最后登录2005-09-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1678回复:16

D12开发中碰到一问题,求解

楼主#
更多 发布于:2004-04-02 14:07
第一次的设备描述符请求已经得到:80,06,00,01,00,00,40,00
向端点写入设备描述符后,PC发出设置地址请求:08,00,05,02,00,00,00,00,00;设置地址结束后又收到设备描述符请求,它的值和第一次收到的一样;又向端点写入设备描述符,接着又是设置地址请求……反复三次后PC放弃。
不知各位大虾以前是否遇到过这样的情况?我不知道哪里出问题了,请各位赐教。
ictoad
驱动牛犊
驱动牛犊
  • 注册日期2004-04-02
  • 最后登录2005-09-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-04-02 14:40
没有人在枚举的时候碰到这个问题吗?晕~~~~~~我怎么就碰到这桩霉事……
jiangwei
驱动牛犊
驱动牛犊
  • 注册日期2004-03-25
  • 最后登录2004-04-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-04-02 17:07
楼上的大哥,我怎么连:08,00,05,02,00,00,00,00,00都收不到,请问你的大致流程,你是用汇编边的吗?
ictoad
驱动牛犊
驱动牛犊
  • 注册日期2004-04-02
  • 最后登录2005-09-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-04-02 17:14
用C编的,由于各种原因,还TMD用ZILOG的单片机,和51不一样,而且特麻烦,所以会碰到一堆问题,解决起来不方便。你收到第一次发的描述符请求了吗?
jiangwei
驱动牛犊
驱动牛犊
  • 注册日期2004-03-25
  • 最后登录2004-04-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-04-02 17:25
第一次的80,06,00,01,00,00,40,00收到了,我发送18个字符
返回,第二此就收不对了,能说一下大致流程吗?
ictoad
驱动牛犊
驱动牛犊
  • 注册日期2004-04-02
  • 最后登录2005-09-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-04-02 17:31
我不是特别清楚,但是如果你收到了,那可能就是你向端点写DATA的时候程序出错了。别忘了还有F1应答,读完后清缓冲区F2,写完后的FA
jiangwei
驱动牛犊
驱动牛犊
  • 注册日期2004-03-25
  • 最后登录2004-04-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-04-02 17:38
我作了都,我觉得我的描述符应该发出去了,因为我在端点0in中断后读41h,得到数为41h,说明发出去了,我用Bus Hound能在pc上看到吗?看到是什么样的?
dragon_hn
驱动中牛
驱动中牛
  • 注册日期2002-05-18
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分297分
  • 威望40点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-04-02 17:54
好像枚举没有完成BUS HOUND是看不到的
www.dragon-2008.com 欢迎交流
jiangwei
驱动牛犊
驱动牛犊
  • 注册日期2004-03-25
  • 最后登录2004-04-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-04-02 17:56
是这样的,那你是怎么看到你的数据的
dragon_hn
驱动中牛
驱动中牛
  • 注册日期2002-05-18
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分297分
  • 威望40点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-04-02 18:00
有可能会是以下原因:
1.字节颠倒问题.有些C编译器对16位整数为高字节在前低字节在后,而有些为低字节在前高字节在后.
2.结构体对齐问题.如果结构体不是按字节对齐,采用memcpy等的时候就会发生数据错位的情况
3.SETUP ACK问题.

对1,2可以对发送的数据通过逐个字节检查来发现.

做枚举过程最难的是第一步,第一步过了以后基本上就没什么困难了.
www.dragon-2008.com 欢迎交流
jiangwei
驱动牛犊
驱动牛犊
  • 注册日期2004-03-25
  • 最后登录2004-04-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-04-02 18:03
谢了。在请教:在枚举过程中mcu有没有可能收到与5组描述符均相同的其他一组数据,我收到的好像就不是。
ictoad
驱动牛犊
驱动牛犊
  • 注册日期2004-04-02
  • 最后登录2005-09-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-04-03 13:30
感谢大家的留言……
我做过实验,要是我第一步的描述符发得不对,那PC会发出3次描述符请求,不会发设置地址的请求。可我现在是收到了设置地址的请求。D12设置地址的ACK是由硬件完成的吗?我想可能是PC没有收到设置地址的ACK,所以又重新发了第一次描述符请求。
ictoad
驱动牛犊
驱动牛犊
  • 注册日期2004-04-02
  • 最后登录2005-09-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-04-05 17:53
真的没折了,翻出来顶一下,希望那位大虾看见,帮小弟一忙……
flyhye
驱动小牛
驱动小牛
  • 注册日期2003-07-01
  • 最后登录2012-01-11
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-04-05 18:49
感谢大家的留言……
我做过实验,要是我第一步的描述符发得不对,那PC会发出3次描述符请求,不会发设置地址的请求。可我现在是收到了设置地址的请求。D12设置地址的ACK是由硬件完成的吗?我想可能是PC没有收到设置地址的ACK,所以又重新发了第一次描述符请求。


不是硬件完成。
枚举过程:
Host:80  06  00  01  00  00  40  00――向default地址发送
Data:12  01  10  01  00  00  00  08
(其实是发完了,但host未知)
Host:00 05 01 00 00 00 00 00――set Address
                ~~为地址
你代码这边就应该设置这个地址,然后
host:80  06  00  01  00  00  12  00――向该地址发请求  (busHound可以看到这个了)
Data:12  01  10  01  00  00  00  08 ×××××(共12HB)



[编辑 -  4/5/04 by  flyhye]
千载奇逢,无如好书良友 一生清福,只在碗茗炉烟
ictoad
驱动牛犊
驱动牛犊
  • 注册日期2004-04-02
  • 最后登录2005-09-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-04-05 18:59
谢谢楼上的问答。
我的固件程序收到了设置地址的请求后,我执行了设置地址的函数,也或上了80……
可是之后PC有发了第一串的描述符请求,也就是 80,06,00,01,00,00,40,00
jiangwei
驱动牛犊
驱动牛犊
  • 注册日期2004-03-25
  • 最后登录2004-04-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2004-04-05 19:58
我的也是,那位大虾能帮忙?
jiangwei
驱动牛犊
驱动牛犊
  • 注册日期2004-03-25
  • 最后登录2004-04-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2004-04-05 20:01
我的“代码这边就应该设置这个地址“,具体的应该怎样设置?恳求大家帮忙
游客

返回顶部