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

 
 
> Особенности at90usb162 - USB HID feature Get репорт.
QuickWitted
сообщение Jul 18 2012, 17:10
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596



Здравствуйте.

Не подскажет ли доброуважаемый Алл
куда физически приходит запрос на feature Get репорт в at90usb162?
(Что теоретически он в нулевой едпоинт приходит - знаю).

пред история:

Я разрабатываю очередной не коммерческий USB девайс на at90usb162
(для общего пользования)

Потребовалось ввести report_feature в приложение. Раньше на меге8
и асме я легко ее вводил - там юсб софтовый и если написано что он
приходит в 0 ендпоинт, оно туда и приходит...

а точнее он приходил в 0 ендпоинте в блок установки адреса устройства,
вот сюда
.def MyUpdatedAddress =R14 ;my USB address for update
.def MyAddress =R15 ;my USB address

Тот мой проект работает до сих пор ( http://mindrunway.ru/SUps2.html )

Но с аппаратным USB на at90usb162 возникли небольшие грабли...
Для простоты я решил полностью повторить софтовый проект и отладить обмен.
(т.е. дескриптор правильный и софт с ним работает)

В общем, отправить содержимое Get репорта без запроса - я могу...
Set репорт приходит в мой асмовый аналог сишной usb_process_request() и нормально отлавливается.
но вот отловить запрос, по которому надо ШТАТНО отправить Get репорт - у меня не получается.
(в аппаратном юсб адрес выставляется без участия программы пользователя и наработки софтового
юсб немного не применимы)

т.е. проблема в том, что Get репорт не меняет содержимое UEINTX у нулевого ендпоинта
(повторюсь Set репорт меняет там бит RXSTPI и отлавливается)...
(повторюсь в софтовом варианте Гет приходит в 0 ендпоинт в процедуру установки адреса устройства)

В енете долго и упорно искал - с нулевым результатом...

Точнее из готовых примеров на feature репорт есть только пример входа в бут блок.
(это тот же Set репорт только с ошибкой в подтверждении приема данных для компа,
но для бут блока это не важно, получил команду и в бут...)


--------------------
Сайт с разработками http://www.mindrunway.ru/
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
vgo1
сообщение Jul 20 2012, 11:59
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 28-05-12
Пользователь №: 72 050



Я STALL посылаю когда получаю такой SETUP, на который мой прибор не может ответить. Делаю это установкой бита STALLRQ в UECONX. По даташиту после этого прибор должен STALL-ом ответить на все последующие SETUP-ы, но я этого не замечал. Мое устройство после этого получает новые SETUP-ы и я их обрабатываю. Бит
STALLEDI устанавливается после посылки STALL. Я его стираю простым обнулением во время handshake фазы в Status Stage-е, вместе с RXSTPI, при следующем трансфере. Вроде больше ничего не надо.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 26th August 2025 - 03:06
Рейтинг@Mail.ru


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