Примеры - это хорошо :-) Вот посмотрел пример от микрчипа для PIC18 - те же самые две точки. А почему же тогда WinXp не видет? Конфигурация один в один с примерами. При инициализации доходит до Set_Configure (эту команду хост уже не отправляет) и замолкает на 20 секунд (за этот период он опять пытается прочитать дескриптор конфигурации). После этого говорит, что девайс не определен :-(
Чтобы не быть голословным - приветду пример заполнения структуры конфигурации:
const char cfgDescriptor[] = { 0x09, // CbLength 0x02, // CbDescriptorType 32, // CwTotalLength 2 EP + Control 0x00, 0x01, // CbNumInterfaces 0x01, // CbConfigurationValue 0x00, // CiConfiguration 0x80, // CbmAttributes 100, // CMaxPower /* Bult-Only data interface discriptor */ 0x09, // bLength 0x04, // bDescriptorType 0x00, // bInterfaceNumber 0x00, // bAlternateSetting 0x02, // bNumEndpoints 8, // bInterfaceClass 6, // bInterfaceSubclass - SCSI 0x50, // bInterfaceProtocol - BULK-only transport 0x00, // iInterface /* Endpoint 1 descriptor */ 0x07, // bLength 0x05, // bDescriptorType 0x81, // bEndpointAddress, Endpoint 01 - in 0x02, // bmAttributes BULK 0x40, // wMaxPacketSize 0x00, 0x00, // bInterval
/* Endpoint 2 descriptor */ 0x07, // bLength 0x05, // bDescriptorType 0x02, // bEndpointAddress, Endpoint 02 - out 0x02, // bmAttributes BULK 0x40, // wMaxPacketSize 0x00, 0x00, // bInterval };
Может это поможет разобраться.
|