阅读:1271回复:2
isp1581 枚举问题求救
各位大牛好,小弟最近在用 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 或其它请求状态,这到底是怎么回事啊?是我的程序流程不正确,还是硬件有误? 还有一个问题是设备是怎样判断是处于高速/全速的,流程图中关于高速配置的部分,"建立高速标志"是怎样建立的,与测试方式寄存器有关系吗? |
|
沙发#
发布于:2007-11-26 21:02
me too QQ:416616757
|
|
板凳#
发布于:2007-12-05 11:01
我想问一下楼主 你是如何判断是EP0 IN 中断
|
|