阅读:1511回复:6
急!论坛老大帮忙~! D12芯片的问题:执行到取得设备描述符时,就进行不下去了~!
主机向我发送了取得设备描述符的请求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(设备). 在这些之中,哪些可以引起中断呢?我想知道,中断的发生是不是每一次数据交易才产生一次? :( :( :( :( :( |
|
沙发#
发布于:2003-04-30 17:53
我现在正在做usb接口设计,同样遇到了很多问题。
我们可以相互交流。 我的E-MAIL:sanshou8848@163.com qq:66187454 请告知联系方法。 |
|
板凳#
发布于:2003-04-30 19:37
好的~!
EMAIL: nannan42@newmail.dlmu.edu.cn QQ:14822823 欢迎你! :P :P :) :P :P |
|
地板#
发布于:2003-04-30 23:00
每个主机和设备的交易产生一个中断
因此上面应该总共三个中断 |
|
地下室#
发布于:2003-05-01 10:16
谢谢你啊!
那么就是说在主机第一次读取设备描述符的过程中,一共就要产生三次中断了!? 那完成整个列举过程岂不是要完成超过10次的中断!? 那你知道为什么我只产生一次中断,就没有中断了呢? 我使用FA这条指令了! |
|
5楼#
发布于:2003-05-01 11:30
你怎么可能一次就将18字节的描述符都发送出去呢,你的端点缓冲区有那么大吗!你要分几次发送的!
|
|
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中断啊!? |
|