Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


 
Опции темы

STM32 + USB HID

Непрочитано 02.03.2016, 09:35  
SMACK
Временная регистрация
 
Регистрация: 23.05.2006
Сообщений: 60
Сказал спасибо: 8
Сказали Спасибо 1 раз в 1 сообщении
SMACK на пути к лучшему
По умолчанию Re: STM32 + USB HID

64 байта эта длинна одного пакета, который может быть передан в текущий момент. Но сама транзакция может быть куда больше, просто она будет разделена на какое то количество пакетов по 64 байт
Реклама:
SMACK вне форума  
Непрочитано 16.06.2016, 20:06  
EugenPKH
Прописка
 
Регистрация: 08.10.2009
Сообщений: 101
Сказал спасибо: 2
Сказали Спасибо 11 раз(а) в 10 сообщении(ях)
EugenPKH на пути к лучшему
По умолчанию Re: STM32 + USB HID

У меня тоже возник небольшой вопрос про HID, есть две TLC мышь и клавиатура , когда HOST запрашивает данные для какой коллекции я должен давать ответ , и как ответить есть одновременно и мышь и клавиатура сработала .
EugenPKH вне форума  
Непрочитано 17.06.2016, 07:19  
pambaru
Почётный гражданин KAZUS.RUN
 
Регистрация: 24.03.2007
Сообщений: 1,394
Сказал спасибо: 85
Сказали Спасибо 672 раз(а) в 392 сообщении(ях)
pambaru на пути к лучшему
По умолчанию Re: STM32 + USB HID

Сообщение от EugenPKH Посмотреть сообщение
У меня тоже возник небольшой вопрос про HID, есть две TLC мышь и клавиатура , когда HOST запрашивает данные для какой коллекции я должен давать ответ , и как ответить есть одновременно и мышь и клавиатура сработала .
Думаю, сначала нужно посмотреть протокол обмена при подключении к компу, тогда много прояснится.
Возьмите программу типа USBlyzer, посмотрите логи обмена данными.
pambaru вне форума  
Непрочитано 17.06.2016, 09:28  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: STM32 + USB HID

Похоже, просто устройство комплексное. Самое сложное - правильная конфигурация. А потом данные просто идут по разным endpoint'ам.
Easyrider83 вне форума  
Непрочитано 17.06.2016, 11:17  
EugenPKH
Прописка
 
Регистрация: 08.10.2009
Сообщений: 101
Сказал спасибо: 2
Сказали Спасибо 11 раз(а) в 10 сообщении(ях)
EugenPKH на пути к лучшему
По умолчанию Re: STM32 + USB HID

Сообщение от pambaru Посмотреть сообщение
Думаю, сначала нужно посмотреть протокол обмена при подключении к компу, тогда много прояснится.
Возьмите программу типа USBlyzer, посмотрите логи обмена данными.
USBlyzer ничего не покажет кроме дискрипторов . Я сам делаю на стм устройство и так как не знаю как правильно ответить хосту то и передачи не будет.
EugenPKH вне форума  
Непрочитано 17.06.2016, 11:27  
EugenPKH
Прописка
 
Регистрация: 08.10.2009
Сообщений: 101
Сказал спасибо: 2
Сказали Спасибо 11 раз(а) в 10 сообщении(ях)
EugenPKH на пути к лучшему
По умолчанию Re: STM32 + USB HID

Сообщение от Easyrider83 Посмотреть сообщение
Похоже, просто устройство комплексное. Самое сложное - правильная конфигурация. А потом данные просто идут по разным endpoint'ам.
Код:
   0x05, 0x01, /* Usage Page (Generic Desktop)             */
    0x09, 0x02, /* Usage (Mouse)                            */
    0xA1, 0x01, /* Collection (Application)                 */
    0x09, 0x01, /*  Usage (Pointer)                         */
    0xA1, 0x00, /*  Collection (Physical)                   */
    0x85, 0x01,  /*   Report ID  */
    0x05, 0x09, /*      Usage Page (Buttons)                */
    0x19, 0x01, /*      Usage Minimum (01)                  */
    0x29, 0x03, /*      Usage Maximum (03)                  */
    0x15, 0x00, /*      Logical Minimum (0)                 */
    0x25, 0x01, /*      Logical Maximum (0)                 */
    0x95, 0x03, /*      Report Count (3)                    */
    0x75, 0x01, /*      Report Size (1)                     */
    0x81, 0x02, /*      Input (Data, Variable, Absolute)    */
    0x95, 0x01, /*      Report Count (1)                    */
    0x75, 0x05, /*      Report Size (5)                     */
    0x81, 0x01, /*      Input (Constant)    ;5 bit padding  */
    0x05, 0x01, /*      Usage Page (Generic Desktop)        */
    0x09, 0x30, /*      Usage (X)                           */
    0x09, 0x31, /*      Usage (Y)                           */
    0x15, 0x81, /*      Logical Minimum (-127)              */
    0x25, 0x7F, /*      Logical Maximum (127)               */
    0x75, 0x08, /*      Report Size (8)                     */
    0x95, 0x02, /*      Report Count (2)                    */
    0x81, 0x06, /*      Input (Data, Variable, Relative)    */
    0xC0, 0xC0,/* End Collection,End Collection            */
//
    0x09, 0x06, /*		Usage (Keyboard)                    */
    0xA1, 0x01, /*		Collection (Application)            */
    0x85, 0x02,  /*   Report ID  */
    0x05, 0x07, /*  	Usage (Key codes)                   */
    0x19, 0xE0, /*      Usage Minimum (224)                 */
    0x29, 0xE7, /*      Usage Maximum (231)                 */
    0x15, 0x00, /*      Logical Minimum (0)                 */
    0x25, 0x01, /*      Logical Maximum (1)                 */
    0x75, 0x01, /*      Report Size (1)                     */
    0x95, 0x08, /*      Report Count (8)                    */
    0x81, 0x02, /*      Input (Data, Variable, Absolute)    */
    0x95, 0x01, /*      Report Count (1)                    */
    0x75, 0x08, /*      Report Size (8)                     */
    0x81, 0x01, /*      Input (Constant)    ;5 bit padding  */
    0x95, 0x05, /*      Report Count (5)                    */
    0x75, 0x01, /*      Report Size (1)                     */
    0x05, 0x08, /*      Usage Page (Page# for LEDs)         */
    0x19, 0x01, /*      Usage Minimum (01)                  */
    0x29, 0x05, /*      Usage Maximum (05)                  */
    0x91, 0x02, /*      Output (Data, Variable, Absolute)   */
    0x95, 0x01, /*      Report Count (1)                    */
    0x75, 0x03, /*      Report Size (3)                     */
    0x91, 0x01, /*      Output (Constant)                   */
    0x95, 0x06, /*      Report Count (1)                    */
    0x75, 0x08, /*      Report Size (3)                     */
    0x15, 0x00, /*      Logical Minimum (0)                 */
    0x25, 0x65, /*      Logical Maximum (101)               */
    0x05, 0x07, /*  	Usage (Key codes)                   */
    0x19, 0x00, /*      Usage Minimum (00)                  */
    0x29, 0x65, /*      Usage Maximum (101)                 */
    0x81, 0x00, /*      Input (Data, Array)                 */
    0xC0        /* 		End Collection,End Collection       */
вот 2 коллекции о которых я говорил как я должен разделить endpoint ? Сейчас в системе у меня 2 устройства и когда я передаю данные я просто меняю id. вопрос одновременно я могу передать 2 репорта разных по одним endpoint ?
EugenPKH вне форума  
Непрочитано 17.06.2016, 12:09  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: STM32 + USB HID

Я сейчас боюсь соврать, но у вас как раз комплексное устройство и Report ID и есть ваш endpoint, с которым вы будете работать с каждым устройством отдельно.
Хост будет опрашивать оба endpoint'а т.к. вы их объявили ему в дескрипторе.
Т.е. вы просто складываете данные в endpoint и ждете, когда хост их оттуда заберет.
Easyrider83 вне форума  
Непрочитано 17.06.2016, 14:36  
EugenPKH
Прописка
 
Регистрация: 08.10.2009
Сообщений: 101
Сказал спасибо: 2
Сказали Спасибо 11 раз(а) в 10 сообщении(ях)
EugenPKH на пути к лучшему
По умолчанию Re: STM32 + USB HID

Сообщение от Easyrider83 Посмотреть сообщение
Я сейчас боюсь соврать, но у вас как раз комплексное устройство и Report ID и есть ваш endpoint, с которым вы будете работать с каждым устройством отдельно.
Хост будет опрашивать оба endpoint'а т.к. вы их объявили ему в дескрипторе.
Т.е. вы просто складываете данные в endpoint и ждете, когда хост их оттуда заберет.
Report ID не равняется endpoint, EP у меня всегда 0x81, а репорты 1 2
EugenPKH вне форума  
Непрочитано 17.06.2016, 15:20  
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: STM32 + USB HID

Сообщение от EugenPKH Посмотреть сообщение
когда HOST запрашивает данные для какой коллекции я должен давать ответ , и как ответить есть одновременно и мышь и клавиатура сработала
Сначала отправить пакет для одного события, потом — для другого.
Мой рабочий пример. Если делать не как я, а по уму, то события нужно помещать в циклический буфер и при обращении хоста отплевывать ему очередную порцию данных.
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
eddy вне форума  
Непрочитано 20.06.2016, 08:33  
pambaru
Почётный гражданин KAZUS.RUN
 
Регистрация: 24.03.2007
Сообщений: 1,394
Сказал спасибо: 85
Сказали Спасибо 672 раз(а) в 392 сообщении(ях)
pambaru на пути к лучшему
По умолчанию Re: STM32 + USB HID

Тут надо разобраться, не до конца понятен вопрос - энумерация уже прошла?
Если да, и идет уже общение с HID, то при запросе репорта выдается его номер.
Например (из моего рабочего проекта с HID) запрос на Get_Feature выглядит так (обмен данными через EP0):

PHP код:
SETUPDAT[0]=0xA1
SETUPDAT[1]=0x01
SETUPDAT[2]=0xAB //report ID 
Вот третий байт в Setup пакете и есть id репорта, который нужно отправить.

Цитата:
USBlyzer ничего не покажет кроме дискрипторов
Думаю, тут Вы не правы.
Показывает и парсит, в том числе setup пакеты.
Скриншот во вложении.
Миниатюры:
Нажмите на изображение для увеличения
Название: ul.gif
Просмотров: 0
Размер:	11.6 Кб
ID:	94939  
pambaru вне форума  
 
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Печатная плата USBee AX picavr Барахолка электронных компонентов 950 20.08.2023 17:11
STM32F4 USB HID составление репорта swat24 ARM 40 20.02.2014 12:59
Помогите разобраться USB Device - HID - Joystick redb Микроконтроллеры, АЦП, память и т.д 6 11.03.2010 14:20
USB HID девайс на 18F13K50 не хочет работать. DK Микроконтроллеры, АЦП, память и т.д 17 26.02.2010 18:31
USB HID PIC18F4550 нужна помощь! tower2007 Микроконтроллеры, АЦП, память и т.д 0 17.04.2008 04:33


Часовой пояс GMT +4, время: 23:01.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.