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

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

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

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

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

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

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 20.10.2014, 20:03  
firew0rker
Заблокирован
 
Регистрация: 22.04.2010
Сообщений: 348
Сказал спасибо: 41
Сказали Спасибо 106 раз(а) в 95 сообщении(ях)
firew0rker на пути к лучшему
По умолчанию USB HID клавиатура под Linux работает, под Win7 — нет

USB HID клавиатура на МК C8051F320 от SiLabs. Плата чужая, прошивка — моя (на основе фирменного примера мыши). Проект в Keil полностью, полной схемы нет. Коды кнопок программируются в EEPROM, но тестирую с макросом TEST, EEPROM не используется. Linux (Ubuntu 13.10 kernel 3.11.0-12-generic) нормально определяет устройство, кнопки работают. А под Win7 x32 устройство определяется и через секунду пропадает, потом опять, и до бесконечности. Реакции на кнопки нет. Мне нужно, чтобы работало под Win. Куда копать?
Вложения:
Тип файла: rar F320-UsbKbd-20.10.14.rar (146.8 Кб, 53 просмотров)
Тип файла: pdf KYUP_Board_IO.PDF (55.9 Кб, 74 просмотров)
Реклама:
firew0rker вне форума  
Непрочитано 23.10.2014, 02:35  
b_raven
Гражданин KAZUS.RU
 
Регистрация: 02.11.2008
Адрес: Одесса
Сообщений: 668
Сказал спасибо: 336
Сказали Спасибо 328 раз(а) в 182 сообщении(ях)
b_raven на пути к лучшему
По умолчанию Re: USB HID клавиатура под Linux работает, под Win7 — нет

А что винда в логах говорит при этом ?



Пы.Сы. Офф. Шах и мат виндузятникам в тему про железо и линукс )))
b_raven вне форума  
Эти 3 пользователя(ей) сказали Спасибо b_raven за это сообщение:
Jeka_T (24.10.2014), metrA85 (23.10.2014), mike-y-k (20.01.2017)
Непрочитано 23.10.2014, 09:08  
Gerbicid
Прописка
 
Аватар для Gerbicid
 
Регистрация: 04.08.2008
Сообщений: 203
Сказал спасибо: 33
Сказали Спасибо 75 раз(а) в 58 сообщении(ях)
Gerbicid на пути к лучшему
По умолчанию Re: USB HID клавиатура под Linux работает, под Win7 — нет

Мне аж смешно красноглазых читать
http://beholder.ru/bb/viewtopic.php?...330b2&start=45
Чтобы заставить работать часть специальных клавиш на мелкософтовской клаве надо сделать три ритуальных круга вокруг компа, разжечь костер и пару дней танцевать с бубном. Результат не гарантирован.
__________________
Gerbicid вне форума  
Сказали "Спасибо" Gerbicid
mike-y-k (20.01.2017)
Непрочитано 23.10.2014, 20:35  
firew0rker
Заблокирован
 
Регистрация: 22.04.2010
Сообщений: 348
Сказал спасибо: 41
Сказали Спасибо 106 раз(а) в 95 сообщении(ях)
firew0rker на пути к лучшему
По умолчанию Re: USB HID клавиатура под Linux работает, под Win7 — нет

Заработало. Дело было в отсутствии инициализации. При подключении к Linux-хосту глючный код не вызывался, а с виндовым МК обращался по неинициализированному указателю и вис.

Следующая моя задача — добавить FEATURE report, чтобы загружать раскладку клавиатуры из приложения конфигуратора в EEPROM. Опять: Linux опознаёт клавиатуру, Win7 — показывает «!» в диспетчере устройств и отключает её.


HID дескриптор:
Код:
//--------------------------------------------------------------------------------
// Decoded Application Collection
//--------------------------------------------------------------------------------

/*
05 01        (GLOBAL) USAGE_PAGE         0x0001  
09 06        (LOCAL)  USAGE              0x00010006  
A1 01        (MAIN)   COLLECTION         0x01 Application (Usage=0x00010006: Page=, Usage=, Type=) ‹-- Warning: USAGE type should be CA (Application)
05 07          (GLOBAL) USAGE_PAGE         0x0007  
19 E0          (LOCAL)  USAGE_MINIMUM      0x000700E0  
29 E7          (LOCAL)  USAGE_MAXIMUM      0x000700E7  
15 00          (GLOBAL) LOGICAL_MINIMUM    0x00 (0) ‹-- Redundant: LOGICAL_MINIMUM is already 0
25 01          (GLOBAL) LOGICAL_MAXIMUM    0x01 (1) 
75 01          (GLOBAL) REPORT_SIZE        0x01 (1) Number of bits per field 
95 08          (GLOBAL) REPORT_COUNT       0x08 (8) Number of fields 
81 02          (MAIN)   INPUT              0x00000002 (8 fields x 1 bit) 0=Data 1=Variable 0=Absolute 0=NoWrap 0=Linear 0=PrefState 0=NoNull 0=NonVolatile 0=Bitmap 
15 00          (GLOBAL) LOGICAL_MINIMUM    0x00 (0) ‹-- Redundant: LOGICAL_MINIMUM is already 0
25 01          (GLOBAL) LOGICAL_MAXIMUM    0x01 (1) ‹-- Redundant: LOGICAL_MAXIMUM is already 1
75 01          (GLOBAL) REPORT_SIZE        0x01 (1) Number of bits per field ‹-- Redundant: REPORT_SIZE is already 1
95 08          (GLOBAL) REPORT_COUNT       0x08 (8) Number of fields ‹-- Redundant: REPORT_COUNT is already 8
81 01          (MAIN)   INPUT              0x00000001 (8 fields x 1 bit) 1=Constant 0=Array 0=Absolute 0=Ignored 0=Ignored 0=PrefState 0=NoNull 
19 00          (LOCAL)  USAGE_MINIMUM      0x00070000  
29 65          (LOCAL)  USAGE_MAXIMUM      0x00070065  
15 00          (GLOBAL) LOGICAL_MINIMUM    0x00 (0) ‹-- Redundant: LOGICAL_MINIMUM is already 0
25 65          (GLOBAL) LOGICAL_MAXIMUM    0x65 (101) 
75 08          (GLOBAL) REPORT_SIZE        0x08 (8) Number of bits per field 
95 06          (GLOBAL) REPORT_COUNT       0x06 (6) Number of fields 
81 00          (MAIN)   INPUT              0x00000000 (6 fields x 8 bits) 0=Data 0=Array 0=Absolute 0=Ignored 0=Ignored 0=PrefState 0=NoNull 
05 08          (GLOBAL) USAGE_PAGE         0x0008  
19 01          (LOCAL)  USAGE_MINIMUM      0x00080001  
29 03          (LOCAL)  USAGE_MAXIMUM      0x00080003  
15 00          (GLOBAL) LOGICAL_MINIMUM    0x00 (0) ‹-- Redundant: LOGICAL_MINIMUM is already 0
25 01          (GLOBAL) LOGICAL_MAXIMUM    0x01 (1) 
75 01          (GLOBAL) REPORT_SIZE        0x01 (1) Number of bits per field 
95 03          (GLOBAL) REPORT_COUNT       0x03 (3) Number of fields 
91 02          (MAIN)   OUTPUT             0x00000002 (3 fields x 1 bit) 0=Data 1=Variable 0=Absolute 0=NoWrap 0=Linear 0=PrefState 0=NoNull 0=NonVolatile 0=Bitmap 
75 01          (GLOBAL) REPORT_SIZE        0x01 (1) Number of bits per field ‹-- Redundant: REPORT_SIZE is already 1
95 05          (GLOBAL) REPORT_COUNT       0x05 (5) Number of fields 
91 01          (MAIN)   OUTPUT             0x00000001 (5 fields x 1 bit) 1=Constant 0=Array 0=Absolute 0=NoWrap 0=Linear 0=PrefState 0=NoNull 0=NonVolatile 0=Bitmap 
05 01          (GLOBAL) USAGE_PAGE         0x0001  
95 07          (GLOBAL) REPORT_COUNT       0x07 (7) Number of fields 
75 08          (GLOBAL) REPORT_SIZE        0x08 (8) Number of bits per field 
26 FF00        (GLOBAL) LOGICAL_MAXIMUM    0x00FF (255) 
15 00          (GLOBAL) LOGICAL_MINIMUM    0x00 (0) ‹-- Redundant: LOGICAL_MINIMUM is already 0
B1 00          (MAIN)   FEATURE            0x00000000 (7 fields x 8 bits) 0=Data 0=Array 0=Absolute 0=NoWrap 0=Linear 0=PrefState 0=NoNull 0=NonVolatile 0=Bitmap 
C0           (MAIN)   END_COLLECTION     Application
*/
Если у FEATURE меняю USAGE_PAGE = 0 или USAGE=0 то не помогает, всё также.


Подскажите что почитать про FEATURE report, чтобы сделать корректно, кроссплатформенно?
Миниатюры:
Нажмите на изображение для увеличения
Название: usbtrace2.png
Просмотров: 436
Размер:	13.6 Кб
ID:	70961  
firew0rker вне форума  
Непрочитано 26.10.2014, 12:53  
firew0rker
Заблокирован
 
Регистрация: 22.04.2010
Сообщений: 348
Сказал спасибо: 41
Сказали Спасибо 106 раз(а) в 95 сообщении(ях)
firew0rker на пути к лучшему
По умолчанию Re: USB HID клавиатура под Linux работает, под Win7 — нет

Заработало. Если кому интересно как сделала - спрашивайте.
firew0rker вне форума  
Непрочитано 29.10.2014, 00:17  
tsb
Прописка
 
Аватар для tsb
 
Регистрация: 25.11.2006
Адрес: Харьков
Сообщений: 295
Сказал спасибо: 25
Сказали Спасибо 71 раз(а) в 60 сообщении(ях)
tsb на пути к лучшему
По умолчанию Re: USB HID клавиатура под Linux работает, под Win7 — нет

Сообщение от firew0rker Посмотреть сообщение
Следующая моя задача — добавить FEATURE report, чтобы загружать раскладку клавиатуры из приложения конфигуратора в EEPROM.
Сообщение от firew0rker Посмотреть сообщение
Заработало. Если кому интересно как сделала - спрашивайте.
В свое время к одному моему устройству, работающему как HID-клавиатура, нужно было "приделать" конфигуратор. Тогда задействовать для этого FEATURE report мне не удалось. Пришлось делать составное устройство, в котором второй HID "общался" с конфигуратором...
Поэтому, в принципе, интересно, как Вам это удалось.
tsb вне форума  
Непрочитано 29.10.2014, 12:34  
firew0rker
Заблокирован
 
Регистрация: 22.04.2010
Сообщений: 348
Сказал спасибо: 41
Сказали Спасибо 106 раз(а) в 95 сообщении(ях)
firew0rker на пути к лучшему
По умолчанию Re: USB HID клавиатура под Linux работает, под Win7 — нет

На каком-то форуме нашла заведомо рабочий HID-дескриптор клавиатуры с FEATURE report. Вставила его в HIDREPORTDESC[] в файл F3xx_USB0_Descriptor.c. Винда опознала клавиатуру!
Перед подключением перепрошитого устройства было необходимо поудалять из реестра VID_10C4&PID_0200 чтобы винда нормально опознала. Чтобы не ковыряться в реестре, сделала батник «Disconnected Devices Manager.bat». Запускать его от админа, удалять серенькие устройства — удобнее.
Упростила логику обработки reportов, т.*к. ID не используется. Из F3xx_USB0_ReportHandler.c удалила функции ReportHandler_IN_ISR() и ReportHandler_IN_Foreground() и таблицы обработчиков *_VECTORTABLE.
DATASIZE и DATAPTR устанавливаются прямо в Get_Report и Set_Report. FEATURE report отличается (SETUP.wValue.c[MSB]==3).
Обработка FEATURE IN: при вызове Get_Report отправляется непосредственно массив Keys, хранящий раскладку.
Обработка FEATURE OUT: данные записываются в OutRptBuf. B ReportHandler_OUT, после проверки (с которой сильно не заморачивалась) они копируются в Keys (устанавливает новую раскладку) и ставится флаг bKeysUpdate. В основном цикле по флагу Keys записывается в EEPROM.
В F3xx_USB0_Standard_Requests.c также добавила обработчики Get_Idle() и Set_Idle(). т.*к. они обязательны для клавиатур. Idle timer — Timer2. Но фактически у меня винда не использует его, устанавливает idleRate=0 так что можно было не заморачиваться наверное...

Ваше составное устройство было более трудоёмким в разработке?
Вложения:
Тип файла: rar F320-UsbKbd-26.10.14.rar (140.9 Кб, 37 просмотров)
firew0rker вне форума  
Непрочитано 31.10.2014, 02:16  
tsb
Прописка
 
Аватар для tsb
 
Регистрация: 25.11.2006
Адрес: Харьков
Сообщений: 295
Сказал спасибо: 25
Сказали Спасибо 71 раз(а) в 60 сообщении(ях)
tsb на пути к лучшему
По умолчанию Re: USB HID клавиатура под Linux работает, под Win7 — нет

Сообщение от firew0rker Посмотреть сообщение
...Ваше составное устройство было более трудоёмким в разработке?
Это было уже несколько лет назад, подробности уже точно не помню, но пожалуй составное устройство немного посложнее того, что Вы сделали. Я тоже брал пример другого составного устройства и корректировал под себя.
А вот трудность использования FEATURE REPORTS в "чистой" HID-клавиатуре, насколько я помню, была связана не с реализацией их обработки внутри МК, а с возможностью посылки их из Винды. Ведь это не просто HID-устройство, а "клавиатура", "занятая" Операционной Системой. По крайней мере, имеющимися у меня на тот момент библиотеками по работе с HID, послать FEATURE REPORT "клавиатуре" мне не удалось.
Интересно, какими средствами Вы из под Винды посылаете FEATURE REPORT своей клавиатуре?
tsb вне форума  
Непрочитано 31.10.2014, 15:19  
firew0rker
Заблокирован
 
Регистрация: 22.04.2010
Сообщений: 348
Сказал спасибо: 41
Сказали Спасибо 106 раз(а) в 95 сообщении(ях)
firew0rker на пути к лучшему
По умолчанию Re: USB HID клавиатура под Linux работает, под Win7 — нет

Сообщение от tsb Посмотреть сообщение
Интересно, какими средствами Вы из под Винды посылаете FEATURE REPORT своей клавиатуре?
Функцией HidD_SetFeature. В архиве приложение программирующее раскладку.
Вложения:
Тип файла: rar UsbKbdSetup-26.10.14.rar (5.0 Кб, 30 просмотров)
firew0rker вне форума  
Сказали "Спасибо" firew0rker
tsb (01.11.2014)
Непрочитано 19.01.2017, 18:43  
Vrozhkov
Прохожий
 
Регистрация: 19.01.2017
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Vrozhkov на пути к лучшему
По умолчанию Re: USB HID клавиатура под Linux работает, под Win7 — нет

Здравствуйте,
мучаюсь с 12-кнопочной USB-клавиатурой на МК C8051F320, подобной описанию топикстартера.
7-я Винда 32бит, не может найти драйвер для клавиатуры.
В сведениях Диспетчера устройств пишет следующее:

Тип устройства Другие устройства
Изготовитель Нет данных
Размещение Port_#0003.Hub_#0006

Описание устройства IO BOARD
ИД оборудования USB\VID_16C0&PID_06EA&REV_0000
ИД оборудования USB\VID_16C0&PID_06EA
Совместимые ИД USB\Class_02&SubClass_02&Prot_01
Совместимые ИД USB\Class_02&SubClass_02
Совместимые ИД USB\Class_02
ConfigFlags 00000040
ConfigFlags CONFIGFLAG_FAILEDINSTALL
Сведения о местонахождении Port_#0003.Hub_#0006
Имя объекта физического устройства \Device\USBPDO-10\
Характеристики 00000014
Характеристики CM_DEVCAP_REMOVABLE
Характеристики CM_DEVCAP_UNIQUEID
GUID типа шины {9d7debbc-c85d-11d1-9eb4-006008c3a19a}
Устаревший тип шины 0000000F
Номер шины 00000000
Перечислитель USB
Адрес 00000003
Сведения о питании Текущее состояние электропитания:
Сведения о питании D3
Сведения о питании
Сведения о питании Возможности электропитания:
Сведения о питании 0000005D
Сведения о питании PDCAP_D0_SUPPORTED
Сведения о питании PDCAP_D2_SUPPORTED
Сведения о питании PDCAP_D3_SUPPORTED
Сведения о питании PDCAP_WAKE_FROM_D0_SUPPORTED
Сведения о питании PDCAP_WAKE_FROM_D2_SUPPORTED
Сведения о питании
Сведения о питании Сопоставления энергосбережения:
Сведения о питании S0 -› D0
Сведения о питании S1 -› D2
Сведения о питании S2 -› D2
Сведения о питании S3 -› D2
Сведения о питании S4 -› D2
Сведения о питании S5 -› D3
Политика удаления 00000003
Политика удаления по умолчанию 00000003
Состояние установки 00000002
Пути к расположению PCIROOT(0)#PCI(1A00)#USBROOT(0)#USB(1)#USB(5)#USB( 4)#USB(3)
Код базового контейнера {5db6be7b-74d7-52b1-80d3-f6f97a318703}
Выводимое имя IO BOARD
Путь к экземпляру устройства USB\VID_16C0&PID_06EA\0001
Состояние DevNote 01806400
Состояние DevNote DN_HAS_PROBLEM
Состояние DevNote DN_DISABLEABLE
Состояние DevNote DN_REMOVABLE
Состояние DevNote DN_NT_ENUMERATOR
Состояние DevNote DN_NT_DRIVER
Код проблемы 0000001C
Родитель USB\VID_058F&PID_9254\7&2d4c97c6&0&4
Родственные USB\VID_09DA&PID_0260\8&2d22a658&0&2
Код контейнера {5db6be7b-74d7-52b1-80d3-f6f97a318703}
Требуется безопасное удаление ‹ложь›
Описание устройства, предоставленное шиной IO BOARD
Ошибка установки Для элемента или информационного пакета устройства не выбран драйвер.
Ошибка установки E0000203
Дата установки 19.01.2017 15:58:31
Дата первой установки 19.01.2017 15:58:31
Безопасность класса по умолчанию 00 0C 90 00 00 00 00 00 00 00 00 00 00 00 00 14 00 00 00
Безопасность класса по умолчанию 00 34 00 02 00 00 00 00 00 14 00 00 00 00 10 01 01 00 00
Безопасность класса по умолчанию 00 00 05 12 00 00 00 00 00 18 00 00 00 00 10 01 02 00 00
Безопасность класса по умолчанию 00 00 05 20 00 00 00 20 02 00 00
SDS безопасности класса по умолчанию D:P(A;;GA;;;SY)(A;;GA;;;BA)
Полное имя класса Другие устройства
Краткое имя класса Unknown
Путь к значку класса %SystemRoot%\System32\setupapi.dll,-18
Версия нижнего логотипа 6.0
Выводимое имя Другие устройства


Кто может помочь с драйвером Linux и Windows 7 на эту клавиатуру ?
Vrozhkov вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработка Bluetooth/USB HID Gamepad rus_12345 Микроконтроллеры, АЦП, память и т.д 11 15.01.2018 20:36
STM32 + USB HID Easyrider83 ARM 34 20.06.2016 17:32
Linux-ваше мнение Tvenn Делимся опытом 6169 23.08.2015 08:57
USB на AT90USBxxx под ASM AlexWonder AVR 13 06.06.2015 00:50


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot