christ23
驱动牛犊
驱动牛犊
  • 注册日期2004-08-19
  • 最后登录2009-06-11
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1814回复:5

请问在EP0_OUT收到SETUP包后要对EP0_OUT和EP0_IN都要用一次ACK_SETUP吗,还有那些状态有点搞糊涂了,他们之间在写程序时应该怎么转换。

楼主#
更多 发布于:2004-09-10 11:13
是不是主机每读一次寄存器之前都要判断那些寄存器状态,然后我们在程序中回应它?
vennychang
驱动牛犊
驱动牛犊
  • 注册日期2003-02-07
  • 最后登录2005-03-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-09-10 13:06
你是写Firmware的吗?
每一家芯片不太一样吧,你如果真的不知道,那你得多说明一下你用哪家的。
另外
Endpoint 0的活动,不论是in or out 通常分成三个阶段(stage),各管各的。

In  àSetup Data HandShack
Out àSetup Data HandShack

还有对1个device 而言Endpoint0上同时只有一个活动在进行,没有两个一起的。
christ23
驱动牛犊
驱动牛犊
  • 注册日期2004-08-19
  • 最后登录2009-06-11
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-09-10 14:48
  用的是PDIUSB――D12,EP0_IN端点在使用之前(它不会有SETUP包)也要ACK_SETUP包吗,还有一个数据流程是这样的吗:发SETUP
,EP0_OUT中断通知MCU,MCU读取SETUP包,ACK_SETUP,判断REQUEST_TYPE后清EP0_OUT缓冲区,然后往D12的EP0_IN缓冲区写数据,写满后VALIDATE缓冲区,发生EP0_IN中断(这是给HOST轮询用的信息,与MCU无关,MCU读取最后状态寄存器,清中断即可),计算机发IN令牌包读取数据,往复循环?????????
guoox
驱动牛犊
驱动牛犊
  • 注册日期2004-08-17
  • 最后登录2008-10-30
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-09-10 17:51
楼上的,我也遇到了同样的问题。
收到get_descriptor命令后,我发送device descriptor命令给主机,然后从ep0 IN端点的最后状态寄存器收到41h,然后就没反应了,不知该怎么办。
救救我吧,各位老大!!!!
christ23
驱动牛犊
驱动牛犊
  • 注册日期2004-08-19
  • 最后登录2009-06-11
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-09-10 18:06
41H说明你已经发送成功了啊,看看下面的程序有没有出错 :P
guoox
驱动牛犊
驱动牛犊
  • 注册日期2004-08-17
  • 最后登录2008-10-30
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-09-10 22:46
应该再接着收到一次中断,可是没反应呀,怎么回事?
请帮忙解答啊。感激感激!
游客

返回顶部