|
STM32F439 + USB мышь, Не работает |
|
|
|
Nov 29 2015, 16:14
|

Профессионал
    
Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980

|
Привет всем. Вот уже пару недель (непостоянно конечно  ) пытаюсь завести USB мышку на USB хосте STM32F439. Использовал СТ-шные либы и частично переделанные библиотеки немца - http://mikrocontroller.bplaced.net/wordpress/?page_id=2991Результаты весьма плачевные - проверял на 3-х мышах: 1. (какой-то Logitch) не опознаётся, обламывается где-то на этапе энумерации. Там я не копался, забил пока на неё. 2. Logitech RX250 (PS2+USB) и Terratech mouse опознаются с полпинка, но ведут себя как пьяный заяц на дороге - даже если мыша просто лежит на столе без движения, координаты как-то странно скачут, в подавляющем большинстве случаев в сторону увеличения, довольно быстро упираются в заданные мною максимумы, на чём всё и замирает. Кнопки вроде нормально отрабатывают, но с задержкой в несколько секунд - от одной до 10 (на глаз). Ну и ещё один общий вопрос. В HID ядре прописана некая частота опроса мыши (HID устройства): CODE if ( HID_Machine.poll < HID_MIN_POLL) { HID_Machine.poll = HID_MIN_POLL; } // if ....................
case HID_POLL: t= HCD_GetCurrentFrame ( pdev ) - HID_Machine.timer; if ( t >= HID_Machine.poll ) { // прошло больше HID_Machine.poll SOF-ов HID_Machine.state = HID_GET_DATA; } else if ( HCD_GetURB_State ( pdev, HID_Machine.hc_num_in ) == URB_DONE ) { // handle data once if ( start_toggle == 1 ) { start_toggle = 0; HID_Machine.cb->Decode ( HID_Machine.buff ); } // if } // if else if ( HCD_GetURB_State(pdev, HID_Machine.hc_num_in) == URB_STALL ) /* IN Endpoint Stalled */ { /* Issue Clear Feature on interrupt IN endpoint */ if ( USBH_ClrFeature ( pdev, pphost, HID_Machine.ep_addr, HID_Machine.hc_num_in ) == USBH_OK ) { /* Change state to issue next IN token */ HID_Machine.state = HID_GET_DATA; } } // if break;
Зачем это сделано - понятно, но по факту это выполнимо только если проц выполняет один только USBH_Process(&USB_OTG_Core_dev, &USB_Host);в главном цикле. А если надо делать ещё что-то? Та же немецкая либа в чистом виде у меня не пошла именно из-за условия if ( t >= HID_Machine.poll ) Можно вызывать USBH_Process в каком-нибудь таймере, но я не знаю, насколько безопасно вызывать эту функцию в прерывании. У кого-то USB-мышки работают? Может кто-то помочь? Приложил свой проект, посмотрите кто может пожалуйста. На кокосе. Спасибо. PS. USB клавиатуру я не пробовал, хотя и не вырезал.
--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса. (с) Мария Эдуарда
|
|
|
|
|
 |
Ответов
|
Jan 9 2016, 12:42
|

Профессионал
    
Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980

|
СТ-шники выкладывают архив: USB ядро, драйвера флэшки/HID (клава+мышь), несколько примеров хоста и девайса. Фактически это не либы, а некие готовые примеры, заточенные под ихние дорогущие отладочные платы ценой под полторы-две штуки баксов. Поэтому сами либы оттуда надо выковыривать - очищать от кода, работающего с дисплеями на тех платах, переделывать инициализацию пинов (в части управления питанием девайса) и т.д и т.п. Но для простоты я всё это называю либой. Те кто сталкивался, поймут, о чём я  .
--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса. (с) Мария Эдуарда
|
|
|
|
|
Jan 10 2016, 09:11
|

Профессионал
    
Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980

|
Цитата(mantech @ Jan 9 2016, 21:37)  А что, сейчас уже примеры программ с либами в комплекте, например для плат типа дискавери, уже не делают?? Ну как сказать ... Лично я видел только примеры работы с USB флэшкой. На F4Discovery это простенький WAV плеер, на F429 Discovery показывает с флэшки BMP на дисплее и даже видео какое-то. Фирменных примеров работы с USB мышью/клавиатурой для дискавери я вообще не видел. Я находил один пример работы с USB-мышью для Ф4дискавери на ихнем форуме. Но там человек сделал практически то же самое, что я описал выше. Пример очень старый, мои мыши с ним вообще не работают. Но лично мне не нравятся архитектурные подходы, используемые СТ-шниками, да и я использую кокос, а под него по-любому приходится многое перепахивать хотя бы из-за отличий в компиляторе того же иара и GCC. Из сторонних примеров - немец UBeiker - http://mikrocontroller.bplaced.net/wordpress/Качественно и весьма недурно переработанные СТ-шные примеры. Всё ориентировано на обе Ф4 дискаверины, но вся USB часть вынесена "за скобки", поэтому очень легко переносится на другие платы с другой схемотехникой. А те куски кода, которые жёстко завязаны на дискавери (например, дисплей), легко отделяются и выбрасываются, т.к. используются только в main, а не в недрах USB библиотек, как у СТ-шников. У немца есть примеры и флэшки, и мышки, но т.к. у него старые либы, то у меня была ситуация, описанная мною в 1-м посте темы. Новые либы я перепахал сам, все 3 мои мыши работают вроде нормально, сейчас я занялся флэшкой на этих новых либах. Т.к. меня интересует и флэшка и мышка одновременно, а не по очереди, как поголовно во всех примерах, которые я видел.
--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса. (с) Мария Эдуарда
|
|
|
|
Сообщений в этой теме
hd44780 STM32F439 + USB мышь Nov 29 2015, 16:14 mantech Цитата(hd44780 @ Nov 29 2015, 19:14) У ко... Nov 29 2015, 17:00 kovigor Цитата(mantech @ Nov 29 2015, 21:00) Не у... Nov 29 2015, 17:24 aaarrr Цитата(mantech @ Nov 29 2015, 20:00) Не у... Nov 29 2015, 17:52  mantech Цитата(aaarrr @ Nov 29 2015, 20:52) Прави... Nov 29 2015, 18:11   aaarrr Цитата(mantech @ Nov 29 2015, 21:08) Толь... Nov 29 2015, 18:13    mantech Цитата(aaarrr @ Nov 29 2015, 21:13) Увы, ... Nov 29 2015, 18:15 hd44780 Спасибо за ответы.
С энумерацией понятно вроде. Гд... Nov 30 2015, 12:54 mantech Цитата(hd44780 @ Nov 30 2015, 15:54) Спас... Nov 30 2015, 14:22 hd44780 Ок. Буду смотреть. Nov 30 2015, 14:54 hd44780 Скачал отсюда - https://www.lpcware.com/content/pr... Dec 1 2015, 17:36 mantech Цитата(hd44780 @ Dec 1 2015, 20:36) Скача... Dec 1 2015, 17:45 hd44780 ага. нашёл. спасибо. Dec 1 2015, 17:48 hd44780 Накурился я этой хрени ... голова кругом
Report... Dec 23 2015, 19:09 mantech Цитата(hd44780 @ Dec 23 2015, 22:09) Наку... Dec 23 2015, 20:24 hd44780 угу. спасибо.
Радиомышки я на потом оставлю. Сейча... Dec 24 2015, 08:36 mantech Цитата(hd44780 @ Dec 24 2015, 11:36) угу.... Dec 24 2015, 09:19 hd44780 Пытаюсь понять феномен этого автоповтора ... Dec 24 2015, 10:53 hd44780 Посмотрел куб - там тоже бут протокол, но автоповт... Dec 24 2015, 16:36 mantech Цитата(hd44780 @ Dec 24 2015, 19:36) Посм... Dec 24 2015, 18:37 hd44780 Всех с наступающим!
Переделал проект с нуля на... Dec 30 2015, 08:39 Огурцов не хватает питания ? Dec 30 2015, 09:49 hd44780 А хз. Питается от программаторского USB. Проверю. Dec 30 2015, 12:33 hd44780 Всех с наступившими Новым годом и Рождеством.
Пит... Jan 7 2016, 18:04 Rash извиняюсь за офф топик, может кто знает где можно ... Jan 8 2016, 17:10 hd44780 Rash, я не знаю.
Новую USB либу я увидел, когда са... Jan 9 2016, 07:52 Огурцов когда говорите либа, что это означает ? Jan 9 2016, 11:11 Огурцов немец крут
но только поначалу
потом оказывается, ч... Jan 10 2016, 11:19 hd44780 Не, куба я у него пока не видел. У него SPL и не к... Jan 10 2016, 13:02 Огурцов старый куб был на spl, не ?
в любом случае, пример... Jan 10 2016, 14:34 hd44780 Цитата(Огурцов @ Jan 10 2016, 17:34) стар... Jan 10 2016, 15:28  Огурцов так либы на spl или это третья реинкарнация стшног... Jan 10 2016, 16:34 hd44780 В USB либах SPL есть только в 2-х местах:
1. Файл ... Jan 10 2016, 17:06 hd44780 Сделал флэшки на новой либе. На всех моих платах и... Jan 19 2016, 07:57 mantech Цитата(hd44780 @ Jan 19 2016, 10:57) Тепе... Jan 19 2016, 18:22 hd44780 Не, пока не хаб. Просто так или то или то.
Хабовый... Jan 20 2016, 08:26 mantech Цитата(hd44780 @ Jan 20 2016, 11:26) Не, ... Jan 21 2016, 13:57  mantech Цитата(mantech @ Jan 21 2016, 16:57) Поль... Jan 28 2016, 09:33 hd44780 Не, флэшки у меня нормально вроде пашут.
Знакомый,... Jan 22 2016, 13:17 mantech Цитата(hd44780 @ Jan 22 2016, 16:17) Не, ... Jan 22 2016, 13:38 hd44780 Апну древнюю тему.
Сейчас осталась только одна про... Nov 27 2016, 16:12 mantech Цитата(hd44780 @ Nov 27 2016, 19:12) Поэт... Nov 29 2016, 17:28  hd44780 Цитата(mantech @ Nov 29 2016, 20:28) Рабо... Nov 29 2016, 18:38   mantech Цитата(hd44780 @ Nov 29 2016, 21:38) вызы... Nov 30 2016, 12:24 hd44780 угу. спасибо. Nov 30 2016, 16:35 hd44780 Нашёл я, как это отловить, добавил туда свой флажо... Dec 3 2016, 09:08
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|