打印

d12枚举问题

[复制链接]
2322|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gradzz|  楼主 | 2007-8-9 09:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这是我用bushound捕捉的数据,一直无法枚举成功,请高手帮我看看问题在哪?
Bus Hound 5.00 capture. Complements of www.perisoft.net

test1

  Device - Device ID (followed by the endpoint for USB devices)
            (7) Intel(R) 82801EB USB Universal Host Controller - 24D2
            (8) USB Root Hub
            (9) Intel(R) 82801EB USB Universal Host Controller - 24D4
            (10) USB Root Hub
            (11) Intel(R) 82801EB USB Universal Host Controller - 24D7
            (12) USB Root Hub
            (13) Intel(R) 82801EB USB Universal Host Controller - 24DE
            (14) USB Root Hub
            (15) Intel(R) 82801EB USB2 Enhanced Host Controller - 24DD
            (16) USB Root Hub
  Phase  - Phase Type
            CTL   USB control transfer       
            DI    Data in                    
            URB   USB request block          
  Data   - Hex dump of the data transferred
  Descr  - Description of the phase
  Cmd... - Position in the captured data
  Delta  - Elapsed time from the previous phase to the current phase
  Date   - Date the phase occurred in year/month/day form
  Time   - Time the phase occurred in hour:minute:second.millisec form


Device  Phase  Data                                                Description       Cmd.Phase.Ofs(rep)  Delta  Date        Time        
------  -----  --------------------------------------------------  ----------------  ------------------  -----  ----------  ------------
  16.1  URB    48 00 09 00  00 00 00 00  00 32 a4 ff  22 00 00 00  BULK/INT XFER            1.1.0         14sc  2007-08-09  00:35:45.774  
               4c 3a a4 ff  03 00 00 00  00 00 00 00  38 39 f4 80                           1.1.16                                        
  16.0  CTL    a3 00 00 00  06 00 04 00                            GET STATUS               2.1.0          9us  2007-08-09  00:35:45.774  
  16.0  DI     01 05 01 00                                         ....                     2.2.0         22us  2007-08-09  00:35:45.774  
  16.0  URB    50 00 08 00  00 00 00 00  00 32 a4 ff  22 00 00 00  CONTROL TRANSFER         2.3.0          3us  2007-08-09  00:35:45.774  
               18 32 a4 ff  0b 00 00 00  04 00 00 00  00 5e a4 ff                           2.3.16                                        
  16.0  CTL    a3 00 00 00  06 00 04 00                            GET STATUS               3.1.0         24us  2007-08-09  00:35:45.774  
  16.0  DI     01 05 01 00                                         ....                     3.2.0         18us  2007-08-09  00:35:45.774  
  16.0  URB    50 00 08 00  00 00 00 00  00 32 a4 ff  22 00 00 00  CONTROL TRANSFER         3.3.0          2us  2007-08-09  00:35:45.774  
               18 32 a4 ff  0b 00 00 00  04 00 00 00  a8 a1 a0 ff                           3.3.16                                        
  16.0  CTL    23 01 10 00  06 00 00 00                            CLEAR FEATURE            4.1.0         15us  2007-08-09  00:35:45.774  
  16.0  URB    50 00 08 00  00 00 00 00  00 32 a4 ff  20 00 00 00  CONTROL TRANSFER         4.2.0         18us  2007-08-09  00:35:45.774  
               18 32 a4 ff  0a 00 00 00  00 00 00 00  00 00 00 00                           4.2.16                                        
  16.0  CTL    a3 00 00 00  01 00 04 00                            GET STATUS               5.1.0         63us  2007-08-09  00:35:45.774  
  16.0  DI     00 85 00 00                                         ....                     5.2.0         18us  2007-08-09  00:35:45.774  
  16.0  URB    50 00 08 00  00 00 00 00  00 32 a4 ff  22 00 00 00  CONTROL TRANSFER         5.3.0          3us  2007-08-09  00:35:45.774  
               18 32 a4 ff  0b 00 00 00  04 00 00 00  a8 a1 a0 ff                           5.3.16                                        
  16.0  CTL    a3 00 00 00  02 00 04 00                            GET STATUS               6.1.0         14us  2007-08-09  00:35:45.774  
  16.0  DI     00 05 00 00                                         ....                     6.2.0         16us  2007-08-09  00:35:45.774  
  16.0  URB    50 00 08 00  00 00 00 00  00 32 a4 ff  22 00 00 00  CONTROL TRANSFER         6.3.0          3us  2007-08-09  00:35:45.774  
               18 32 a4 ff  0b 00 00 00  04 00 00 00  a8 a1 a0 ff                           6.3.16                                        
  16.0  CTL    a3 00 00 00  03 00 04 00                            GET STATUS               7.1.0         12us  2007-08-09  00:35:45.774  
  16.0  DI     00 05 00 00                                         ....                     7.2.0         17us  2007-08-09  00:35:45.774  
  16.0  URB    50 00 08 00  00 00 00 00  00 32 a4 ff  22 00 00 00  CONTROL TRANSFER         7.3.0          2us  2007-08-09  00:35:45.774  
               18 32 a4 ff  0b 00 00 00  04 00 00 00  a8 a1 a0 ff                           7.3.16                                        
  16.0  CTL    a3 00 00 00  04 00 04 00                            GET STATUS               8.1.0         13us  2007-08-09  00:35:45.774  
  16.0  DI     00 05 00 00                                         ....                     8.2.0         16us  2007-08-09  00:35:45.774  
  16.0  URB    50 00 08 00  00 00 00 00  00 32 a4 ff  22 00 00 00  CONTROL TRANSFER         8.3.0          3us  2007-08-09  00:35:45.774  
               18 32 a4 ff  0b 00 00 00  04 00 00 00  a8 a1 a0 ff                           8.3.16                                        
  16.0  CTL    a3 00 00 00  05 00 04 00                            GET STATUS               9.1.0         12us  2007-08-09  00:35:45.774  
  16.0  DI     00 05 00 00                                         ....                     9.2.0         17us  2007-08-09  00:35:45.774  
  16.0  URB    50 00 08 00  00 00 00 00  00 32 a4 ff  22 00 00 00  CONTROL TRANSFER         9.3.0          2us  2007-08-09  00:35:45.774  
               18 32 a4 ff  0b 00 00 00  04 00 00 00  a8 a1 a0 ff                           9.3.16                                        
  16.0  CTL    a3 00 00 00  06 00 04 00                            GET STATUS              10.1.0(2)      13us  2007-08-09  00:35:45.775  
  16.0  DI     01 05 00 00                                         ....                    10.2.0         17us  2007-08-09  00:35:45.775  
  16.0  URB    50 00 08 00  00 00 00 00  00 32 a4 ff  22 00 00 00  CONTROL TRANSFER        10.3.0          3us  2007-08-09  00:35:45.775  
               18 32 a4 ff  0b 00 00 00  04 00 00 00  a8 a1 a0 ff                          10.3.16                                        
  16.0  CTL    23 03 04 00  06 00 00 00                            SET FEATURE             12.1.0        124ms  2007-08-09  00:35:45.899  
  16.0  URB    50 00 08 00  00 00 00 00  00 32 a4 ff  20 00 00 00  CONTROL TRANSFER        12.2.0         19us  2007-08-09  00:35:45.899  
               18 32 a4 ff  0a 00 00 00  00 00 00 00  00 00 00 00                          12.2.16                                        
  16.1  URB    48 00 09 00  00 00 00 00  00 32 a4 ff  22 00 00 00  BULK/INT XFER           13.1.0        156ms  2007-08-09  00:35:46.055  
               4c 3a a4 ff  03 00 00 00  00 00 00 00  38 39 f4 80                          13.1.16                                        
  16.0  CTL    a3 00 00 00  06 00 04 00                            GET STATUS              14.1.0         12us  2007-08-09  00:35:46.055  
  16.0  DI     00 85 11 00                                         ....                    14.2.0         28us  2007-08-09  00:35:46.056  
  16.0  URB    50 00 08 00  00 00 00 00  00 32 a4 ff  22 00 00 00  CONTROL TRANSFER        14.3.0          3us  2007-08-09  00:35:46.056  
               18 32 a4 ff  0b 00 00 00  04 00 00 00  00 5e a4 ff                          14.3.16                                        
  16.0  CTL    23 01 14 00  06 00 00 00                            CLEAR FEATURE           15.1.0          5us  2007-08-09  00:35:46.056  
  16.0  URB    50 00 08 00  00 00 00 00  00 32 a4 ff  20 00 00 00  CONTROL TRANSFER        15.2.0         17us  2007-08-09  00:35:46.056  
               18 32 a4 ff  0a 00 00 00  00 00 00 00  00 00 00 00                          15.2.16                                        
  16.1  URB    48 00 09 00  00 00 00 00  00 32 a4 ff  22 00 00 00  BULK/INT XFER           16.1.0         29us  2007-08-09  00:35:46.056  
               4c 3a a4 ff  03 00 00 00  00 00 00 00  38 39 f4 80                          16.1.16                                        
  16.0  CTL    a3 00 00 00  06 00 04 00                            GET STATUS              17.1.0          5us  2007-08-09  00:35:46.056  
  16.0  DI     00 85 01 00                                         ....                    17.2.0         17us  2007-08-09  00:35:46.056  
  16.0  URB    50 00 08 00  00 00 00 00  00 32 a4 ff  22 00 00 00  CONTROL TRANSFER        17.3.0          3us  2007-08-09  00:35:46.056  
               18 32 a4 ff  0b 00 00 00  04 00 00 00  00 5e a4 ff                          17.3.16                                        
  16.0  CTL    a3 00 00 00  06 00 04 00                            GET STATUS              18.1.0(2)      14us  2007-08-09  00:35:46.056  
  16.0  DI     00 85 01 00                                         ....                    18.2.0         17us  2007-08-09  00:35:46.056  
  16.0  URB    50 00 08 00  00 00 00 00  00 32 a4 ff  22 00 00 00  CONTROL TRANSFER        18.3.0          2us  2007-08-09  00:35:46.056  
               18 32 a4 ff  0b 00 00 00  04 00 00 00  a8 a1 a0 ff                          18.3.16                                        
  16.0  CTL    23 01 10 00  06 00 00 00                            CLEAR FEATURE           20.1.0         58us  2007-08-09  00:35:46.056  
  16.0  URB    50 00 08 00  00 00 00 00  00 32 a4 ff  20 00 00 00  CONTROL TRANSFER        20.2.0         16us  2007-08-09  00:35:46.056  
               18 32 a4 ff  0a 00 00 00  00 00 00 00  00 00 00 00                          20.2.16                                        
  16.0  CTL    a3 00 00 00  07 00 04 00                            GET STATUS              21.1.0         31ms  2007-08-09  00:35:46.087  
  16.0  DI     00 05 00 00                                         ....                    21.2.0         44us  2007-08-09  00:35:46.087  
  16.0  URB    50 00 08 00  00 00 00 00  00 32 a4 ff  22 00 00 00  CONTROL TRANSFER        21.3.0          3us  2007-08-09  00:35:46.087  
               18 32 a4 ff  0b 00 00 00  04 00 00 00  a8 a1 a0 ff                          21.3.16                                        
  16.0  CTL    a3 00 00 00  08 00 04 00                            GET STATUS              22.1.0         17us  2007-08-09  00:35:46.087  
  16.0  DI     00 05 00 00                                         ....                    22.2.0         18us  2007-08-09  00:35:46.087  
  16.0  URB    50 00 08 00  00 00 00 00  00 32 a4 ff  22 00 00 00  CONTROL TRANSFER        22.3.0          5us  2007-08-09  00:35:46.087  
               18 32 a4 ff  0b 00 00 00  04 00 00 00  a8 a1 a0 ff                          22.3.16                                        
  16.0  CTL    a3 00 00 00  01 00 04 00                            GET STATUS              23.1.0         42us  2007-08-09  00:35:46.087  
  16.0  DI     00 85 00 00                                         ....                    23.2.0         17us  2007-08-09  00:35:46.087  
  16.0  URB    50 00 08 00  00 00 00 00  00 32 a4 ff  22 00 00 00  CONTROL TRANSFER        23.3.0          2us  2007-08-09  00:35:46.087  
               18 32 a4 ff  0b 00 00 00  04 00 00 00  a8 a1 a0 ff                          23.3.16                                        
  16.0  CTL    a3 00 00 00  02 00 04 00                            GET STATUS              24.1.0         13us  2007-08-09  00:35:46.087  
  16.0  DI     00 05 00 00                                         ....                    24.2.0         16us  2007-08-09  00:35:46.087  
  16.0  URB    50 00 08 00  00 00 00 00  00 32 a4 ff  22 00 00 00  CONTROL TRANSFER        24.3.0          2us  2007-08-09  00:35:46.087  
               18 32 a4 ff  0b 00 00 00  04 00 00 00  a8 a1 a0 ff                          24.3.16                                        
  16.0  CTL    a3 00 00 00  03 00 04 00                            GET STATUS              25.1.0         13us  2007-08-09  00:35:46.087  
  16.0  DI     00 05 00 00                                         ....                    25.2.0         17us  2007-08-09  00:35:46.087  
  16.0  URB    50 00 08 00  00 00 00 00  00 32 a4 ff  22 00 00 00  CONTROL TRANSFER        25.3.0          2us  2007-08-09  00:35:46.087  
               18 32 a4 ff  0b 00 00 00  04 00 00 00  a8 a1 a0 ff                          25.3.16                                        
  16.0  CTL    a3 00 00 00  04 00 04 00                            GET STATUS              26.1.0         13us  2007-08-09  00:35:46.087  
  16.0  DI     00 05 00 00                                         ....                    26.2.0         16us  2007-08-09  00:35:46.087  
  16.0  URB    50 00 08 00  00 00 00 00  00 32 a4 ff  22 00 00 00  CONTROL TRANSFER        26.3.0          3us  2007-08-09  00:35:46.087  
               18 32 a4 ff  0b 00 00 00  04 00 00 00  a8 a1 a0 ff                          26.3.16                                        
  16.0  CTL    a3 00 00 00  05 00 04 00                            GET STATUS              27.1.0         12us  2007-08-09  00:35:46.087  
  16.0  DI     00 05 00 00                                         ....                    27.2.0         17us  2007-08-09  00:35:46.087  
  16.0  URB    50 00 08 00  00 00 00 00  00 32 a4 ff  22 00 00 00  CONTROL TRANSFER        27.3.0          2us  2007-08-09  00:35:46.087  
               18 32 a4 ff  0b 00 00 00  04 00 00 00  a8 a1 a0 ff                          27.3.16                                        
  16.0  CTL    a3 00 00 00  06 00 04 00                            GET STATUS              28.1.0         13us  2007-08-09  00:35:46.087  
  16.0  DI     00 85 00 00                                         ....                    28.2.0         16us  2007-08-09  00:35:46.088  
  16.0  URB    50 00 08 00  00 00 00 00  00 32 a4 ff  22 00 00 00  CONTROL TRANSFER        28.3.0          2us  2007-08-09  00:35:46.088  
               18 32 a4 ff  0b 00 00 00  04 00 00 00  a8 a1 a0 ff                          28.3.16                                        
  16.0  CTL    a3 00 00 00  07 00 04 00                            GET STATUS              29.1.0         13us  2007-08-09  00:35:46.088  
  16.0  DI     00 05 00 00                                         ....                    29.2.0         17us  2007-08-09  00:35:46.088  
  16.0  URB    50 00 08 00  00 00 00 00  00 32 a4 ff  22 00 00 00  CONTROL TRANSFER        29.3.0          3us  2007-08-09  00:35:46.088  
               18 32 a4 ff  0b 00 00 00  04 00 00 00  a8 a1 a0 ff                          29.3.16                                        
  16.0  CTL    a3 00 00 00  08 00 04 00                            GET STATUS              30.1.0         12us  2007-08-09  00:35:46.088  
  16.0  DI     00 05 00 00                                         ....                    30.2.0         17us  2007-08-09  00:35:46.088  
  16.0  URB    50 00 08 00  00 00 00 00  00 32 a4 ff  22 00 00 00  CONTROL TRANSFER        30.3.0          2us  2007-08-09  00:35:46.088  
               18 32 a4 ff  0b 00 00 00  04 00 00 00  a8 a1 a0 ff                          30.3.16                                        
  12.1  URB    48 00 09 00  00 00 00 00  00 b2 a4 ff  22 00 00 00  BULK/INT XFER           31.1.0        170ms  2007-08-09  00:35:46.258  
               54 e8 a4 ff  03 00 00 00  00 00 00 00  48 21 f4 80                          31.1.16                                        
  12.0  CTL    a3 00 00 00  02 00 04 00                            GET STATUS              32.1.0          9us  2007-08-09  00:35:46.259  
  12.0  DI     01 01 01 00                                         ....                    32.2.0         22us  2007-08-09  00:35:46.259  
  12.0  URB    50 00 08 00  00 00 00 00  00 b2 a4 ff  22 00 00 00  CONTROL TRANSFER        32.3.0          3us  2007-08-09  00:35:46.259  
               18 b2 a4 ff  0b 00 00 00  04 00 00 00  00 be a4 ff                          32.3.16                                        
  12.0  CTL    a3 00 00 00  02 00 04 00                            GET STATUS              33.1.0         22us  2007-08-09  00:35:46.259  
  12.0  DI     01 01 01 00                                         ....                    33.2.0         16us  2007-08-09  00:35:46.259  
  12.0  URB    50 00 08 00  00 00 00 00  00 b2 a4 ff  22 00 00 00  CONTROL TRANSFER        33.3.0          2us  2007-08-09  00:35:46.259  
               18 b2 a4 ff  0b 00 00 00  04 00 00 00  a8 a1 a0 ff                          33.3.16                                        
  12.0  CTL    23 01 10 00  02 00 00 00                            CLEAR FEATURE           34.1.0         16us  2007-08-09  00:35:46.259  
  12.0  URB    50 00 08 00  00 00 00 00  00 b2 a4 ff  20 00 00 00  CONTROL TRANSFER       &nbs

相关帖子

沙发
computer00| | 2007-8-9 09:27 | 只看该作者

你的程序或者硬件有问题

现在只连通了D+上的上拉电阻,然后连主机发出的输出包,你的D12都没有发出ACK响应...

使用特权

评论回复
板凳
gradzz|  楼主 | 2007-8-9 10:01 | 只看该作者

硬件应该没有问题吧

我读的芯片id是1010,不知对不对?但是能读出来,是不是说明硬件没问题。

使用特权

评论回复
地板
computer00| | 2007-8-9 10:14 | 只看该作者

那就是软件设计有问题了。检查一下是否有清缓冲取,应答se

使用特权

评论回复
5
gradzz|  楼主 | 2007-8-9 10:21 | 只看该作者

这是我调试用到的程序部分,麻烦你看一下

void main(void)
{
   init_port();
   init_special_interrupts();
   MCU_D12CS = 0x1;
   MCU_D12CS = 0x0;
   bEPPflags.value = 0;
   reconnect_USB();
   while( TRUE ){

                if (bEPPflags.bits.bus_reset) {//设备复位处理
            DISABLE;
            bEPPflags.bits.bus_reset = 0;
            ENABLE;
            
        } 
               if (bEPPflags.bits.setup_packet){//Setup包处理
            DISABLE;
            bEPPflags.bits.setup_packet = 0;
            ENABLE;
            control_handler();//调用请求处理子程序
            D12SUSPD = 1;
        } 
    } 
}
//中断设置
void init_special_interrupts(void)
{
    IT1 = 0;
    EX1 = 1;
    PX1 = 0;
}

//I/O口初始化程序
void init_port()
{
    P0M1=0x00;
    P0M2=0x00;
    P1M1=0x3C;
    P1M2=0x3C;
    P2M1=0x00;
    P2M2=0x00;
    CS_LED=0;
    CS_KEYIN=1;
    CS_KEYOUT=0;
    INT_USB=1;
    P0=0X5F;
    P1=0X33;
    P2=0xFF;
    P2=0xFF;
    P2=0xFF;

    MCU_D12CS = 0x0;
    D12SUSPD = 0;
}
/断开USB总线
void disconnect_USB(void)
{
D12_SetMode(0x02,0x43);

}

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

D12_SetMode(0x12,0x43);

}
//重新连接到USB总线
void reconnect_USB(void)
{
    
    D12SUSPD = 0;
    disconnect_USB();
        delayms(10);
        connect_USB();
}
//模式设置
void D12_SetMode(unsigned char bConfig, unsigned char bClkDiv)
{
    if(bEPPflags.bits.in_isr == 0)
        DISABLE;

    outportb(D12_COMMAND, 0xF3);//设置模式
    outportb(D12_DATA, bConfig);
    outportb(D12_DATA, bClkDiv);

}
//读取中断寄存器
unsigned short D12_ReadInterruptRegister(void)
{
    unsigned char b1;
    unsigned int j;

    outportb(D12_COMMAND, 0xF4);//读取中断寄存器
    b1 = inportb(D12_DATA);
    j = inportb(D12_DATA);

    j <<= 8;
    j += b1;

    return j;
}
/输出数据
void outportb(unsigned int Addr, unsigned char Data)
{   WR=1;
    MCU_A0=Addr;
    P2=Data;
    WR=0;
    WR=1;

}

//输入数据
unsigned char inportb(unsigned int Addr)
{
    unsigned char rt;
    RD=1;
    MCU_A0=Addr;
    RD=0;
    rt=P2;
    RD=1;
    return rt;

}
//USB中断处理
usb_isr() interrupt 2
{
    DISABLE;
    fn_usb_isr();
    ENABLE;
}

//USB中断服务子程序
void fn_usb_isr()
{
    unsigned int i_st;

    bEPPflags.bits.in_isr = 1;

    i_st = D12_ReadInterruptRegister();//读取中断寄存器

    if(i_st != 0) {
        if(i_st & D12_INT_BUSRESET) {
            bus_reset();//USB总线服务
            bEPPflags.bits.bus_reset = 1;
        }

        if(i_st & D12_INT_ENDP0IN)
            ep0_txdone();//端点0IN中断
        if(i_st & D12_INT_ENDP0OUT)
            ep0_rxdone();//端点0OUT中断
        if(i_st & D12_INT_ENDP1IN)
            ep1_txdone();//端点1IN中断
        
    }

    bEPPflags.bits.in_isr = 0;
}

//总线复位处理子程序
void bus_reset(void)
{
}

使用特权

评论回复
6
gradzz|  楼主 | 2007-8-9 10:25 | 只看该作者

调试出现的现象

开始初始化,然后就是芯片id检测,中断寄存器读数为1010
然后连接usb,d12_setmode(0x02,0x43),这次中断寄存器读数为0xc0,然后是softconnect设置为1,中断寄存器读数还是0xc0,以后中断一直为低,读中断寄存器就一直为0x00了 

使用特权

评论回复
7
gradzz|  楼主 | 2007-8-9 10:37 | 只看该作者

computer00请看看

每次都会出现无法识别的设备,然后就没有响应了

使用特权

评论回复
8
computer00| | 2007-8-9 10:56 | 只看该作者

程序这么多,懒得看了。你可以参考一下我以前写的程序

使用特权

评论回复
9
gradzz|  楼主 | 2007-8-9 11:07 | 只看该作者

在哪里可以看到?

或者方便的话发我邮箱gradzz@163.com,十分感谢。

使用特权

评论回复
10
computer00| | 2007-8-9 12:08 | 只看该作者

去我的USB小组里找找


相关链接:http://group.**/93/

使用特权

评论回复
11
gradzz|  楼主 | 2007-8-9 14:24 | 只看该作者

枚举的时候到底会不会出现提示安装驱动程序

我的一直是无法识别的设备

使用特权

评论回复
12
古道热肠| | 2007-8-9 14:54 | 只看该作者

找个可行的D12评估装置做对比实验

  肯定能发现问题在哪,搞新东西一定要讲究战略战术,等你掌握了USB技术,再做开发时发现问题就很容易了。

使用特权

评论回复
13
computer00| | 2007-8-9 15:32 | 只看该作者

楼主,你的都还没开始枚举呢,连一个最基本的ACK都还没返

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

42

帖子

1

粉丝