Цитата(grau @ May 22 2007, 15:16)

Salute!
Для освоения USB решил воспользоваться примером HID от Keil. Чип - LPC2148.
Запустил железку, на ПК сделал файл - данные гоняются туда и обратно.
Теперь хочу увеличить скорость. Правильно ли понимаю, что для увеличения скорости достаточно объявить еще одну конечную точку, добавить к репорту идентефикатор и как раньше читать данные из файла?
И еще вопросик. Изменил дескриптор из примера, чтоб переназначить поток с первой EP на четвертую.
USB_ENDPOINT_IN(4), /* bEndpointAddress */
после чего связь с устройством установить не удается. Может еще чего подправить надо было?
>Теперь хочу увеличить скорость. Правильно ли понимаю, что для увеличения скорости достаточно объявить еще одну конечную точку, добавить к репорту идентефикатор и как раньше читать данные из файла?
Если так, то надо еще один интерфейс HID-устройства добавить.
Можно по другому:
1) Файл usbdesc.c - дескриптор HID-устройства HID_ReportDescriptor - здесь все надо менять. Например так попробовать.
const BYTE HID_ReportDescriptor[30] = {
6, 0, 0xFF, //Usage_Page (Vendor Defined)
9, 1, //Usage (I/O Device)
0xA1, 0x80,//1, // Collection (Application)
0x85, ReportID, // REPORT_ID (>30 - репорт, какой надо)
0x19, 1, // Usage_Minimum
0x29, 1, // Usage_Maximum
0x15, 0, // Logical_Minimum (0)
0x25, 0xff, // Logical_Maximum (255)
0x75, 8, // Report_Size (8 bit)
0x95, ReportCount, // Report_Count (8, 16, 64 bytes - по вашему желанию)
0x81, 2, // Input (Data,Var,Abs)
0x19, 1, // Usage_Minimum
0x29, 1, // Usage_Maximum
0x91, 2, // Output (Data,Var,Abs)
0xC0 // End_Collection
};
2) Файл usbdesc.c - дескриптор USB-устройства USB_ConfigDescriptor - элемент bInterval поставить 1 вместо 20.
3) Неплохо бы познакомится с документами со странички
http://www.usb.org/developers/hidpage/. Или c книгой "Практика программирования USB" Агурова.
4) Переписать пример в Windows, чтобы репорт нужного размера забирал. Причем наверх из устройства нужно всегда отправлять пакет, начинающийся с байта REPORT_ID. Иначе hid.dll отбросит ваш ответ.
>И еще вопросик. Изменил дескриптор из примера, чтоб переназначить поток с первой EP на четвертую.
Возможно просто забыли EP4 включить в устройстве.