打印

68013的ep0out中断问题

[复制链接]
3169|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zyzyzy407|  楼主 | 2012-2-17 20:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
发送自定义的vender命令 带数据的 想试试ep0out中断 但一直进不了ep0中断 求大侠讲下怎么用ep0中断 给个例程也成 我看了datasheet了但就是没进去中断 希望大侠指教

相关帖子

沙发
dqyubsh| | 2012-2-19 01:13 | 只看该作者
你把vend_ax示例看懂了,照着写就可以。

中断写在isr_ep0out() interrupt 0函数里。实际上没有人到中断里读取数据,而是在主循环里读数,就像示例那样。

使用特权

评论回复
板凳
zyzyzy407|  楼主 | 2012-2-19 12:00 | 只看该作者
厂商指令发下去了 我在厂商指令函数中读取的ep0buf数据没问题 我现在就是想看看ep0out中断是怎么回事 手册上说接受完ep0buf数据后就可以进入ep0out中断了 但我怎么也进不去 epie我也給赋值了0x02 手册原话:For EP0 OUT transfers, EZ-USB logic will NAK all OUT tokens to EP0 until the firmware has“armed” EP0 for OUT transfers by writing any value to the EP0BCL register. BUSY is automatically
set to 1 when the firmware writes to EP0BCL, and BUSY is automatically cleared to 0 after the
data has been correctly received and ACK’d. When BUSY transitions to zero, the EZ-USB also
generates an EP0OUT interrupt request. 您有这个ep0out中断的历程吗? 2# dqyubsh

使用特权

评论回复
地板
dqyubsh| | 2012-2-20 22:07 | 只看该作者
我用EP0用的嗷嗷爽,干嘛还要弄进中断去。

使用特权

评论回复
5
zyzyzy407|  楼主 | 2012-2-21 08:21 | 只看该作者
就是想试试ep0out怎么用 呵呵 4# dqyubsh

使用特权

评论回复
6
dqyubsh| | 2012-2-21 09:36 | 只看该作者
FX2的USB中断有20几个,不可能挨个试。USB相关寄存器也有几十个,不可能都搞的清,记得住。还是把手册看懂了,然后参照例程,完成自己的工作就好。

EP0可以IN,可以OUT。显然,EP0作为OUT端点时,主机发给EP0数据,那么主机一定要等到设备响应ACK才认为发送正确。对应地,设备也应该在响应了ACK之后才能从EP0缓冲区内拿到数据。

上边这段英文告诉我们,如果你要用EP0接收数据,那就把它先设置成OUT端点(向EP0BCL写入任意值),然后等着吧(BUSY位被置位),等着主机发数据过来。当数据被正确接收且得到应答信号后,BUSY位自动清零,然后产生EP0OUT中断。

了解到这,就可以在框架下扩展程序了。但是,并不表明可以在EP0OUT中断里写程序。这是因为,你要先确定EP0每来一个字节就触发中断,还是来了一票数据才产生一个中断。一般会认为是后者,但要排除前者。这和EP2/4/6/8端点不一样,这几个端点有FIFO,只有FIFO满了或者半满时才会产生中断。EP0/1与这几个端点没什么相似之处,寄存器也都不相关。

剩下来的,没什么了。如果传输出错了,有其他中断管理,跟这没关系。再可能要深入的,可能是做一些流控方面的事情。比如,让主机每发一个信息包,如64字节,就停下来等着固件把数据收走,然后固件响应一个ACK,然后主机继续发数据。这样,可以给FX2发大量的数据,不至于因为发的快收的慢,把数据淹没了。

凡此种种,vend_ax例子写的很清晰。关于USB中断的例子,也可以参看一下pingnak和EP_Interrupts。

使用特权

评论回复
7
zyzyzy407|  楼主 | 2012-2-21 12:55 | 只看该作者
现在 ep0out的中断进去了 但还有些问题 我在调调看 还有一个问题请教啊 如果我把配置描述符设置成了自供电的话 那实际中pcusb端口实际还是有5v电压的 那这个配置描述符的自供电不就形同虚设了嘛(知识告诉了电脑自供电) 但实际中不是这样啊 求解释 6# dqyubsh

使用特权

评论回复
8
dqyubsh| | 2012-2-21 15:28 | 只看该作者
没用过总线供电,都是自带电源的。我觉得可以不予理财,没发现有什么妨碍。

使用特权

评论回复
9
zyzyzy407|  楼主 | 2012-2-21 17:36 | 只看该作者
恩 我就是看到这个东西 不是特别清楚 所以想问一下 呵呵 8# dqyubsh

使用特权

评论回复
10
zyzyzy407|  楼主 | 2012-3-4 19:42 | 只看该作者
请问 大神 一般端点数据是在端点中断里读写呢?还是在td_poll中读写那? 8# dqyubsh

使用特权

评论回复
11
dqyubsh| | 2012-3-4 21:39 | 只看该作者
例程里两种用法都有,没所谓放在哪。个人喜欢td_poll。中断里越简捷越好。

使用特权

评论回复
12
zyzyzy407|  楼主 | 2012-3-5 17:57 | 只看该作者
11# dqyubsh

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

208

帖子

0

粉丝