Добрый день уважаемые хочу обратится за опытом и советом.
Ситуация такая у меня есть рабочая программа usb hid device где реализован джойстик я решил его допилить добавлением виртуального COM порта. То есть при подключении я хочу сделать чтоб мой МК определялся в системе как 2 устройства - HID джойстик на который встают драйвера стандартные, и как виртуальный ком порт на который встают драйвера для VCP любезно предоставленные ST (те которые для примера с ком портом) я сначала дернулся в сторону примера с композит девайса из библиотеки STM32_USB-FS-Device_Driver в дескрипторе производится описание 2х интерфейсов где: 1-й интерфейс класса HID в нём 2-е контрольные точки in и out. 2-й интерфейс класса Mass Store где описаны 2 точки in и out.
Сначала все казалось просто объединяю дескрипторы моего джоя и virtual com порта (оба у меня рабочие вроде) разбиваю их на разные интерфейсы и все. НО я не как не могу понять как-же выполнится условие что это должны быть 2 устройства в системе и должны стоять разные драйверы. ведь VID и PID номера которые описываются в Device Descriptor будут одни и теже для обоих интерфейсов, а для установки разных драйверов они должны быть разные.
Соответственно у меня возникли вопросы:
1)Что-же в все-таки такое USB Composit Device? это просто устройство имеющее разные по типу интерфейсы или все-таки несколько устройств в одном.
2)Как реализовать 2 устройства в одном на STM32F103? подключать устройство как USB hub к которому "подключено" 2 устройства?
3)Вообще возможно-ли реализовать такой виртуальный USB hub на F103?
Подскажите в какую сторону копать дальше.
Ситуация такая у меня есть рабочая программа usb hid device где реализован джойстик я решил его допилить добавлением виртуального COM порта. То есть при подключении я хочу сделать чтоб мой МК определялся в системе как 2 устройства - HID джойстик на который встают драйвера стандартные, и как виртуальный ком порт на который встают драйвера для VCP любезно предоставленные ST (те которые для примера с ком портом) я сначала дернулся в сторону примера с композит девайса из библиотеки STM32_USB-FS-Device_Driver в дескрипторе производится описание 2х интерфейсов где: 1-й интерфейс класса HID в нём 2-е контрольные точки in и out. 2-й интерфейс класса Mass Store где описаны 2 точки in и out.
Сначала все казалось просто объединяю дескрипторы моего джоя и virtual com порта (оба у меня рабочие вроде) разбиваю их на разные интерфейсы и все. НО я не как не могу понять как-же выполнится условие что это должны быть 2 устройства в системе и должны стоять разные драйверы. ведь VID и PID номера которые описываются в Device Descriptor будут одни и теже для обоих интерфейсов, а для установки разных драйверов они должны быть разные.
Соответственно у меня возникли вопросы:
1)Что-же в все-таки такое USB Composit Device? это просто устройство имеющее разные по типу интерфейсы или все-таки несколько устройств в одном.
2)Как реализовать 2 устройства в одном на STM32F103? подключать устройство как USB hub к которому "подключено" 2 устройства?
3)Вообще возможно-ли реализовать такой виртуальный USB hub на F103?
Подскажите в какую сторону копать дальше.