Перейти к содержанию
    

HID и VCP на одном контроллере можно сделать?

Вопрос ламерский, но однозначного ответа пока не нашел.

Исходные данные: МК STM32xxx, один порт USB, переключатель HID/VCP.

Реализуемо? Если ДА, то где бы глянуть пример.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно и без переключателя. То есть одновременно.

Примеры как обычно можно глянуть

https://github.com/x893/CMSIS-DAP

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я именно такую штуку делал. На libopencm3.

Главное - погуглить usb composite device, понять, как создать нужный дескриптор, и склеить два примера.

 

Ну или "готовое" можно взять:

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для примера, как у меня делается - динамическое создание дескрипторов. Возможно, Вам не потребуется, но мне очень помогло, когда делал AUDIO + пара компортов (CDC) в одном устройстве.

Работает с этим у меня слегка вычищенный USB стэк из CubeMX на F4 и F7. И самописное на RENESAS RZ/A, исходники открыты.

composite.zip

Изменено пользователем Genadi Zawidowski

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Работает с этим у меня слегка вычищенный USB стэк из CubeMX на F4 и F7. И самописное на RENESAS RZ/A, исходники открыты.

Я, кстати, в таких случаях обычно использую USB-стек из примеров IAR (в частности для LPC17xx). Там написано всё просто, без лишнего нагромождения функций. Вся работа с железом вынесена в один файл. И никаких кубов и прочих либ - всё через регистры IO. Под свои нужды переделывается легко и быстро. Я даже портировал эти примеры на другие МК.

Так что - рекомендую.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо. Выложить можете?

А что выложить? Я же говорю - из примеров IAR для LPC17xx беру - в IAR-е все есть. И там обычно несколько примеров разных.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

из примеров IAR для LPC17xx

да и в Keil есть

в настройках USB знай себе галки ставь, какой класс поддерживать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В кейле кроме галок и готовых бинарников ничего нет.

ну здрасьте

это для CMSIS-RTOS нет, а для RTX-то?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я даже портировал эти примеры на другие МК

Я про это.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я про это.

Извините - не могу. Под "другими" здесь имелся в виду OMAP-L137. Проект на нём коммерческий и, согласно подписанному договору, я не имею права выкладывать его исходники.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...