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

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Изучение модуля USB
TrampX
сообщение Apr 9 2013, 14:31
Сообщение #1





Группа: Новичок
Сообщений: 7
Регистрация: 9-04-13
Пользователь №: 76 425



Здравствуйте. Впервые на этом форуме, решил все таки зарегистрироваться, похоже самостоятельно мне не разобраться в этот раз. Хочу впервые заюзать аппаратный модуль USB в STM32F407. была скачана соответствующая библиотека (STM32_USB-Host-Device_Lib_V2.1.0 с ней в комплекте идет и STM32F4xx_StdPeriph_Driver) с сайта www.st.com и примеры работы с того же сайта. Ни один пример не удалось запустить, т.е. хоть и компилируется все, но ничего не хочет работать. К тому же в примерах используются StdPeriph_Lib. Что что, а именно эта библиотека вводит меня в состояние, насыщенное негативными эмоциями. Поэтому не хочется мне ее использовать. без нее же библиотеку USB никак не могу подключить и даже найти толковое описание этой библиотеки не получается. Т.к. скорость не нужна большая и не хочется иметь кучу виртуальный com портов, решено было изучить класс USB HID Device. Поэтому есть несколько вопросов:
1. Может все таки найдутся рабочие примеры без использования StdPeriph_Lib?
2. Какие именно файлы(исходники и хедеры) нужно подключать к проекту из библиотеки для этого класса устройств?
3. Есть ли толковое описание библиотеки USB?
С самой шиной никогда не работал. Язык Си знаю более менее, но до профи далеко, поэтому разобраться с библиотеками без помощи пока не могу. Работа с устройством со стороны хоста это уже другой вопрос и следующий этап.

P.S. Прошерстил поиском весь форум, нашел и скачал много примеров, но либо не рабочие, либо шибко навороченные и без комментариев в основном. Может кто вкратце распишет что к чему? Т.е. задача заюзать usb hid device, хотелось бы для начала просто знать, какие файлы необходимы в проекте из библиотеки STM32_USB-Host-Device_Lib_V2.1.0, STM32F4xx_StdPeriph_Driver использовать не собираюсь. Ну и минимум функций, которые будут нужны для обмена данными с хостом.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 9 2013, 15:20
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Боюсь, модуль USB у STM32F4xx очень плохо подходит для первого самостоятельного знакомства с шиной.
Если стоит цель освоить работу с USB, то лучше взять другой МК.
Go to the top of the page
 
+Quote Post
TrampX
сообщение Apr 9 2013, 15:48
Сообщение #3





Группа: Новичок
Сообщений: 7
Регистрация: 9-04-13
Пользователь №: 76 425



Жаль, конечно, что плохо подходит, но нужен именно он sad.gif
Go to the top of the page
 
+Quote Post
adnega
сообщение Apr 9 2013, 16:11
Сообщение #4


Гуру
******

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



Примеры для STM32F4DISCOVERY запускались без каких-либо проблем.
Например, обновление прошивки с USB-флешки.
Или проигрывание wav-файла с USB-флеш.
Пробовал модифицировать, добавил управление громкостью с акселерометра.
Не заработал только цифровой микрофон (видимо связано с использованием плавучки, которое на тот момент было не актуально - поэтому дальше не копал).
У Вас собственное железо или используете указанную выше отладочную плату?
PS. Дальше запуска примеров не разбирался с комплектом поставки (либы), поскольку не сторонник "чужих велосипедов", а изобретаю потихоньку свои)
Go to the top of the page
 
+Quote Post
ViKo
сообщение Apr 9 2013, 16:27
Сообщение #5


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



А почему USB_Host? Цель была - изучить HID-устройство, подключаемый к компьютеру, правильно?
Go to the top of the page
 
+Quote Post
TrampX
сообщение Apr 9 2013, 16:41
Сообщение #6





Группа: Новичок
Сообщений: 7
Регистрация: 9-04-13
Пользователь №: 76 425



У меня отладочная плата STM32F4Discovery, приобретенная мной пару дней назад. На ней запускается один единственный проект, тот который идет с завода, остальные либо не компилятся, либо компилятся не работают. Пытался создать новый чистый проект, без использования SPL, не получается. Осложняется дело тем, что на эту библиотеку вообще нет никакого описания.

Цитата
USB_Host
Чего то я не припомню где это я писал про хост??? Нужен USB HID Device.

Цитата
Если стоит цель освоить работу с USB, то лучше взять другой МК.
Как то пропустил вторую часть сообщения. Я написал впервые заюзать модуль USB STM32, а не впервые заюзать шину USB. Разница принципиальна, так как на других МК уже юзал эту шину. Здесь же затык из за полного отсутствия документации, да и с примерами разобраться не так то просто.

Сообщение отредактировал TrampX - Apr 9 2013, 16:43
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 9 2013, 16:47
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Так Вы же сами писали:
Цитата(TrampX @ Apr 9 2013, 18:31) *
С самой шиной никогда не работал.


Если опыт есть, то достаточно User Manual'а для написания своего драйвера. Но STM'овский USB весьма своеобразен, скажем прямо.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Apr 9 2013, 16:49
Сообщение #8


Гуру
******

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



насколько глубоко хотите заюзать?
до уровня стандарта и полного понимания что происходит, или библиотеку приколотить костылями и успокоиться?
Go to the top of the page
 
+Quote Post
ViKo
сообщение Apr 9 2013, 16:53
Сообщение #9


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(TrampX @ Apr 9 2013, 19:41) *
Чего то я не припомню где это я писал про хост??? Нужен USB HID Device.

Цитата
была скачана соответствующая библиотека (STM32_USB-Host-Device_Lib_V2.1.0
Go to the top of the page
 
+Quote Post
adnega
сообщение Apr 9 2013, 16:56
Сообщение #10


Гуру
******

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



Для использования USB в своих проектах документации хватает (Reference Manual).
Для изучения USB конечно же не хватит. Нужны спецификации USB классов (я использовал только HID и CDC) + книжка по самому USB (часть вопросов снял труд Агурова).
Модуль USB в STM32 мягко говоря "нетривиальный")) Например, чтобы установить какое-нить значение бита в регистре нужно его считать и если значение устраивает, то записать в эту позицию "0", а если нужно изменить на противоположенное - то "1". Где-то так...
Go to the top of the page
 
+Quote Post
TrampX
сообщение Apr 9 2013, 17:02
Сообщение #11





Группа: Новичок
Сообщений: 7
Регистрация: 9-04-13
Пользователь №: 76 425



Цитата
для написания своего драйвера.
Зачем HID нужен драйвер??? Он уже есть в виндоус, нужно только приложение для работы с устройством.
Скажем так: Хотелось бы разобраться в самой бибилиотеке, как ее юзать, общие принципы. Знание и понимание что происходит на шине на самом низком уровне мало кому нужно, мне и подавно. Для меня представляет интерес сопряжения МК по шине USB с компьютером, в частности работа как hid device, а так же хотелось попробовать работать на уровне эндпойнтов, но это уже потом. Также представляет интерес usb host, но это ужже как нибудь потом, с этим вообще еще не имел дела.
Т.е. получается просто приколотить костылями, но разобраться в самой библиотеке что к чему, чтобы самостоятельно изучать потихоньку дальше...

Цитата
Цитата(TrampX @ Apr 9 2013, 19:41) *
Чего то я не припомню где это я писал про хост??? Нужен USB HID Device.

Цитата
была скачана соответствующая библиотека (STM32_USB-Host-Device_Lib_V2.1.0
Ну дык в этой библе есть разные классы. Это всего лишь название. Есть и хост, и HID Device, и CDC и все остальное.
Цитата
Для изучения USB конечно же не хватит
Хорошо, если так принципиально, можно переименовать тему с изучения модуля USB в использование модуля USB или изучение бибилиотеки .... от ST.

Сообщение отредактировал TrampX - Apr 9 2013, 17:05
Go to the top of the page
 
+Quote Post
kovigor
сообщение Apr 9 2013, 17:14
Сообщение #12


Гуру
******

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



Цитата(TrampX @ Apr 9 2013, 20:02) *
Скажем так: Хотелось бы разобраться в самой бибилиотеке, как ее юзать, общие принципы. Знание и понимание что происходит на шине на самом низком уровне мало кому нужно, мне и подавно. Для меня представляет интерес сопряжения МК по шине USB с компьютером, в частности работа как hid device, а так же хотелось попробовать работать на уровне эндпойнтов, но это уже потом. Также представляет интерес usb host, но это ужже как нибудь потом, с этим вообще еще не имел дела.
Т.е. получается просто приколотить костылями, но разобраться в самой библиотеке что к чему, чтобы самостоятельно изучать потихоньку дальше...

Ну дык в этой библе есть разные классы. Это всего лишь название. Есть и хост, и HID Device, и CDC и все остальное.

Без комментариев. Скажу про свой опыт использования этой библиотеки и USB - движка STM. Мне нужно было именно разобраться в исходниках USB Device'ов, поставляемых с этой библиотекой. Опыт работы с шиной и понимание того, как она работает, имелось - я писал свои реализации Device'ов для HID и Mass-Storage для NXP и Atmel, а также писал свою реализацию хоста для Atmel ARM9, т.е., я знал, что делаю, почему и зачем. Так вот, движок от STM и оная библиотека буквально вынесли мне мозги. Ничего сложнее и иррациональнее ни до, ни после этого я не видел. Плюс отвратительно написанная и неполная документация от STM способна довести до психушки кого угодно (не знаю, может, сейчас они ее поправили).
Это мое личное мнение: начинать с STM в части освоения USB есть дело чуть ли не безнадежное. А поверхностное знакомство с ихней библиотекой недопустимо, надо именно вникать в детали, иначе рано или поздно ваш проект встанет колом, а вы окажетесь в этой ситуации совершенно беспомощным.
P.S. Не работать примеры могут из-за того, что они рассчитаны на МК в корпусе X, а у вас МК в корпусе Y, а там линии USB идут на другие GPIO. Именно об эту особенность я и споткнулся в первый же день ...
Go to the top of the page
 
+Quote Post
adnega
сообщение Apr 9 2013, 17:19
Сообщение #13


Гуру
******

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



Цитата(TrampX @ Apr 9 2013, 21:02) *
Хорошо, если так принципиально, можно переименовать тему с изучения модуля USB в использование модуля USB или изучение бибилиотеки .... от ST.

Предлагается изучение библиотеки оставить для самостоятельной работы, а на форуме начать озвучивать конкретные вопросы. Что именно не получается?
Дело в том, что изучение библиотеки это не такой уж легкий путь с учетом сопровождающей ее документации. Описаны параметры функции, возвращаемый результат, но это и так в большинстве случаев понятно. Как строится логика работы с библиотекой нигде (по крайне мере я) не встречал. Можно подглядеть в примерах, но это лишь частный случай...
Возможно, Вам будет легче плюнуть на эту библиотеку, разобраться с регистрами и написать что-то свое. Я пока так не поступил, тратил очень много времени. Отказавшись от ST-библиотеки, поднял свой USB-стек за несколько дней.

Итого: библиотеки рабочие, документация на любителя, реф.мануал читать по-любому придется, конкретные вопросы приветствуются)
Go to the top of the page
 
+Quote Post
TrampX
сообщение Apr 9 2013, 17:32
Сообщение #14





Группа: Новичок
Сообщений: 7
Регистрация: 9-04-13
Пользователь №: 76 425



Цитата
Что именно не получается?
Конкретные вопросы были озвучены в самом начале
Цитата
1. Может все таки найдутся рабочие примеры без использования StdPeriph_Lib?
2. Какие именно файлы(исходники и хедеры) нужно подключать к проекту из библиотеки для этого класса устройств?
3. Есть ли толковое описание библиотеки USB
Похоже ответ на первый вопрос НЕТ.
Второй пока остается без ответа sad.gif
Третий похоже тоже НЕТ sad.gif
Но вот по 3 вопросу, я вообще не могу найти ни одного! документа на STM32_USB-Host-Device_Lib_V2.1.0.
Вот написать что то свое для модуля USB при отсутствии опыта программирования STM32 будет действительно сложно, да и рускоязычной документации или хотя бы его обсуждений на форумах я еще не встречал, а вот изучение модуля USB по англоязычному даташиту может действительно вынести моск...

Сообщение отредактировал TrampX - Apr 9 2013, 17:36
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 9 2013, 17:34
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(TrampX @ Apr 9 2013, 21:02) *
Зачем HID нужен драйвер???

Драйвер - это не обязательно компонент ПО для ПК. Та часть программы, что обслуживает какую-либо периферию МК тоже имеет полное право так именоваться. Именно её я и имел в виду.

В свое время попробовал воспользоваться библиотекой от ST, так как очень не хотелось тратить время ради одного проекта. Заставить себя в результате так и не смог, пришлось потратить несколько дней на написание и отладку своего варианта.
Go to the top of the page
 
+Quote Post

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

 


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


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