|
|
  |
Конфигурация USB |
|
|
|
Sep 26 2008, 06:57
|
Частый гость
 
Группа: Участник
Сообщений: 104
Регистрация: 30-06-05
Из: С-Петербург
Пользователь №: 6 406

|
Добрый день.
В структуре "Device descriptor", которая описывает USB устройство, есть поля "iManufacturer" и "iProduct", которые указывают на строки описывающие производителя и устройство.
Для того, чтобы использовать описания, полям присваиваются значения отличные от нуля.
Вопрос в следующем, каким образом осуществляется связь строки со структурой "Device descriptor".
Спасибо.
--------------------
Hemos Pasado
|
|
|
|
|
Sep 26 2008, 08:46
|
Частый гость
 
Группа: Участник
Сообщений: 104
Регистрация: 30-06-05
Из: С-Петербург
Пользователь №: 6 406

|
Цитата(aaarrr @ Sep 26 2008, 10:03)  В Device Descriptor указывается номер строки. На запрос хоста GET_DESCRIPTOR STRING с этим номером возвращаете нужную строку. Если правильно понял: GET_DESCRIPTOR - bRequest = 0x06, bmRequestType = 0x80 А значение wValue - в младшем байте = iManufacturer, в старшем байте = 0x03 (тип дескриптора строки) И в ответ на этот запрос передавать строку (в нужном формате)? Все правильно?
Сообщение отредактировал Troll - Sep 26 2008, 08:47
--------------------
Hemos Pasado
|
|
|
|
|
Sep 26 2008, 10:53
|
Частый гость
 
Группа: Участник
Сообщений: 104
Регистрация: 30-06-05
Из: С-Петербург
Пользователь №: 6 406

|
Чего-то я не понимаю.
0x01, // iManufacturer 0x02, // iProduct 0x03, // SerialNumber
В параметре wValue от хоста должны последовательно приходить значения 0х01 0х03, 0х02 0х03, 0х03 0х03 () на чтение этих строк. А приходит 3 раза запрос 0х00, 0х03.
Что может быть не так?
PS: использую Atmel контроллер и за основу взят пример BasicUSB.
--------------------
Hemos Pasado
|
|
|
|
|
Sep 26 2008, 11:38
|
Частый гость
 
Группа: Участник
Сообщений: 104
Регистрация: 30-06-05
Из: С-Петербург
Пользователь №: 6 406

|
Добавил обработку кода 0x00,0x03
Отправляю данные const char LangID[] = {0x04,0x09};
Все равно он только язык и запрашивает. От значений параметров языка, что-нибудь зависит?
--------------------
Hemos Pasado
|
|
|
|
|
Sep 26 2008, 11:48
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Troll @ Sep 26 2008, 15:38)  Отправляю данные const char LangID[] = {0x04,0x09}; Для English (United States) должно быть 0x09, 0x04, т.е. полный пакет 0x04, 0x03, 0x09, 0x04. Цитата(Troll @ Sep 26 2008, 15:38)  От значений параметров языка, что-нибудь зависит? Весьма вероятно.
|
|
|
|
|
Sep 29 2008, 03:14
|
Частый гость
 
Группа: Участник
Сообщений: 104
Регистрация: 30-06-05
Из: С-Петербург
Пользователь №: 6 406

|
Цитата(aaarrr @ Sep 26 2008, 14:48)  Для English (United States) должно быть 0x09, 0x04, т.е. полный пакет 0x04, 0x03, 0x09, 0x04. Точно.  Под вечер запарился и забыл что нужен еще и заголовок. aaarrr, спасибо большое за помощь. To addi, спасибо читал. Сейчас моя "настольная книга".
--------------------
Hemos Pasado
|
|
|
|
|
Sep 29 2008, 08:41
|
Частый гость
 
Группа: Участник
Сообщений: 104
Регистрация: 30-06-05
Из: С-Петербург
Пользователь №: 6 406

|
Цитата(Troll @ Sep 26 2008, 14:38)  От значений параметров языка, что-нибудь зависит? Да, точно зависит. При значениях отличных от 0х09, 0х04 данные не запрашиваются.
--------------------
Hemos Pasado
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|