Thomas Z. schrieb:
Da fehlen noch so einige:
USB Reset
USB Suspend
USB SetAddress
USB SetConfiguration
Vermutung: du wertest wLength nicht richtig aus. Bei Fehlern fängt USBD
immer wieder von vorne an.
Zeig doch mal deine Deskriptoren
Ich hab nur die mehrfachen aufgezählt. Die die du da auflistest kommen eh, aber eben nur einmal (ausser dem BUS Reset, aber das ist ja nicht wirklich ein Request).
Komplettes Log wenn Gerät "zum ersten Mal" angesteckt:
###########################
BUS RESET
BUS RESET
SETUP: 80 06 00 01 00 00 40 00 - Get Standard Device Descriptor (Len:40)
IN 12: 12 01 00 02 FF 00 00 40 11 01 11 11 04 00 01 02 03 01
OUT (ACK)
BUS RESET
SETUP: 00 05 01 00 00 00 00 00 - Set Address: 01
IN (ACK)
SETUP: 80 06 00 01 00 00 12 00 - Get Standard Device Descriptor (Len:12)
IN 12: 12 01 00 02 FF 00 00 40 11 01 11 11 04 00 01 02 03 01
OUT (ACK)
SETUP: 80 06 00 02 00 00 FF 00 - Get Standard Configuration Descriptor (Len:FF)
IN 20: 09 02 20 00 01 01 00 C0 32 09 04 00 00 02 FF 00 00 00 07 05 81 02 40 00 00 07 05 02 02 40 00 00
OUT (ACK)
SETUP: 80 06 EE 03 00 00 12 00 - Get Standard String Descriptor Index:EE (Len:12)
IN 12: 12 03 4D 00 53 00 46 00 54 00 31 00 30 00 30 00 21 00
OUT (ACK)
SETUP: 80 06 03 03 09 04 FF 00 - Get Standard String Descriptor Index:03 (Len:FF) (Serial Number)
IN 08: 08 03 43 00 43 00 50 00
OUT (ACK)
SETUP: C0 21 00 00 04 00 10 00 - Get MS Compatible ID Feature Descriptor (Len:10)
IN 10: 28 00 00 00 00 01 04 00 01 00 00 00 00 00 00 00
OUT (ACK)
SETUP: C0 21 00 00 04 00 28 00 - Get MS Compatible ID Feature Descriptor (Len:28)
IN 28: 28 00 00 00 00 01 04 00 01 00 00 00 00 00 00 00 00 01 57 49 4E 55 53 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
OUT (ACK)
SETUP: 80 06 00 03 00 00 FF 00 - Get Standard String Descriptor Index:00 (Len:FF) (Language)
IN 04: 04 03 09 04
OUT (ACK)
SETUP: 80 06 02 03 09 04 FF 00 - Get Standard String Descriptor Index:02 (Len:FF) (Product)
IN 14: 14 03 47 00 42 00 55 00 20 00 23 00 31 00 20 00 76 00 30 00
OUT (ACK)
SETUP: 80 06 00 06 00 00 0A 00 - Get Standard Device Qualifier Descriptor Index:00 (Len:0A)
STALL
SETUP: C1 21 00 00 05 00 0A 00 - Get MS Extended Properties OS Feature Descriptor (Len:0A)
IN 0A: 8E 00 00 00 00 01 05 00 01 00
OUT (ACK)
SETUP: C1 21 00 00 05 00 8E 00 - Get MS Extended Properties OS Feature Descriptor (Len:8E)
IN 40: 8E 00 00 00 00 01 05 00 01 00 84 00 00 00 01 00 00 00 28 00 44 00 65 00 76 00 69 00 63 00 65 00 49 00 6E 00 74 00 65 00 72 00 66 00 61 00 63 00 65 00 47 00 55 00 49 00 44 00 00 00 4E 00 00 00
IN 40: 7B 00 30 00 31 00 31 00 42 00 42 00 34 00 38 00 39 00 2D 00 38 00 31 00 31 00 45 00 2D 00 34 00 44 00 37 00 42 00 2D 00 41 00 33 00 34 00 38 00 2D 00 30 00 34 00 31 00 42 00 33 00 46 00 38 00
IN 0E: 37 00 32 00 38 00 38 00 34 00 7D 00 00 00
OUT (ACK)
SETUP: 80 06 00 01 00 00 12 00 - Get Standard Device Descriptor (Len:12)
IN 12: 12 01 00 02 FF 00 00 40 11 01 11 11 04 00 01 02 03 01
OUT (ACK)
SETUP: 80 06 00 02 00 00 09 00 - Get Standard Configuration Descriptor (Len:09)
IN 09: 09 02 20 00 01 01 00 C0 32
OUT (ACK)
SETUP: 80 06 00 02 00 00 20 00 - Get Standard Configuration Descriptor (Len:20)
IN 20: 09 02 20 00 01 01 00 C0 32 09 04 00 00 02 FF 00 00 00 07 05 81 02 40 00 00 07 05 02 02 40 00 00
OUT (ACK)
SETUP: 80 00 00 00 00 00 02 00 - Get Status
IN 02: 01 00
OUT (ACK)
SETUP: 00 09 01 00 00 00 00 00 - Set Configuration: 01
IN (ACK)
SETUP: 80 06 00 03 00 00 FF 00 - Get Standard String Descriptor Index:00 (Len:FF) (Language)
IN 04: 04 03 09 04
OUT (ACK)
SETUP: 80 06 01 03 09 04 FF 00 - Get Standard String Descriptor Index:01 (Len:FF) (Manufacturer)
IN 2C: 2C 03 49 00 6E 00 67 00 2E 00 20 00 47 00 65 00 72 00 6E 00 6F 00 74 00 20 00 53 00 63 00 68 00 72 00 65 00 69 00 6E 00 65 00 72 00
OUT (ACK)
SETUP: 80 06 02 03 09 04 FF 00 - Get Standard String Descriptor Index:02 (Len:FF) (Product)
IN 14: 14 03 47 00 42 00 55 00 20 00 23 00 31 00 20 00 76 00 30 00
OUT (ACK)
###########################
Die vielen Retrys sind aus einem älteren Log, wo noch nicht alles in Ordnung war. Jetzt ist's besser und die "echten" Retrys sind weniger:
Device Descriptor, Configuration Descriptor, Language, Product.