Hallo, Ich programmiere eine USB device funktionalität der LPC3250. Mein Device muss CDC (Communication Device Class) beherschen. Als Treiber hab ich Libusb und mein Gerät wurde erkannt. Das Problem ist dass der Host keine SET_CONFIGURATION Anfrage schickt. daraus verstehe ich dass das Gerät nicht richtig konfiguriert ist. kann mir jemanden helfen und sagen was ich da falsch mache? so sehen meine Deskriptoren aus: // Device Descriptor const unsigned char USB_DeviceDesc[] = { USB_DEVICE_DESC_SIZE , USB_DEVICE_DESCRIPTOR_TYPE, WBVAL(0x0200), 0x02, 0x00, 0x00, MAX_PACKET_SIZE, WBVAL(0x03EB), WBVAL(0x204B), WBVAL(0x0120), 0x01, 0x02, 0x00, 0x01, }; /******Configuration descriptor*******/ const unsigned char USB_ConfigDesc[] = { USB_CONFIGUARTION_DESC_SIZE, USB_CONFIGURATION_DESCRIPTOR_TYPE, WBVAL(0x0020), 0x02, 0x01, 0x03, 0xA0, 0x32, //USB communication Interface Descriptor USB_INTERFACE_DESC_SIZE, USB_INTERFACE_DESCRIPTOR_TYPE, 0x01, 0x00, 0x01, 0x02, 0x02, 0x01, 0x04, //Sample Communications Class Specific Interface Descriptor 0x05, 0x24, 0x00, WBVAL(0x0110), 0x04, 0x24, 0x02, 0x0F, 0x05, 0x24, 0x06, 0x00, 0x01, 0x05, 0x24, 0x01, 0x03, 0x01, //USB Standard Endpoint Descriptor USB_ENDPOINT_DESC_SIZE, USB_ENDPOINT_DESCRIPTOR_TYPE, 0x83, 0x03, WBVAL(0x0040), 0x0A, //USB Data Interface Descriptor USB_INTERFACE_DESC_SIZE, USB_INTERFACE_DESCRIPTOR_TYPE, 0x01, 0x00, 0x02, 0x0A, 0x00, 0x00, 0x05, //USB Endpoint Descriptor USB_ENDPOINT_DESC_SIZE, USB_ENDPOINT_DESCRIPTOR_TYPE, 0x04, 0x02, WBVAL(0x0040), 0x00, //USB Endpoint Descriptor USB_ENDPOINT_DESC_SIZE, USB_ENDPOINT_DESCRIPTOR_TYPE, 0x85, 0x02, WBVAL(0x0040), 0x00, }; ich bedanke mich, Amal
Hallo Amal Nada,
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
0x0020 = Größe des Config-Dsc. Zähl mal nach! Gruß Ralf
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.