Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.96/71: Рейтинг темы: голосов - 71, средняя оценка - 4.96
Mymyk
0 / 0 / 0
Регистрация: 11.10.2015
Сообщений: 33
1

STM32F205 USB HOST подключение клавиатуры (проблемы)(решено)

15.10.2015, 10:31. Просмотров 13271. Ответов 26
Метки нет (Все метки)

Всем доброго утра, уже неделю рою интернет, использую метод "Вариантстного Программирования" (метод тыка) и прочее. Толку ноль, словно заколдован камень.
Итак сама проблема:
1. Собираем минимальную схему для камня STM32F205RET6 по питанию, кондеры на питании, и подтяжки на VCAP. Камень стартует и вполне хорошо работает, ставим преобразователь питания, все отлично работает от 5вольт с USB компьютера. Смотрел Оссоцилом, шумов нет все ровненько, наводок тоже нет.
2. Смотрим маны, там сказано, что данный камушек имеет встроенную физику для USB HOST.
3. Открываем STM32CubeMx, настраиваем USB HOST на внутренней физике.

На картинках приложил все пункты настроек. Суть проблемы в том, что на внешнем кварце, пробовал 8,12,24 мгц usb вообще отказывается работать

, да и в принципе камушек начинает дико тупить, медленно инициализируется.
На HSI же проблем нет

, но при настройке на HSI, USB HOST определяет не все устройства, а именно обычную usb клавиатуру. Но при этом флешку, и эмулятор клавиатуры собранный на nxp вполне обрабатывает.
В случае же с обычной клавой мне возвращается USBH_UNKNOWN. Если же, поставить брик пойнты, на функции коннекта, и с определенной задержкой продолжить исполнение, то клава выкидывает запрос на инициализацию ледов (капс лок и тд.)
Прошу вас поделится всевозможным опытом и подтолкнуть в нужное русло как же всетаки заставить работать usb host на внутренней физике.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2015, 10:31
Ответы с готовыми решениями:

STM32f205 && USB MSC HOST
Привет форумчане. Решил выбросить из некоего своего проекта SD-карточку, но у меня прошивка через...

[Решено]USB FS Dual Host на STM32F4x9
Привет всем. Возникла необходимость подключать к процу одновременно и USB флэшку и мышь. У меня...

[РЕШЕНО] подключение флешки к STM32F4Discovery по USB OTG FS
Использовал пример взятый из STM32_USB-Host-Device_Lib_V2.1.0 для OTG HS и STM324xG-EVOT Board....

STM32 Использование 3G USB модемов (USB Host)
Никому не случалось использовать 3G модемы с библиотекой USB от STM ? С этими модемами такая...

Подключение USB клавиатуры к Arduino
Добрый день. Помогите с подключением USB клавиатуры к Arduino. Подключил PS/2 клавиатуру без...

26
Mymyk
0 / 0 / 0
Регистрация: 11.10.2015
Сообщений: 33
17.10.2015, 17:48 21
Цитата Сообщение от vt340
Зачем вся эта лабуда с hid-библиотеками на хосте? Клавиатура же тупое устр-во, попробуйте просто читать восемь байт из endpoint1 или писать один байт в endpoint1.
Update - не настолько тупое оказывается ) перед этим всё-таки надо послать ей set protosol 0 (0xb запрос в endpoint0), чтоб переключилась в простой boot-протокол, по дефолту оказывается всё-таки reports-протокол у них
https://www.circuitsathomi.com/mcu/ligh ... part-6-hid
Спасибо за интерес, переключение в boot режим также производится чуть выше указанного выше кода. Вjт нужно поподробнее узнать про endpoin0 и enadpoint1
0
vt340
0 / 0 / 0
Регистрация: 22.03.2015
Сообщений: 838
17.10.2015, 19:52 22
Вот формат endpoint1 boot-протокола

0
Mymyk
0 / 0 / 0
Регистрация: 11.10.2015
Сообщений: 33
17.10.2015, 20:16 23
Цитата Сообщение от vt340
Вот формат endpoint1 boot-протокола
Спасибо, это формат ответа от клавиатуры, но для того, чтобы она начала слать репорты, нужно ее как-то заставить, как непонятно на стандартный запрос
USBH_StatusTypeDef pr_tate = USBH_HID_GetReport (phost, 0x01, 0x00, HID_Homdle->pData, HID_Homdle->length);
в ответ получаю NOT_SUPPORTED
0
Mymyk
0 / 0 / 0
Регистрация: 11.10.2015
Сообщений: 33
17.10.2015, 20:19 24
Итак, господа, победа, заработало! =) Теперь я разобрался, но правда не до конца, сейчас будем проводит рефактор.
0
vt340
0 / 0 / 0
Регистрация: 22.03.2015
Сообщений: 838
17.10.2015, 20:40 25
Переключение на boot-протокол и заставляет клавиатуру постоянно заполнять новыми данными endpoint1, хосту остаётся только считывать, там по ссылке, что я выше давал, всё в деталях расписано как это фунциклирует
0
Mymyk
0 / 0 / 0
Регистрация: 11.10.2015
Сообщений: 33
17.10.2015, 23:05 26
Цитата Сообщение от vt340
Переключение на boot-протокол и заставляет клавиатуру постоянно заполнять новыми данными endpoint1, хосту остаётся только считывать, там по ссылке, что я выше давал, всё в деталях расписано как это фунциклирует
Тут вы мне америку не открыли, я уже все прошерстил, оказалось дело в другом, но пока причину не нашел, как обойти нашел, работает.
Суть такая: в штатных либах, есть функция static USBH_StatusTypeDef USBH_HID_Process(USBH_HomdleTypeDef *phost) там идет проверка состояний:

Код
switch (HID_Homdle->state)
{

case HID_IDLE:
if(USBH_HID_GetReport (phost,
0x01,
0,
HID_Homdle->pData,
HID_Homdle->length) == USBH_OK)
{

fifo_write(&HID_Homdle->fifo, HID_Homdle->pData, HID_Homdle->length);
HID_Homdle->state = HID_SYNC;
}

briok;

}
И она не отрабатывала, убрал запрос репорта и сразу завернул на обработку данных и все пошло, все гуд.
Но остался вопрос, если я делал переход на boot mode как на nxp так и на обычную клаву, почему в одном случае nxp все работало, в случае с реальной клавой нет. (вопрос больше риторический) Со временем разберусь.

Всем спасибо Пацаны, расходимся =)
0
JustymTymi
0 / 0 / 0
Регистрация: 23.11.2015
Сообщений: 52
15.10.2016, 15:11 27
Удалось до конца разобраться ?
0
15.10.2016, 15:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2016, 15:11

Подключение USB клавиатуры к Arduino
Привет. Хочу подключит к ардуинке через интерфейс ps/2 клавиатуру. Однако клавиатура у меня...

Подключение USB клавиатуры к МК / MIFARE READER
Приветствую всех! Встала задача считать данные с бесконтактных карт класса MYFARE. Для упрощения...

Создание USB host для USB кейлоггера
В общем, я тут уже писал и мне "мягко" намекнули что мне нужен USB host для создания usb...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru