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

 
 
> AT91RM9200 USB Host OHCI , HID Mouse., Как прочитать репорт мыши через канал управления?
Pat
сообщение Oct 17 2012, 14:32
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 421
Регистрация: 27-05-05
Из: Энергодар
Пользователь №: 5 480



Есть железо на базе AT91RM9200 в котором OHCI USB host.
На выходе UHP AT91RM9200 припаян Хаб TUSB2046B.
На данный момент реализованы управляющие (Control) запросы через OHCI, которыми читаю дескрипторы и управляю портами на выходе хаба.

На первом этапе стоит задача подключить мышь.
При подключении мыши определяем факт подключения, настраиваем поты хаба, делаем сброс порта ну и так далее…
Читаю дескрипторы мыши и ее отчетный дескриптор все получается.
После чего
1) Устанавливаю новый адрес мыши
2) Устанавливаю ее конфигурацию (Set_Configuration)
3) Для проверки читаю конфигурацию все ОК (Get_Configuration)
4) Устанавливаю отчетный протокол (пробовал и загрузочный) (Set_Protocol)
5) Тоже его читаю (Get_Protocol)
6) После чего пытаюсь прочитать отчет, через канал управления мыши и тут ничего не получается

Отчет читаю через специфический запрос HID Get_Report

Сам запрос
Код
     bmRequestType      =  0xA1  
     bRequest               =  0x01    //GET_REPORT  
     wValue                =  0x0100 //Тип отчета Report ID  
     wIndex                =  0x0000 //интерфейс если установить в 1 то ошибка
     wLength               =  0x0005  // Length

[/code]

{0xA1,0x01,0x00,0x01,0x00,0x00,0x05,0x00}

В ответ приходит мой Setup пакет и никаких ошибок передачи.
0xA1,0x01,0x00,0x01,0x00 что послал то и вернулось.
Функции для чтения дескрипторов и для отчета одни и те же.
Дескрипторы читаются правильно проверял снифером на ПК, а вот с отчетами не понятно.


Тот порядок настроек, который под цифрами 1-6 это последняя вариация пробовал по разному, как и по разному формировал запрос HID Get_Report.
В результате либо ошибка, а если нет ошибки, то возвращается сам запрос.
Также игрался с настройками периода передачи Set_Idle, но ничего не помогает.

По стандарту данные c устройства HID нужно читать через канал Interrupt IN, но так же можно через канал Control ENDP0.
Подскажите, что я делаю не так?
Go to the top of the page
 
+Quote Post



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

 


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


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