O que há de diferente entre o XP e o Win7 ao manusear um dispositivo composto USB?

3

Eu desenvolvi um dispositivo USB usando um LPC2148 e a pilha USB LPCUSB . Ele funciona bem quando eu o defino como um dispositivo HID (um teclado), mas quando o defino como um dispositivo composto, armazenamento (SD Flash Card) e HID, ele só funciona no Windows XP. Eu tentei em dois computadores com Windows 7 diferentes e ambos me mostraram que o dispositivo não pode ser iniciado (erro de código 10).

Eu usei dois softwares para rastrear o USB (USBTrace e USBlyzer) e não consegui encontrar o que está acontecendo. O dispositivo é mostrado como instalado no Win 7, exceto pelo fato de afirmar que não pode ser iniciado nas propriedades do dispositivo de hardware. Então, alguém sabe o que é diferente entre o XP e o Win7 ao manusear um dispositivo USB?

Aqui é o descritor no código fonte e abaixo está a saída do USBlyzer:

Connection Status Device connected 
Current Configuration 0 
Speed Full (12 Mbit/s) 
Device Address 5 
Number Of Open Pipes 0 

* Device Descriptor Teleboard
Offset  Field               Size    Value   Description 
0       bLength             1       12h     
1       bDescriptorType     1       01h     Device  
2       bcdUSB              2       0200h   USB Spec 2.0    
4       bDeviceClass        1       00h     Class info in Ifc Descriptors   
5       bDeviceSubClass     1       00h     
6       bDeviceProtocol     1       00h     
7       bMaxPacketSize0     1       40h     64 bytes    
8       idVendor            2       FFFFh       
10      idProduct           2       0003h       
12      bcdDevice           2       0100h   1.00    
14      iManufacturer       1       01h     "Acme"  
15      iProduct            1       02h     "Testboard" 
16      iSerialNumber       1       03h     "ADR2012"   
17      bNumConfigurations  1       01h     

* Configuration Descriptor 1 
Configuration   Descriptor  1   
Offset  Field               Size    Value   Description 
0       bLength             1       09h     
1       bDescriptorType     1       02h     Configuration   
2       wTotalLength        2       0042h       
4       bNumInterfaces      1       02h     
5       bConfigurationValue 1       01h     
6       iConfiguration      1       00h     
7       bmAttributes        1       C0h     Self Powered    
          4..0: Reserved        ...00000            
          5:    Remote Wakeup   ..0.....    No  
          6:    Self Powered    .1......    Yes 
          7:    Reserved        1.......
          (bus-powered for 1.0)     
8       bMaxPower           1       32h     100 mA  

* Interface Descriptor 0/0 Mass Storage, 2 Endpoints
Offset  Field               Size    Value   Description 
0       bLength             1       09h     
1       bDescriptorType     1       04h     Interface   
2       bInterfaceNumber    1       00h     
3       bAlternateSetting   1       00h     
4       bNumEndpoints       1       02h     
5       bInterfaceClass     1       08h     Mass Storage    
6       bInterfaceSubClass  1       06h     SCSI Transparent Command Set    
7       bInterfaceProtocol  1       50h     Bulk-Only Transport 
8       iInterface          1       00h     

* Endpoint Descriptor 85 5 In, Bulk, 64 bytes
Offset  Field               Size    Value   Description 
0       bLength             1       07h     
1       bDescriptorType     1       05h     Endpoint    
2       bEndpointAddress    1       85h     5 In    
3       bmAttributes        1       02h     Bulk    
          1..0: Transfer Type   ......10    Bulk    
          7..2: Reserved        000000..            
4       wMaxPacketSize  2       0040h       64 bytes    
6       bInterval   1   00h     

* Endpoint Descriptor 02 2 Out, Bulk, 64 bytes
Offset  Field               Size    Value   Description 
0       bLength             1       07h     
1       bDescriptorType     1       05h     Endpoint    
2       bEndpointAddress    1       02h     2 Out   
3       bmAttributes        1       02h     Bulk    
          1..0: Transfer Type   ......10    Bulk    
          7..2: Reserved        000000..            
4       wMaxPacketSize      2       0040h   64 bytes    
6       bInterval           1       00h     

* Interface Descriptor 1/0 HID, 1 Endpoint
Offset  Field               Size    Value   Description 
0       bLength             1       09h     
1       bDescriptorType     1       04h     Interface   
2       bInterfaceNumber    1       01h     
3       bAlternateSetting   1       00h     
4       bNumEndpoints       1       01h     
5       bInterfaceClass     1       03h     HID 
6       bInterfaceSubClass  1       00h     
7       bInterfaceProtocol  1       01h     
8       iInterface          1       00h     


* HID Descriptor 
Offset  Field               Size    Value   Description 
0       bLength             1       09h     
1       bDescriptorType     1       21h     HID 
2       bcdHID              2       0110h   1.10    
4       bCountryCode        1       00h     
5       bNumDescriptors     1       01h     
6       bDescriptorType     1       22h     Report  
7       wDescriptorLength   2       0040h   64 bytes    

* Endpoint Descriptor 81 1 In, Interrupt, 32 ms
Offset  Field               Size    Value   Description 
0       bLength             1       07h     
1       bDescriptorType     1       05h     Endpoint    
2       bEndpointAddress    1       81h     1 In    
3       bmAttributes        1       03h     Interrupt   
          1..0: Transfer Type   ......11    Interrupt   
          7..2: Reserved        000000..            
4       wMaxPacketSize      2       0008h   8 bytes 
6       bInterval           1       20h     32 ms   

* String Descriptor 
Offset  Field               Size    Value   Description 
0       bLength             1       04h     
1       bDescriptorType     1       03h     String  
2       wLANGID[0]          2       0409h   English (United States) 
    
por Adriano P 08.09.2012 / 18:51

0 respostas