реклама на сайте
подробности

 
 
3 страниц V   1 2 3 >  
Closed TopicStart new topic
> STM32F4Discovery - USB Host HID, Ничего не получается, нужен совет
Gelay
сообщение Jul 19 2014, 16:08
Сообщение #1





Группа: Участник
Сообщений: 11
Регистрация: 22-07-12
Пользователь №: 72 858



Задача: поднять USB Host High Speed и подключить к нему мышь, затем клавиатуру, затем одновременно (ну это программа максимум, мне б хоть что-то сделать)
Большая просьба, если у кого-нибудь есть рабочие примеры по USB Host HID, поделитесь пожалуйста sm.gif
Опыта у меня в микроконтроллерах совсем не много, в STM еще меньше.

Что было мною сделано:
Запускал из Keil 4.73
Ковырялся в примере USB_Host_Examples/HID из библиотеки STM32_USB-Host-Device_Lib_V2.1.0 - ничего не вышло, моя плата виснет, а деббагер на следующей же команде после функции USBH_Init(.....); вылетает с ошибкой "Cannot access target". Возможно это из-за LCD которого в моей плате нет, но чтобы вычленить его из примера моего уровня не хватает. [было весело, когда я случайно прикоснулся к полоске выводов платки и включил питание USB хоста, туда оказывается кнопка была выведена]

Затем я взял STM32CubeMX и сгенерил код для своего STM32F4Discovery. Проект оказался более понятым, логичным, а код читабельным, но при этом менее качественным, как мне показалось, но все равно ничего не заработало. Понять почему я так и не смог, потому что деббагеру не доступна большая половина кода, да и по оставшейся он прыгает как ему хочется - его ни сколько не смущает идти снизу вверх, а потом снова вниз, из цикла switch отрабатывать два case, хотя после каждого из них стоит break ну и прочии шалости.
Попытался запустить этот же проект в Coocox CoIDE - скопировал все файлы, включил в проект - получил кучу синтаксических ошибок и неопределенных структур. Лезть в недра Keil и выцеплять либы с этими структурами я не решился, да и Кокос совсем отбил желание, когда не закончив компиляцию этого же проекта намертво подвесил систему.

Я морально подавлен и раздавлен. Подскажите, как поднять этот хост и какую взять нормальную IDE/версия с работающим деббагером?
Go to the top of the page
 
+Quote Post
mantech
сообщение Jul 19 2014, 17:41
Сообщение #2


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(Gelay @ Jul 19 2014, 19:08) *
Задача: поднять USB Host High Speed и подключить к нему мышь, затем клавиатуру, затем одновременно (ну это программа максимум, мне б хоть что-то сделать)


Не люблю расстраивать людей, особенно интузиастов, но вы выбрали не тот камень для освоения усб.
Сам не первый день с ним знаком, но так и не встретил нигде хоть что-нибудь отдаленно напоминающее путевую библиотеку для работы с его встроенным хостом, т.к. он уникальный и ни с чем не совместим, в отличие от lpc-шного. Кроме того, в либах от ст нет ни одного примера работы с композитным устройством, т.е. клава+мышь.
ЗЫ. Ну а если вдруг и правда, кто делал подобное - тоже интересно бы посмотреть на сие творение laughing.gif
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jul 19 2014, 19:07
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Цитата
Понять почему я так и не смог, потому что деббагеру не доступна большая половина кода, да и по оставшейся он прыгает как ему хочется - его ни сколько не смущает идти снизу вверх, а потом снова вниз, из цикла switch отрабатывать два case, хотя после каждого из них стоит break ну и прочии шалости.


в кейле по умолчанию оптимизация не НОЛЬ, а дефолт, то есть -2... Если хотите чтобы код шел по строчкам, оптимизацию надо убрать в ноль, а то у вас будет каша и со значениями переменных и со следованием по коду.
В настройках надо врубить максимум дебажной информации...


Хост в LPC (1768 в частности) правда лучше, он ваще OHCI, все сам делает, только прерывания поддержать и всех делов... В целом хост сильно сложнее девайса, у вас хоть с устройством то опыт есть?
Go to the top of the page
 
+Quote Post
Dr.Alex
сообщение Jul 19 2014, 19:30
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 386
Регистрация: 5-04-05
Из: моська, RF
Пользователь №: 3 863



Цитата(mantech @ Jul 19 2014, 21:41) *
Не люблю расстраивать людей


Мне возможно тоже придётся с ним работать, скажите, а с юсб-девайсом там как? Мне нужно хай спид и качать в комп мегабит 50 хотя бы..
Go to the top of the page
 
+Quote Post
kovigor
сообщение Jul 19 2014, 23:08
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(Gelay @ Jul 19 2014, 19:08) *
Задача: поднять USB Host High Speed и подключить к нему мышь, затем клавиатуру, затем одновременно (ну это программа максимум, мне б хоть что-то сделать)
Большая просьба, если у кого-нибудь есть рабочие примеры по USB Host HID, поделитесь пожалуйста sm.gif

На Атмеловском ARM9 делал такое. А еще делал на LPC без встроенного хоста (хостом сужила отдельная ИС двухпортового хоста ISP1161, которая, кстати, вполне прилично работает и может быть вам очень полезной).
Про СТМ могу сказать, что с нуля в разумные сроки задача практически неподъемна, там даже с Device куча проблем, очень неприятных, которых я не знал ни с LPC, ни с ATMEL (ARM и MCS-51). А вы сразу на хост замахнулись.
Вообще, СТМ - штука проблемная и неприятная. Очень. Запредельно и неоправданно усложненная, отвратительно документированная, и т.д., и т.п. ... Ну да ладно, речь все-таки не об этом ...

P.S. А зачем для клавиатуры и мыши High Speed ? Там и Low Speed избыточен ...
Go to the top of the page
 
+Quote Post
Falkon_99
сообщение Jul 20 2014, 06:57
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 169
Регистрация: 26-03-12
Из: Харьков
Пользователь №: 71 010



Цитата(Golikov A. @ Jul 19 2014, 22:07) *
Хост в LPC (1768 в частности) правда лучше, он ваще OHCI, все сам делает, только прерывания поддержать и всех делов... В целом хост сильно сложнее девайса, у вас хоть с устройством то опыт есть?


Тоже интересен вопросс поднять USB Host для подключения флешки к контроллеру. Пока на стадии выбора контроллера. STM32 берет кучей примеров, но если начать разбираться, то оказывается половина примеров не работает, половина с ошибками и тд...
Например нашел проэкт USB_MSC_HOST. Все работает, я даже обрадовался, флешку видит, работает с файловой системой, но потом пришла БЕДА. Оказалось что работат только с одной флешкой из пяти! пытался разобратся, в итоге ничего не понятно!!!

Короче вопросс про LPC(1768 в частности), есть ли официальные примеры для него. Можно ссылочку на официальный сайт. Сам ниразу не использовал эти контроллеры.
Спасибо
Go to the top of the page
 
+Quote Post
Gelay
сообщение Jul 20 2014, 10:37
Сообщение #7





Группа: Участник
Сообщений: 11
Регистрация: 22-07-12
Пользователь №: 72 858



Как я понял LPC, наверно, лучший вариант для моей задачи. Golikov A., kovigor, mantech и кто еще знает - а можете порекомендовать какой именно камень лучше взять, чтобы существовала отладочная плата с ним и были рабочие примеры, официальные или может у кого-нибудь есть?
И тоже присоединяюсь к вопросу Falkon_99 + а отладочная плата для него есть?

Цитата(Golikov A. @ Jul 19 2014, 23:07) *
в кейле по умолчанию оптимизация не НОЛЬ, а дефолт, то есть -2... Если хотите чтобы код шел по строчкам, оптимизацию надо убрать в ноль, а то у вас будет каша и со значениями переменных и со следованием по коду.
В настройках надо врубить максимум дебажной информации...

Хост в LPC (1768 в частности) правда лучше, он ваще OHCI, все сам делает, только прерывания поддержать и всех делов... В целом хост сильно сложнее девайса, у вас хоть с устройством то опыт есть?


Спасибо, деббагер перенастроил, каша еще та былаsm.gif Опыта с устройством у меня тоже практически нет, но примеров и описания по нему довольно много, находил рабочие, но особо в них не разбирался

Цитата(kovigor @ Jul 20 2014, 03:08) *
P.S. А зачем для клавиатуры и мыши High Speed ? Там и Low Speed избыточен ...


Сейчас разницы особой нет, я на тот случай если потребуется что-нибудь более скоростное подключить, хотя работающий пример перенастроить не сложно, так что без разницы sm.gif
А STM действительно какой-то замороченный.

Цитата(Dr.Alex @ Jul 19 2014, 23:30) *
Мне возможно тоже придётся с ним работать, скажите, а с юсб-девайсом там как? Мне нужно хай спид и качать в комп мегабит 50 хотя бы..

Пример из этой статьи запускал, сразу работает, проект под Кокос (пример в конце статьи). Примечательно, что сайт называется "Дамское счастье" sm.gif)))

Вот еще статья с примером, но уже для STM32F3. Кстати, очень хороший сайт, если надо, на нем же есть очень понятное описание основных принципов передачи данных по USB

Хотя про 50 МБит не знаю

Сообщение отредактировал Gelay - Jul 20 2014, 10:39
Go to the top of the page
 
+Quote Post
mantech
сообщение Jul 20 2014, 14:14
Сообщение #8


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(Gelay @ Jul 20 2014, 13:37) *
а можете порекомендовать какой именно камень лучше взять, чтобы существовала отладочная плата с ним

Посмотрите здесь - http://www.starterkit.ru/html/index.php
На счет какой камень- определитесь со своей задачей, если нужен (в дальнейшем) экран, то берите из серии 17хх или 43хх, там вообще можно 2 ядра задействовать cool.gif

Сообщение отредактировал mantech - Jul 20 2014, 14:17
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jul 20 2014, 17:51
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Про LPC1768 - очень удачный проц. Все что запускали все работает по описанию без бубна. То есть читаешь как, делаешь и все сразу работает именно так. Нюансы минимальны, очень приятные впечатления.

что касается USB в этом проце хост реализован на OHCI, это стандарт. То есть в описании проца даже нет как им пользоваться, только регистры доступа, потому что все что делает хост реализовано на железном уровне. Всю энумирацию и прочую байду делает железо, вам надо только реагировать на флаги в регистре и все, как на них реагировать описано в OHCI 1.1

К нему нашли http://mbed.org/users/peterbarrett1967/not...troller-for-mb/
на самом деле это очень простая обертка обращений к хосту, ибо реально все делается само на уровне железа.

Вот... насчет китов и прочее, они конечно же есть, и у схемотехника он был, я же подключился уже не к первому проекту на этом проце, потому мне уже выдали сразу рабочую плату, кит я не держал в руках. Вроде бы был то ли olimex то ли starterkit.

В целом для поднятия USB хоста без напряжения я бы рекомендовал брать что-то с поддержкой OHCI или подобного интерфейса, чтобы железо все само делало, незачем проц по пустякам грузить, да и обертку писать несложно... В свое время делал девайс от уровня разбора пакетов, а знакомый от уровня сигналов, в общем полюбил я когда железо само все делает)))
Go to the top of the page
 
+Quote Post
Gelay
сообщение Jul 20 2014, 21:02
Сообщение #10





Группа: Участник
Сообщений: 11
Регистрация: 22-07-12
Пользователь №: 72 858



Всем спасибо за информацию и ценные советыsm.gif Нашел отладочную платку SK-MLPC1768, наверно на нее и буду ориентироваться в дальнейшем.

А если кто-нибудь впервые читает эту тему и умудрился все таки наладить хост на STM32F4Discovery, обязательно напиши - буду рад очень благодарен sm.gif
Go to the top of the page
 
+Quote Post
adnega
сообщение Jul 20 2014, 21:18
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(Gelay @ Jul 21 2014, 01:02) *
А если кто-нибудь впервые читает эту тему и умудрился все таки наладить хост на STM32F4Discovery, обязательно напиши - буду рад очень благодарен sm.gif

Ничего не налаживал - взял исходники с сайта и собрал образ. Залил в МК. Насколько я помню, демок было несколько:
1. Обновление прошивки с USB flash.
2. Воспроизведение wav файла с USB flash.
Go to the top of the page
 
+Quote Post
mantech
сообщение Jul 21 2014, 08:09
Сообщение #12


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(adnega @ Jul 21 2014, 00:18) *
Ничего не налаживал - взял исходники с сайта и собрал образ. Залил в МК. Насколько я помню, демок было несколько:
1. Обновление прошивки с USB flash.
2. Воспроизведение wav файла с USB flash.

Все это здорово, НО
1) Либа хоста там дырявая, пришлось самому затыкать несколько дыр.
2) Работает далеко не со всеми флешками, опять-же пришлось кое-что переписывать, но 100% добиться так и не удалось.
3) Автор пишет, что ему надо работу с композитным устройством, а ее нет как таковой в примерах и либах, слышал, что только в каких-то коммерческих либах это есть. А писать самому с "нуля" - это жесткий мазохизм...

Сообщение отредактировал mantech - Jul 21 2014, 08:10
Go to the top of the page
 
+Quote Post
adnega
сообщение Jul 21 2014, 09:25
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата
Все это здорово, НО
1) Либа хоста там дырявая, пришлось самому затыкать несколько дыр.

Зато бесплатная.
Цитата
2) Работает далеко не со всеми флешками, опять-же пришлось кое-что переписывать, но 100% добиться так и не удалось.

Мне повезло с флешками - работали все.
Цитата
3) Автор пишет, что ему надо работу с композитным устройством, а ее нет как таковой в примерах и либах, слышал, что только в каких-то коммерческих либах это есть. А писать самому с "нуля" - это жесткий мазохизм...

Думать головой все равно придется. Второй вариант: можно думать по-минимуму, но придется денег заплатить.
Может, я как-то неправильно работаю, но "хорошесть либы" для меня на последнем месте при выборе МК.
Главное: функционал, цена, доставабельность, документация. Либы, какими бы они ни были, я разлядываю редко.
В основном как реф-дизайн при работе с новой периферией. Все вопросы решаю по документации, AN и на макете с осциллографом.
Go to the top of the page
 
+Quote Post
mantech
сообщение Jul 21 2014, 10:13
Сообщение #14


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(adnega @ Jul 21 2014, 12:25) *
Мне повезло с флешками - работали все.

А много флешек проверяли? Я проверял на 20 флешках разных годов выпуска. Современные работали практически все, а вот более старые, особенно усб 1.1 редко заводились...

Цитата(adnega @ Jul 21 2014, 12:25) *
Думать головой все равно придется. Второй вариант: можно думать по-минимуму, но придется денег заплатить.


Согласитесь, "думать головой" всегда приятнее, когда в руках нормальный, хорошо документированный и стандартизированный девайс, а не что-то похожее на него.
Да, в свое время тоже решил, что можно прикрутить руками весь этот стштый усб, благо нужно было сделать работу с флехами и состыковать с компом, и то геморроя нахлебался вдоволь. Больше этим страдать не хочу, ибо стшные камни использую под другие задачи...
Go to the top of the page
 
+Quote Post
adnega
сообщение Jul 21 2014, 10:45
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(mantech @ Jul 21 2014, 14:13) *
Да, в свое время тоже решил, что можно прикрутить руками весь этот стштый усб, благо нужно было сделать работу с флехами и состыковать с компом, и то геморроя нахлебался вдоволь. Больше этим страдать не хочу, ибо стшные камни использую под другие задачи...

Да, особенности есть, но основное время было потрачено на изучение документации от usb.org
До сих пор ужас вызавает описание HID-дескриптора. Не знаю как это делается, а главное почему именно так.
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 13:37
Рейтинг@Mail.ru


Страница сгенерированна за 0.01538 секунд с 7
ELECTRONIX ©2004-2016