Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: HID и VCP на одном контроллере можно сделать?
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
A.Lex
Вопрос ламерский, но однозначного ответа пока не нашел.
Исходные данные: МК STM32xxx, один порт USB, переключатель HID/VCP.
Реализуемо? Если ДА, то где бы глянуть пример.
x893
Можно и без переключателя. То есть одновременно.
Примеры как обычно можно глянуть
https://github.com/x893/CMSIS-DAP
A.Lex
Спасибо, посмотрю!
esaulenka
Я именно такую штуку делал. На libopencm3.
Главное - погуглить usb composite device, понять, как создать нужный дескриптор, и склеить два примера.

Ну или "готовое" можно взять:
Цитата(STM32_USB-Host-Device_Lib_V2.2.0)
The examples provide a composite device.
A composite device is one that has multiple interfaces controlled independently of each other.
Using composite device, multiple functions are combined into a single device.
In this Example the independent interfaces are : HID and VCP (CDC).

The implementation of the composite CDC-HID device is done by creating a wrapping
class (see folder hid_cdc_wrapper ) that makes calls to the separate CDC and HID class layer
handlers (files usb_cdc_core.c and usb_hid_core.c files).

To test the demo, you can run HID mouse example and in same time you can
do a USB to USART communication by opening a serial terminal window (like hyperterminal)
and selecting the STM32 virtual comport (you need to follow same steps as the CDC virtual comport example).


Кавычки у слова "готовое" - не спроста. Шаг в сторону, и сразу всё ломается.
A.Lex
Спасибо за совет, скоро придется этим заняться.

Дело для нас новое, неосвоенное...
Genadi Zawidowski
Для примера, как у меня делается - динамическое создание дескрипторов. Возможно, Вам не потребуется, но мне очень помогло, когда делал AUDIO + пара компортов (CDC) в одном устройстве.
Работает с этим у меня слегка вычищенный USB стэк из CubeMX на F4 и F7. И самописное на RENESAS RZ/A, исходники открыты.
A.Lex
Большое спасибо, наличие работающих реализаций значительно упрощает работу.
jcxz
Цитата(Genadi Zawidowski @ Dec 6 2016, 01:30) *
Работает с этим у меня слегка вычищенный USB стэк из CubeMX на F4 и F7. И самописное на RENESAS RZ/A, исходники открыты.

Я, кстати, в таких случаях обычно использую USB-стек из примеров IAR (в частности для LPC17xx). Там написано всё просто, без лишнего нагромождения функций. Вся работа с железом вынесена в один файл. И никаких кубов и прочих либ - всё через регистры IO. Под свои нужды переделывается легко и быстро. Я даже портировал эти примеры на другие МК.
Так что - рекомендую.
Genadi Zawidowski
Спасибо. Выложить можете?
jcxz
Цитата(Genadi Zawidowski @ Dec 8 2016, 21:53) *
Спасибо. Выложить можете?

А что выложить? Я же говорю - из примеров IAR для LPC17xx беру - в IAR-е все есть. И там обычно несколько примеров разных.
toweroff
Цитата(jcxz @ Dec 13 2016, 16:59) *
из примеров IAR для LPC17xx

да и в Keil есть
в настройках USB знай себе галки ставь, какой класс поддерживать
esaulenka
В кейле кроме галок и готовых бинарников ничего нет.
toweroff
Цитата(esaulenka @ Dec 13 2016, 18:12) *
В кейле кроме галок и готовых бинарников ничего нет.

ну здрасьте
это для CMSIS-RTOS нет, а для RTX-то?
Genadi Zawidowski
Цитата(jcxz @ Dec 8 2016, 12:15) *
Я даже портировал эти примеры на другие МК

Я про это.
jcxz
Цитата(Genadi Zawidowski @ Dec 14 2016, 21:41) *
Я про это.

Извините - не могу. Под "другими" здесь имелся в виду OMAP-L137. Проект на нём коммерческий и, согласно подписанному договору, я не имею права выкладывать его исходники.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.