wangjisheng
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2011-07-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望20点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
阅读:1389回复:11

高手们来帮忙阿(isp1581)

楼主#
更多 发布于:2004-07-24 10:20
我做好固件程序了,但是现在设置好isp1581的寄存器后,能够接到多次busreset中断,每次都很多,大家看看我的寄存器设置,看看有什么问题
void Init_D14_SFR(void)
{
//enable Global Interrupt enable
//enable soft connect and other feature
//enable wakeup on chip select
//disable soft connect
//设置模式:时钟始终有效,全局中断使能,片选唤醒
Usb_driver_wr(0x0c,0x8);
//set all interrupt source to mode 1
//设置全部中断为模式1,电平触发,低电平有效
Usb_driver_wr(0x10,0x62);

 
    Usb_driver_wr(0x14,0x3901);
            Usb_driver_wr(0x16,0x0000);
    
}

特别是jinghuiren,请帮我看看啊,我发给您程序了
wangjisheng
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2011-07-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望20点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-07-24 17:04
我用的是dsp 5409 16位总线,所以寻址的时候只对14和16两个地址操作就能够对中断enable置位了,不象单片机8位的,

而且先阶段只是初始化,对0ch地址写入08,还没有连接usb
Usb_driver_wr(0x0c,0x8);所以,没有问题吧

现在我用bushond捕捉到下面的情况,好像到GET DESCRIPTOR没反应
高手帮我看看,到那个步骤了?大概是什么出问题了?


13.1  DI       .                        1.1.0          
13.0  CTL    a3 00 00 00  01 00 04 00  GET STATUS               2.1.0(2)    
  13.0  DI     01 01 01 00               ....                     2.2.0        
  13.0  CTL    23 01 10 00  01 00 00 00  CLEAR FEATURE            4.1.0        
  13.0  CTL    a3 00 00 00  01 00 04 00  GET STATUS               5.1.0(2)    
  13.0  DI     01 01 00 00               ....                     5.2.0        
  13.0  CTL    23 03 04 00  01 00 00 00  SET FEATURE              7.1.0        
  13.1  DI     02                        .                        8.1.0        
  13.0  CTL    a3 00 00 00  01 00 04 00  GET STATUS               9.1.0        
  13.0  DI     00 01 10 00               ....                     9.2.0        
  13.0  CTL    23 01 14 00  01 00 00 00  CLEAR FEATURE           10.1.0        
  13.0  CTL    a3 00 00 00  01 00 04 00  GET STATUS              11.1.0        
  13.0  DI     00 01 00 00               ....                    11.2.0        
  13.0  CTL    80 06 00 01  00 00 40 00  GET DESCRIPTOR          12.1.0        
  13.0  USTS   05 00 00 80               no response             12.2.0        
  13.0  CTL    a3 00 00 00  01 00 04 00  GET STATUS              13.1.0        
  13.0  DI     00 01 00 00               ....                    13.2.0        
  13.0  CTL    80 06 00 01  00 00 40 00  GET DESCRIPTOR          14.1.0        
  13.0  USTS   05 00 00 80               no response             14.2.0        
  13.0  CTL    a3 00 00 00  01 00 04 00  GET STATUS              15.1.0        
  13.0  DI     00 01 00 00               ....                    15.2.0        
  13.0  CTL    80 06 00 01  00 00 40 00  GET DESCRIPTOR          16.1.0        
  13.0  USTS   05 00 00 80               no response             16.2.0        
  13.0  CTL    23 01 01 00  01 00 00 00  CLEAR FEATURE           17.1.0        
  13.0  CTL    a3 00 00 00  02 00 04 00  GET STATUS              18.1.0        
  13.0  DI     00 01 00 00               ....                    18.2.0        


 
wangjisheng
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2011-07-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望20点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-07-25 10:25
谢谢,我已经连上usbconnect了,0c->1,
已经有usb的图表了,但是我现在能够收到很多次busreset中断,我感觉就不太对了吧,别的中断没有啊,一直都是这个
wangjisheng
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2011-07-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望20点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-07-25 16:27
对的,我是在isr的中断子程序中将connectsof置1了
但是没有重新写0,再写1,周立功的程序,和philips公司的程序都是这样做的,
if(USB_Int_Flag.BITS.RESET)
{
//清除总线复位中断位
USB_Int_Flag.BITS.RESET = 0;
//设置总线复位标志
Kernel_Flag.BITS.Bus_Reset = 1;

PIO_Count = 64;

//切换到全速模式
       HS_FS_LED = FULL_SPEED_LED;
Kernel_Flag.BITS.HS_FS_State = FULL_SPEED;
//初始化ISP1581
Init_D14();
//设置softconnect
D14_Cntrl_Reg.D14_MODE.BITS.SOFTCT = 1;
}


您看看是什么问题啊?
wangjisheng
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2011-07-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望20点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-07-25 21:09
非常感谢metalwing
我找到了问题了,是我在busreset中断中对softconnect进行从新赋值,并不是做与操作,导致softconnect断开,所以再联上的时候又受到busreset中断,现在能够枚举成功了,下一步好好的消化程序,然后编写驱动,能不能指导一下如何进行数据传输,如何写驱动,放分啦
游客

返回顶部