ip4347
驱动牛犊
驱动牛犊
  • 注册日期2004-03-04
  • 最后登录2010-10-31
  • 粉丝0
  • 关注0
  • 积分36分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
阅读:1064回复:4

[求助]usbn9603开中断是在attach_node前还是后?

楼主#
更多 发布于:2004-04-10 21:55
在usbn9603init()里面,
/* Enable all below interrupts */
    ENABLE_NODE_INTS(INTR_E|RX_EV|NAK|TX_EV|ALT)
reset_usb();
    GOTO_STATE(OPR_ST) /* Go operational */

ATTACH_NODE
for (i = 0; i < 0xffff; i++);
我发现这样的话,还没等到reset_usb()结束,就已经产生中断了,是否应该将开中断的代码移到attachnode后面啊?
bbiliu
驱动牛犊
驱动牛犊
  • 注册日期2004-02-20
  • 最后登录2005-01-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-04-12 08:57
好像不用,代码是正确的,没有ATTACH的时候,一般是不会有USB中断发送来的,你看看发生的是什么中断啊。还有,看看中断的触发电平设置对了没有,9603的网上的代码中是高电平触发,你的CPU板子的中断线(和USBN9603链接的那根)的中断触发电平设置的是什么方式,是不是一致。
ip4347
驱动牛犊
驱动牛犊
  • 注册日期2004-03-04
  • 最后登录2010-10-31
  • 粉丝0
  • 关注0
  • 积分36分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-04-12 10:25
谢谢楼上的大哥!我用的usb是电平触发,opendrain方式,要外界上拉电阻.不知道你用的是什么方式?usb9603的中断方式我不是很了解,只知道是电平方式,pushpull有什么讲究我还不清楚,只知道opendrain要接个电阻。
另外,我还向问问,9603的读时序问题,我发现在我给出片选信号和读信号时,9603给出的值不是ff就是fe,而在他们后面才是真正的数值,但是已经没有片选和读信号了,不知这是为什么?能否帮小弟一把,不胜感激!
bbiliu
驱动牛犊
驱动牛犊
  • 注册日期2004-02-20
  • 最后登录2005-01-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-04-12 10:45
1。USBN9603支持高电平触发,和低电平触发,可以通过MCNTRL的VGE位来设置(记不太清了,可以查下寄存器手册)。同时你要查看和USBN9603的的INTR引脚连接的MCU的引脚(一般这个引脚是MCU的中断输入引脚或GPIO)的设置。如果你的MCNTRL的VGE位设置位高电平触发,那么你要把MCU的那个和USBN9603的intr引脚相连的引脚设为高电平触发,低电平触发一样,反正两边要一致。
2。读时序的问题,明显是你的时序不匹配。不过你的问题不是很清楚。如果是读寄存器的话,读出来的是FF或FE,在他们后面才是真正的数据,是什么意思?你是怎么读的啊。
还有最好大概介绍一下你用的MCU的情况。
leadphone
驱动牛犊
驱动牛犊
  • 注册日期2002-11-28
  • 最后登录2008-09-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-04-12 11:30
先INT_ENABLE
再ATTACH_NODE
 ;)
游客

返回顶部