Easyelectronics.ru

Электроника для всех
Текущее время: 22 янв 2021, 21:17

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: V-USB с различными Report-ID
СообщениеДобавлено: 29 ноя 2019, 10:38 
Здравствуйте!

Зарегистрирован: 20 мар 2016, 19:12
Сообщения: 3
Здравствуйте, уважаемые форумчане!
Не могу никак раскурить использование V-USB с различными Report ID.
За основу решил взять проект http://we.easyelectronics.ru/electro-and-pc/usb-dlya-avr-chast-2-hid-class-na-v-usb.html
Идея:
сделать отправку и прием тех же трех байт, но в структуре, состоящей из одного байта (пока). Различать их внутри по Report ID.
Для чего:
Довольно часто, как мне кажется, требуется запулить в МК кучу данных, а получать с него мало или же наоборот.
Реализация:
Соответственно, для написания дескриптора использовал программу HID Descriptor Tool (весьма неудобная для экспорта, либо я что-то не понял). Также были некоторые разночтения между дескриптором проекта и дескриптором, выдаваемым этим самым тулом. При этом доверия больше к исходнику, так как все завелось) В итоге использовал за основу дескриптор исходника с добавлением Report ID.

В AVR Studio:
Данные
Show Данные

Дескриптор
Show Дескриптор

Вопросы:
1) Как необходимо реализовать функцию usbFunctionSetup для разделения по Report ID?
Show

2) Как поменять функции usbFunctionRead и usbFunctionWrite, чтобы заполнялись/записывались данные также по Report ID?
Show usbFunctionRead

Show usbFunctionWrite

3) Как реализовать это на стороне хоста в Bulder'е? Для передачи просто приписывать первым байтом Report ID, а при приеме различать по первому байту?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: V-USB с различными Report-ID
СообщениеДобавлено: 29 ноя 2019, 15:41 
Старожил

Зарегистрирован: 28 янв 2012, 21:27
Сообщения: 310
Откуда: Питер
Проект с разделением данных по ReportID: https://github.com/BBS215/STM8S-VUSB-KEYBOARD и прога на builder: https://github.com/BBS215/SetupKeysGUI
1) Почему в дескрипторе ReportID идёт вторым байтом?
2) REPORT_COUNT - не должен включать размер байта ReportID
3) Почему Feature report, а не input или output?
Вообще по дескрипторам есть много вопросов, ну да ладно.
По вашим вопросам:
1) https://github.com/BBS215/STM8S-VUSB-KE ... ter/main.c - см. ф-цию USB_Setup_Request_callback
2) Я чёто даже не понял, что должны делать эти ф-ции
3) Да, ReportID - это первый (нулевой) байт при чтении и записи Report. https://github.com/BBS215/SetupKeysGUI/ ... etupkeys.c


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: ИммоБокс


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB