Класс CDC vid:pid для моего оборудования на базе STM32F3

Я планирую использовать USB-соединение, чтобы позволить ПК взаимодействовать с моим оборудованием на основе STM32F373VC.
Я попробовал класс CDC, используя пример в STM32CubeF3 V1.9.0, удалив периферийное управление UART.
ПК обнаруживает USB-устройство с vid:pid 0483:5740. Linux автоматически распознает класс CDC (STMicroelectronics STM32F407), загружает модуль cdc_acm и создает VCP ttyACM0. Я не знаю о Windows, но читая readme примера, кажется, что драйвер должен быть установлен.
У меня есть несколько вопросов:

  1. Могу ли я использовать VID:PID 0483:5740 для моего продукта?
  2. Разве различные версии Windows автоматически распознают устройство (и связывают его с драйвером CDC) или действительно необходимо установить драйвер?
  3. Если я не могу использовать эти VID:PID, могу ли я попросить ST предоставить PID, назначенный мне для небольших производств (как делают другие производители кремния)?
  4. Может ли ST назначить мне PID, который различные версии Windows, Linux и Mac автоматически распознают как CDC без необходимости устанавливать драйверы или что-либо настраивать?
  5. Если нет, существуют ли пары VID:PID, которые автоматически распознаются различными версиями Windows, Linux и Mac как класс CDC без необходимости установки драйверов или настройки и которые я могу легально использовать для своего небольшого производства?

1 ответ

О драйверах, распознающих ваше устройство:

Если ваше устройство имеет класс CDC, драйвер должен быть в состоянии загружаться независимо от того, какой VID:PID используется (при условии, что выбранный VID:PID не назначен другому устройству, которое имеет драйвер, специфичный для данного устройства). Для Windows, пожалуйста, обратитесь к этому документу.
Вы должны быть в состоянии протестировать драйвер класса Linux CDC, изменив дескриптор устройства в коде библиотеки вашего устройства (что должно быть возможно, если я правильно понимаю доступную документацию ST).

О наличии собственного VID:PID:

На github есть кое-что об этом здесь. Он должен охватывать все возможные варианты, включая те, о которых вы спрашивали.

Другие вопросы по тегам