liupipi
驱动牛犊
驱动牛犊
  • 注册日期2004-02-12
  • 最后登录2004-02-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1602回复:14

还是闪三下的问题.没解决,急死了.

楼主#
更多 发布于:2004-02-17 20:56
一直是这个问题.D12的设备,在98下正常,但是在XP下就是闪三下,然后说未知设备.查了这里的贴子,只发现有提问的,但是还是不知道怎么解决.我是天津的,解决了一定请吃饭.呵呵.

1.有人说是XP下USB2.0驱动的问题.我换了台机器,没装USB2.0的驱动,也是一样的现象.
2.XP下是不是USB的枚举时间比98下要短?如果是这样的话,我的晶振频率已经是最大了,12M,还能有什么别的方法减少枚举的时间?我看源程序中,只有TIMER0的触发时间,但是也不能改得太少呀.
3.在XP下还有其他的现象,就是当我在第一次枚举失败的时候,按REST键复位,则还可以在这一级找到这个设备,并且安装上周立功提供的XP/2000下的驱动.但是在安装成功后,紧接着又会弹出一个窗口说检测到未知的USB设备,真郁闷了.再装,就说此位置不包含任何硬件信息.我觉得是不是说是设备的PID和VID其实并没有被枚举到PC机?该如何解决?而且,D12的灯也没有亮.


我是自己做的ADUC824+D12设备,用的是周立功的固件源程序,稍徽改了一下端口.

看yyoukin大侠说他也遇到过相关的问题,但是解决了.说要改动一些地方,不知具体是什么地方?谢谢赐教.
liupipi
驱动牛犊
驱动牛犊
  • 注册日期2004-02-12
  • 最后登录2004-02-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-02-17 20:57
是yyouking,少打了个g,对不起了.

我的EMAIL是liupipi@163.com,谢谢大家了.
liupipi
驱动牛犊
驱动牛犊
  • 注册日期2004-02-12
  • 最后登录2004-02-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-02-17 21:41
我用bushound看的结果是这样的
Bus Hound 3.02 capture. Complements of www.perisoft.net

  Dev   - Device ID
  Time  - Elapsed time since the start of the previous Phase
  Phase - ADDR= 1394 transfer address  LOCK= 1394 lock transaction
          CDB = Command block          NSTS= NT status
          CTL = USB control packet     RSET= bus reset
          DI  = Data In                RSTS= I/O Request Status
          DO  = Data Out               SNS = SCSI Sense Data
          IDE = IDE task file command  SSTS= SCSI Request Block Status
          ISOC= Isochronous Transfer   USTS= USB status

  (10) USB Root Hub [76KB/Sec]

Dev  Phase  Data                       Info           Time   Cmd.Phase.Ofs    
---  -----  -------------------------  -------------  -----  ------------------
 10  CTL    23 01 01 00 - 02 00 00 00  CLASS            0us         1.1.0        
 10  CTL    a3 00 00 00 - 02 00 04 00  CLASS           27sc         2.1.0        
 10  DI     00 01 01 00                ....            33us         2.2.0        
 10  CTL    a3 00 00 00 - 02 00 04 00  CLASS           23us         3.1.0        
 10  DI     00 01 01 00                ....            23us         3.2.0        
 10  CTL    23 01 10 00 - 02 00 00 00  CLASS           24us         4.1.0        
 10  CTL    a3 00 00 00 - 01 00 04 00  CLASS          101us         5.1.0        
 10  DI     00 01 00 00                ....            28us         5.2.0        
 10  CTL    a3 00 00 00 - 02 00 04 00  CLASS           22us         6.1.0        
 10  DI     00 01 00 00                ....            22us         6.2.0        
 10  USTS   00 00 01 c0                canceled       3.0ms         7.1.0        
 10  CTL    a3 00 00 00 - 02 00 04 00  CLASS           12sc         8.1.0        
 10  DI     01 01 01 00                ....            27us         8.2.0        
 10  CTL    a3 00 00 00 - 02 00 04 00  CLASS           27us         9.1.0        
 10  DI     01 01 01 00                ....            23us         9.2.0        
 10  CTL    23 01 10 00 - 02 00 00 00  CLASS           21us        10.1.0        
 10  CTL    a3 00 00 00 - 01 00 04 00  CLASS          1.3sc        11.1.0        
 10  DI     00 01 00 00                ....            49us        11.2.0        
 10  CTL    a3 00 00 00 - 02 00 04 00  CLASS           29us        12.1.0        
 10  DI     01 01 00 00                ....            23us        12.2.0        
 10  CTL    a3 00 00 00 - 02 00 04 00  CLASS          123ms        13.1.0        
 10  DI     01 01 00 00                ....            45us        13.2.0        
 10  CTL    23 03 04 00 - 02 00 00 00  CLASS          172us        14.1.0        
 10  CTL    a3 00 00 00 - 02 00 04 00  CLASS           31ms        15.1.0        
 10  DI     03 01 10 00                ....            32us        15.2.0        
 10  CTL    23 01 14 00 - 02 00 00 00  CLASS            5us        16.1.0        
 10  CTL    a3 00 00 00 - 02 00 04 00  CLASS           31ms        17.1.0        
 10  DI     03 01 00 00                ....            45us        17.2.0        
 10  CTL    a3 00 00 00 - 02 00 04 00  CLASS          5.7sc        18.1.0        
 10  DI     03 01 00 00                ....            44us        18.2.0        
 10  CTL    23 03 04 00 - 02 00 00 00  CLASS           27us        19.1.0        
 10  CTL    a3 00 00 00 - 02 00 04 00  CLASS           31ms        20.1.0        
 10  DI     03 01 10 00                ....           301us        20.2.0        
 10  CTL    23 01 14 00 - 02 00 00 00  CLASS            9us        21.1.0        
 10  CTL    a3 00 00 00 - 02 00 04 00  CLASS          5.6sc        22.1.0        
 10  DI     03 01 00 00                ....            44us        22.2.0        
 10  CTL    23 03 04 00 - 02 00 00 00  CLASS           27us        23.1.0        
 10  CTL    a3 00 00 00 - 02 00 04 00  CLASS           31ms        24.1.0        
 10  DI     03 01 10 00                ....            31us        24.2.0        
 10  CTL    23 01 14 00 - 02 00 00 00  CLASS            4us        25.1.0        
 10  CTL    23 01 01 00 - 02 00 00 00  CLASS          5.6sc        26.1.0        
 10  CTL    80 00 00 00 - 00 00 02 00  GET STATUS     7.9sc        27.1.0        
 10  DI     01 00                      ..              44us        27.2.0    
yyouking
驱动老牛
驱动老牛
  • 注册日期2003-12-18
  • 最后登录2020-04-28
  • 粉丝0
  • 关注0
  • 积分967分
  • 威望114点
  • 贡献值1点
  • 好评度78点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2004-02-18 08:28
把固件的PID,VID 还有一个延时程序修改一下,试试
提供: AT89S52+D12开发套件 W78E54+Sl811HST单片机读写U盘套件 PL2303HX-串口转USB 网站http://www.devking.cn 联系 sl811hs@yahoo.com.cn QQ:14441292
liupipi
驱动牛犊
驱动牛犊
  • 注册日期2004-02-12
  • 最后登录2004-02-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-02-18 21:00
PID,VID随便改个数就行嘛?

嗯,还有,延时程序指的是TIMER0的时间间隔嘛?

好象程序没有别的地方延时了呀.
liupipi
驱动牛犊
驱动牛犊
  • 注册日期2004-02-12
  • 最后登录2004-02-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-02-18 21:12
我把PID和VID改了 ,而且把延时程序TH0改为0x80,并且时间判断上改为10次计数.

可是,在BUSHOUND中,还是什么都没接到,全是0200 0400呀.

yyouking
驱动老牛
驱动老牛
  • 注册日期2003-12-18
  • 最后登录2020-04-28
  • 粉丝0
  • 关注0
  • 积分967分
  • 威望114点
  • 贡献值1点
  • 好评度78点
  • 原创分0分
  • 专家分0分
  • 社区居民
6楼#
发布于:2004-02-19 18:34
在CONNECT函数中的,一个循环
提供: AT89S52+D12开发套件 W78E54+Sl811HST单片机读写U盘套件 PL2303HX-串口转USB 网站http://www.devking.cn 联系 sl811hs@yahoo.com.cn QQ:14441292
liupipi
驱动牛犊
驱动牛犊
  • 注册日期2004-02-12
  • 最后登录2004-02-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-02-20 23:50
这里面没有循环呀.
是不是应该插入些循环?

//连接USB总线
void connect_USB(void)
{
// reset event flags
DISABLE;
bEPPflags.value = 0;//清除所有状态
ENABLE;

// V2.1 enable normal+sof interrupt
D12_SetDMA(D12_ENDP4INTENABLE | D12_ENDP5INTENABLE);

// Initialize D12 configuration
D12_SetMode(D12_NOLAZYCLOCK|D12_SOFTCONNECT, D12_SETTOONE | D12_CLOCK_12M);
}
liupipi
驱动牛犊
驱动牛犊
  • 注册日期2004-02-12
  • 最后登录2004-02-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-02-20 23:53
只有RECONNECT函数中有循环.


void reconnect_USB(void)
{
unsigned long clk_cnt;

// Pull-down D12's SUSPEND pin
// Disable 74HCT123 pulse generation before disconnect
// Release D12's SUSPEND pin after receiving bus reset from host
D12SUSPD = 0;
disconnect_USB();

//printf("Wait for 1 second ...\n");

clk_cnt = ClockTicks;
while(ClockTicks < clk_cnt + 20)
;

connect_USB();

}
qifeng8
驱动小牛
驱动小牛
  • 注册日期2003-08-26
  • 最后登录2013-01-31
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望80点
  • 贡献值0点
  • 好评度21点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-11-01 16:52
解决没有?能不能说清楚一点啊
chen036066182
驱动牛犊
驱动牛犊
  • 注册日期2004-12-13
  • 最后登录2006-08-10
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-12-14 16:51
我也有同样的问题,可否交流一下,共同进步。qq:343056590
cuihua
chen036066182
驱动牛犊
驱动牛犊
  • 注册日期2004-12-13
  • 最后登录2006-08-10
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-12-17 10:22
大侠们能不能再仔细的说明一下呢。谢谢了
cuihua
chen036066182
驱动牛犊
驱动牛犊
  • 注册日期2004-12-13
  • 最后登录2006-08-10
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-12-17 10:26
顶,祝楼组进展顺利
cuihua
chen036066182
驱动牛犊
驱动牛犊
  • 注册日期2004-12-13
  • 最后登录2006-08-10
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-12-20 09:32
ding
cuihua
yyouking
驱动老牛
驱动老牛
  • 注册日期2003-12-18
  • 最后登录2020-04-28
  • 粉丝0
  • 关注0
  • 积分967分
  • 威望114点
  • 贡献值1点
  • 好评度78点
  • 原创分0分
  • 专家分0分
  • 社区居民
14楼#
发布于:2004-12-20 11:58
devking.51.net

只有RECONNECT函数中有循环.
void reconnect_USB(void)
{
unsigned long clk_cnt;

// Pull-down D12's SUSPEND pin
// Disable 74HCT123 pulse generation before disconnect
// Release D12's SUSPEND pin after receiving bus reset from host
D12SUSPD = 0;
disconnect_USB();

//printf("Wait for 1 second ...n");

while(ClockTicks < 1220)
ClockTicks++;

connect_USB();

}
提供: AT89S52+D12开发套件 W78E54+Sl811HST单片机读写U盘套件 PL2303HX-串口转USB 网站http://www.devking.cn 联系 sl811hs@yahoo.com.cn QQ:14441292
游客

返回顶部