阅读:1065回复:4
[求助]usbn9603开中断是在attach_node前还是后?
在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后面啊? |
|
沙发#
发布于:2004-04-12 08:57
好像不用,代码是正确的,没有ATTACH的时候,一般是不会有USB中断发送来的,你看看发生的是什么中断啊。还有,看看中断的触发电平设置对了没有,9603的网上的代码中是高电平触发,你的CPU板子的中断线(和USBN9603链接的那根)的中断触发电平设置的是什么方式,是不是一致。
|
|
板凳#
发布于:2004-04-12 10:25
谢谢楼上的大哥!我用的usb是电平触发,opendrain方式,要外界上拉电阻.不知道你用的是什么方式?usb9603的中断方式我不是很了解,只知道是电平方式,pushpull有什么讲究我还不清楚,只知道opendrain要接个电阻。
另外,我还向问问,9603的读时序问题,我发现在我给出片选信号和读信号时,9603给出的值不是ff就是fe,而在他们后面才是真正的数值,但是已经没有片选和读信号了,不知这是为什么?能否帮小弟一把,不胜感激! |
|
地板#
发布于:2004-04-12 10:45
1。USBN9603支持高电平触发,和低电平触发,可以通过MCNTRL的VGE位来设置(记不太清了,可以查下寄存器手册)。同时你要查看和USBN9603的的INTR引脚连接的MCU的引脚(一般这个引脚是MCU的中断输入引脚或GPIO)的设置。如果你的MCNTRL的VGE位设置位高电平触发,那么你要把MCU的那个和USBN9603的intr引脚相连的引脚设为高电平触发,低电平触发一样,反正两边要一致。
2。读时序的问题,明显是你的时序不匹配。不过你的问题不是很清楚。如果是读寄存器的话,读出来的是FF或FE,在他们后面才是真正的数据,是什么意思?你是怎么读的啊。 还有最好大概介绍一下你用的MCU的情况。 |
|
地下室#
发布于:2004-04-12 11:30
先INT_ENABLE
再ATTACH_NODE ;) |
|