zhengmingwen
驱动牛犊
驱动牛犊
  • 注册日期2007-11-03
  • 最后登录2008-02-29
  • 粉丝1
  • 关注1
  • 积分170分
  • 威望18点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
阅读:1271回复:2

isp1581 枚举问题求救

楼主#
更多 发布于:2007-11-03 12:41
各位大牛好,小弟最近在用 isp1581+FPGA 开发 USB 时遇到了一个很奇怪的问题,卡了一个多星期了,还望各位指点迷津 。
情况是这样的:
我把 FPGA 的程序通过 JTAG 下载到片子后,先后收到了总线复位中断和高速检测中断。接着我收到了 EP0 SETUP 中断,将建立包
中的 8 个字节读出后我发现是如下的几个字符: 80 60 00 01 00 00 40 00
这说明是主机发送的获取描述符的请求。接着我按照 isp1581 的编程指南上的顺序做了以下几步:
1 访问索引端点寄存器(2CH) ,选择控制端点输入
2 将我的设备描述符( 12 个字节) 写入数据端口寄存器,
3 接着使能输入控制端点的缓冲区(这里 STATUS 位需要置 1 吗?)
4 等待 EP0 IN 中断 ,中断来了以后访问索引端点寄存器,选择输出控制端点,置 STATUS 位(这里需要将控制端点输出的缓冲区
   使能或清除吗?)
5 等待 EP0 OUT 中断,中断来了之后结束。
我按照以上过程做了以后,发现主机发给我的命令还是 80 60 00 01 00 00 40 00 ,而且我发现程序进入过 EP0 IN 中断,之后就
又进入了 SETUP 中断 ,始终进不了  SET ADDRESS 或其它请求状态,这到底是怎么回事啊?是我的程序流程不正确,还是硬件有误?
还有一个问题是设备是怎样判断是处于高速/全速的,流程图中关于高速配置的部分,"建立高速标志"是怎样建立的,与测试方式寄存器有关系吗?
sumole
驱动牛犊
驱动牛犊
  • 注册日期2007-11-26
  • 最后登录2009-04-10
  • 粉丝0
  • 关注0
  • 积分120分
  • 威望14点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-11-26 21:02
me  too   QQ:416616757
sumole
驱动牛犊
驱动牛犊
  • 注册日期2007-11-26
  • 最后登录2009-04-10
  • 粉丝0
  • 关注0
  • 积分120分
  • 威望14点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-12-05 11:01
我想问一下楼主 你是如何判断是EP0 IN 中断
游客

返回顶部