nannan42
驱动牛犊
驱动牛犊
  • 注册日期2003-04-24
  • 最后登录2005-09-27
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1511回复:6

急!论坛老大帮忙~! D12芯片的问题:执行到取得设备描述符时,就进行不下去了~!

楼主#
更多 发布于:2003-04-30 17:04
主机向我发送了取得设备描述符的请求80 06 00 01 00 00 40 00,固件程序也将设备描述符的内容12 01 00 01 DC 00 00 10 71 04 66 06 00 01 00 00发送到缓冲区中,并且写入了FA这条指令,可是我怎么能够知道主机将这些数据取走了呢?因为,在执行了取得设备描述符的中断后,固件把描述符发送到缓冲区后,就跳出了子程序,回到主程序,然而却就不再产生中断了.这是为什么呢?

在主机第一次读取设备描述符的时候,依次执行这些包:SETUP(主机)--DATA0(主机)--ACK(设备),IN(主机)--DATA1(设备)--ACK(主机),OUT(主机)--DATA1(主机)--ACK(设备).
在这些之中,哪些可以引起中断呢?我想知道,中断的发生是不是每一次数据交易才产生一次? :( :( :( :( :(
sanshou8848
驱动牛犊
驱动牛犊
  • 注册日期2003-04-16
  • 最后登录2005-09-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-04-30 17:53
我现在正在做usb接口设计,同样遇到了很多问题。
我们可以相互交流。
我的E-MAIL:sanshou8848@163.com
qq:66187454
请告知联系方法。
nannan42
驱动牛犊
驱动牛犊
  • 注册日期2003-04-24
  • 最后登录2005-09-27
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-04-30 19:37
好的~!
EMAIL: nannan42@newmail.dlmu.edu.cn
QQ:14822823
欢迎你! :P :P :) :P :P
kasal
驱动牛犊
驱动牛犊
  • 注册日期2003-03-07
  • 最后登录2005-05-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-04-30 23:00
每个主机和设备的交易产生一个中断
因此上面应该总共三个中断
nannan42
驱动牛犊
驱动牛犊
  • 注册日期2003-04-24
  • 最后登录2005-09-27
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-05-01 10:16
谢谢你啊!
那么就是说在主机第一次读取设备描述符的过程中,一共就要产生三次中断了!?
那完成整个列举过程岂不是要完成超过10次的中断!?
那你知道为什么我只产生一次中断,就没有中断了呢?
我使用FA这条指令了!
NewTech
驱动大牛
驱动大牛
  • 注册日期2002-10-02
  • 最后登录2010-03-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望263点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-05-01 11:30
你怎么可能一次就将18字节的描述符都发送出去呢,你的端点缓冲区有那么大吗!你要分几次发送的!
nannan42
驱动牛犊
驱动牛犊
  • 注册日期2003-04-24
  • 最后登录2005-09-27
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-05-01 11:44
没有啊!
缓冲区可以发送16个字节,12 01 00 01 DC 00 00 10 71 04 66 06 00 01 00 00正好是16个字节啊!
这和双缓冲区有关吗?
我使用了FA这条指令,就是设置IN缓冲区有效,在下一个IN时将数据送入主机!可是主机不给我发送IN中断啊!?
游客

返回顶部