阅读:1011回复:2
求救:为什么我的usb芯片所有寄存器配置好之后却一直收不到中断???
usb芯片为自供电,attach node以后使其进入suspend状态,以等待usb bus上的信号来唤醒(唤醒后开始枚举)。各个寄存器应该都设对了,但是不管是接上usb电缆还是host端刷新硬件,usb这边都收不到任何中断!!!!
已经卡在这里好久了,哪位能帮帮我呀?我用的是usbn9603。 |
|
沙发#
发布于:2002-12-13 16:07
你说一下具体问题在那里,比如系统发现USB没有等等情况。大家才好分析呀!
|
|
板凳#
发布于:2002-12-13 16:39
以现在的情况分析,系统应该是没有发现设备,因为host连着三次get descriptor以后就停止了(没收到数据)。
硬件设计是希望通过插进usb电缆来使usb device接受到host发出的中断,然后usb device进入operate state(否则处于suspend state)。 执行的顺序是外设开机,usb执行usb_init(),对各个寄存器进行设置(实在找不出这里面哪里出错了),执行attach node这一步的时候会收到host的alt event,此alt event为reset或者sd3,sd5,执行后进入operate state或者suspend state,到这里usb_init()执行完毕。外设继续运行系统。 接下来在需要使用usb的时候插入usb电缆,这时按道理应该接受到host触发的中断以接受其发出的setup包,然后进行get descriptor等枚举步骤。。。握手。。。进入工作状态。。。 但是现在的现象是usb_init()执行完毕,attach node时收到alt event,usb_init()执行完毕后进入operate或者suspend state,这时插入usb电缆,外设接收不到任何中断、不做任何处理,在我的电脑设备属性中usb项中显示:unknown usb device,删除掉它刷新,外设也收不到中断。bus hound中显示host发了三个get descriptor,然后停止了。 以上说的大家明白了吗??? 另外我想问一下,bus hound里host发的class是什么意思?? 大侠们快来帮帮我吧!!!!! :( :( :( :( :( |
|