реклама на сайте
подробности

 
 
> Запуск USB
grau
сообщение May 22 2007, 12:16
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 3-02-05
Пользователь №: 2 390



Salute!

Для освоения USB решил воспользоваться примером HID от Keil. Чип - LPC2148.

Запустил железку, на ПК сделал файл - данные гоняются туда и обратно.

Теперь хочу увеличить скорость. Правильно ли понимаю, что для увеличения скорости достаточно объявить еще одну конечную точку, добавить к репорту идентефикатор и как раньше читать данные из файла?

И еще вопросик. Изменил дескриптор из примера, чтоб переназначить поток с первой EP на четвертую.
USB_ENDPOINT_IN(4), /* bEndpointAddress */
после чего связь с устройством установить не удается. Может еще чего подправить надо было?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Слава_2
сообщение May 23 2007, 09:18
Сообщение #2





Группа: Новичок
Сообщений: 8
Регистрация: 21-05-07
Пользователь №: 27 850



Цитата(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 включить в устройстве.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 13:29
Рейтинг@Mail.ru


Страница сгенерированна за 0.01371 секунд с 7
ELECTRONIX ©2004-2016