wangjisheng
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2011-07-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望20点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
阅读:1386回复: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,请帮我看看啊,我发给您程序了
metalwing
驱动中牛
驱动中牛
  • 注册日期2003-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望58点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-07-24 12:40
Usb_driver_wr(0x0c,0x8);
你是把0X08写到00X0C寄存器里了吧?那不又把SOFTCONNET关了?
新手上路,请多关照.
metalwing
驱动中牛
驱动中牛
  • 注册日期2003-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望58点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-07-24 12:44
Usb_driver_wr(0x14,0x3901);
Usb_driver_wr(0x16,0x0000);
0X14,0X16中断ENABLE寄存器置位,那0X15呢?不置位你怎么知道来了
SETUP中断?不是通过中断触发?轮询0X19?
新手上路,请多关照.
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        


 
metalwing
驱动中牛
驱动中牛
  • 注册日期2003-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望58点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-07-25 09:38
从现象上看,是设备没连上(0X0C的最低位没置1),它的数据是USBD向
HUB发的HUB类REQUEST,具体的意思你可以看USB2.0协议的第11.24.
你的BUSHOUND的13是HUB吧?没进到设备里(或你没采设备信息).
新手上路,请多关照.
metalwing
驱动中牛
驱动中牛
  • 注册日期2003-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望58点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-07-25 09:51
在23 01 14 00 01 00 00 00之后,BUSHOUND应该能看到你的设备描述符:12 01 ....,而你的好象没有返回这个,你看看你的固件程序,最好跟一下,看它是否进到发送设备描述符里去了,并看是否发送设备描述符了.
新手上路,请多关照.
wangjisheng
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2011-07-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望20点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-07-25 10:25
谢谢,我已经连上usbconnect了,0c->1,
已经有usb的图表了,但是我现在能够收到很多次busreset中断,我感觉就不太对了吧,别的中断没有啊,一直都是这个
metalwing
驱动中牛
驱动中牛
  • 注册日期2003-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望58点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-07-25 12:37
是啊,应该只有一次BUSREST中断.你看一下,是否你在BUSRESET里将
0X0C寄存器又重新置位了?在BUSRESET处理过程中,不需要将它置位.
特别是SOFTCONNET.不知是不是这个原因.
新手上路,请多关照.
wangjisheng
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2011-07-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望20点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
8楼#
发布于: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;
}


您看看是什么问题啊?
metalwing
驱动中牛
驱动中牛
  • 注册日期2003-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望58点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-07-25 16:45
BUSRESET过程不会对SOFTCONNET有影响,所以你可以不去管它,既不置位,也不清除,试试看.(你初始化1581是否对SOFTCONNET作了什么?)
另:在总线复位后,你应当收到STANDARD REQUEST,你看你收到没有.
新手上路,请多关照.
wangjisheng
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2011-07-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望20点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-07-25 21:09
非常感谢metalwing
我找到了问题了,是我在busreset中断中对softconnect进行从新赋值,并不是做与操作,导致softconnect断开,所以再联上的时候又受到busreset中断,现在能够枚举成功了,下一步好好的消化程序,然后编写驱动,能不能指导一下如何进行数据传输,如何写驱动,放分啦
metalwing
驱动中牛
驱动中牛
  • 注册日期2003-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望58点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-07-26 09:09
首先祝贺你的进展.
不用谢,互相帮助才能共同进步.
你要进行什么样的数据传输?写驱动找本书先看看,DS,WINDRV,等等,
可以先看看WDM方面的书.有一个概念后再动手.
祝你早日成功.
新手上路,请多关照.
游客

返回顶部