阅读:1287回复:2
一个在周立功上问了N天没人回答的问题(PDIUSBD12)
买了周立工的板子,问个问题都那么难,郁闷!
哪位大虾解释一下: 是关于PDIUSBD12的枚举过程的,地址分配后主机要获得设备描述符,PDIUSBD12会把18个字节分两次发送出去,我想问,固件程序是接受到setup包后,就发送16个字节的描述符,还是要等到主机给PDIUSBD12发送IN的指令后,固件响应端点0的发送中断。 另外我用busbound截取数据包时,为什么看不到地址设置包呢?? |
|
沙发#
发布于:2005-05-24 09:32
1.固件程序是接受到setup包,setup包有标记部分和数据部分,任何包在bushound仅显示数据部分,就像接下来的in指令,主机的in标记bushound也是不显示的,只显示主机收到的in数据,主机的in标记发送之后,设备才发送描述符。
2.应该是你的bushound版本不够新 。 |
|
板凳#
发布于:2005-05-24 10:32
好象第一个问题还是没有解释清楚,我问的再详细一些吧:
首先PDIUSBD12接受到setup包(描述符请求),我看了一下周立功的固件源码, 固件对此产生中断然后执行端点0的接收,由于是setup包,所以对bEPPflag.bits.setup设为1,返回主程序,在主程序中对setup进行处理。 这就有个问题了,我在主程序中对描述符请求作出了响应,发送了描述符的前8个字节。但问题是此时IN中断还没有来,就把数据发出去了,下一个中断来的时候,是发送1-8字节,还是9-16字节呢? |
|