Пытаюсь запустить mass storage на отладочной плате StarterKit c LPC2478
Начальная стандартная инициализация проходит успешно.
При получении запроса Get max LUN отвечаю 1 (устройство с двумя дисками), но после этого происходит сброс USB, хотя вроде должен быть первый SCSI запрос (так происходит в рабочем кардридере).
До запроса Get max LUN в регистре REALIZED_EP биты для Endpoint 2 установлены, сразу после него - сброшены.
Для передачи данных используется Endpoint 2, на прием и на передачу.
Используется второй USB порт.
Вот дескрипторы:
CODE
/* USB Standard Device Descriptor */
const unsigned char DevDescriptor[] = {
18, /* bLength */
0x01, /* bDescriptorType */
0x10,0x01, /* bcdUSB */
0x00, /* bDeviceClass */
0x00, /* bDeviceSubClass */
0x00, /* bDeviceProtocol */
64, /* bMaxPacketSize0 */
0x51,0xC2, // VID
0x03,0x17, // PID
0x00,0x01, // Version
0x01, /* iManufacturer */
0x02, /* iProduct */
0x03, /* iSerialNumber */
0x01 /* bNumConfigurations */
};
/* USB Configuration Descriptor */
/* All Descriptors (Configuration, Interface, Endpoint, Class, Vendor */
const unsigned char ConfigDescriptor[] = {
/* Configuration 1 */
0x09, /* bLength */
0x02, /* bDescriptorType */
32,0, // wTotalLength = Configuration + Interface + 2 endpoint
0x01, /* bNumInterfaces */
0x01, /* bConfigurationValue */
0x00, /* iConfiguration */
0xC0, // Self powered
0x01, // bMaxPower
/* Interface 0, Alternate Setting 0, MSC Class */
0x09, /* bLength */
0x04, /* bDescriptorType */
0x00, /* bInterfaceNumber */
0x00, /* bAlternateSetting */
0x02, /* bNumEndpoints */
0x08, /* bInterfaceClass - Storage*/
0x06, /* bInterfaceSubClass - SCSI*/
0x50, /* bInterfaceProtocol */
0x00, /* iInterface */
/* Bulk In Endpoint */
0x07, /* bLength */
0x05, /* bDescriptorType */
0x02, /* bEndpointAddress */
0x02, /* bmAttributes */
0x40,0x00, /* wMaxPacketSize */
0, /* bInterval */
/* Bulk Out Endpoint */
0x07, /* bLength */
0x05, /* bDescriptorType */
0x82, /* bEndpointAddress */
0x02, /* bmAttributes */
0x40,0x00, /* wMaxPacketSize */
0, /* bInterval */
};
Сообщение отредактировал Chameleon - Oct 23 2012, 15:54