阅读:1029回复:2
高手救命阿
我使用isp1581作为接口芯片,我的两个usb设备在1.1下有时能枚举成功,有时不能,不能的时候就是三次busreset!而两个usb设备在2.0下都能枚举成功。很奇怪。
这是我的寄存器初始化: outport(rega_mode,0x08); outport(rega_intcfg,0x55); outport(rega_intmask_low,0xffa0); outport(rega_intmask_high,0x3ff); outport(rega_interrupt_low,0); outport(rega_interrupt_high,0xfc00); outport(rega_addren,0x80); outport(rega_mode,0x09); 这是我的中断服务程序: int_low = ISP1581_ReadInterruptRegisterLow(); int_high = ISP1581_ReadInterruptRegisterHigh(); if(int_low != 0 || int_high != 0) { if(int_low & int_busreset) { intflag_busreset=1; ISP1581_IntClearl(int_busreset); outport(rega_intcfg,0x55); outport(rega_intmask_low,0xffa1); outport(rega_intmask_high,0x3ff); outport(rega_interrupt_low,0); outport(rega_interrupt_high,0xfc00); outport(rega_addren,0x80); ISP1581_ConfigEndpoint(); } if(int_low & int_hs_stat) { intflag_hstat=1; ISP1581_IntClearl(int_hs_stat); bISP1581flags.bits.ConnectSpeed = HighSpeed; } ...... 请帮忙看有什么问题么,我调试了很多天,没什么进展,能给点建议么?谢谢! |
|
沙发#
发布于:2005-05-09 20:18
驱动程序是否自己编的,我也遇到同样的情况,开始我用别人的驱动,有时枚举好几次多没成功。用自己编的就没问题了。
不止是不适合你 |
|
板凳#
发布于:2005-05-09 21:14
枚举过程 不是主机系统自动完成的么?usb设备里的固件是自己编的,至少上面的是,能给点意见么,郁闷阿
|
|