Недавно я загрузил приложение stm32 для поиска MCU и обнаружил, что, например, STM32F429 имеет «НЕТ» на периферийном устройстве «USB-устройство», а на «USB OTG FS» и «USB OTG HS» указано «ДА». Что довольно удивительно, поскольку STM32F429 полностью функционирует как USB-устройство, то есть поддерживает все библиотеки и классы USB.
На некоторых других MCU указано «USB-устройство», например. STM32L052
Затем я попытался проверить CubeMX и обнаружил, что в их поиске есть периферийное устройство USB_Device (и снова STM32F429 не включает его, USB-вещи выполняются через OTG).
Это может быть довольно простой вопрос, так как я подозреваю, что USB-устройство просто означает тот, который не поддерживает OTG, но я не уверен, обычно MCU в любом случае используют OTG (и, кроме того, есть только одна библиотека, так почему в USB указано «NO») периферическая). Я не мог найти информацию об этом в Google или в документации CubeMX.
Меня это не особо беспокоит, так как USB OTG HS, кажется, работает нормально с библиотекой, но меня интересует терминология.
Я понимаю, что, вероятно, форум ST - лучшее место для этого вопроса, но многие темы там просто не получили ответа или ответа после того, как прошло 2 года. :)
Спасибо.
источник
Ответы:
Ваша мысль верна: устройства, помеченные «Да» в столбце USB-устройства, могут просто выступать в качестве USB-устройства. Они не поддерживают спецификацию OTG и не могут выступать в роли хоста.
Но, конечно, любое устройство с поддержкой USB OTG может выступать в качестве простого устройства. Тот, кто может сделать больше, может сделать меньше.
Они идентифицируют их таким образом, потому что «устройство USB», «OTG FS» и «OTG HS» - это три разных IP-ядра в чипах. Все они имеют свои специфические возможности / спецификации, и им могут потребоваться разные драйверы (как вы заметили).
Подводить итоги:
* Редактировать : Кажется, что ST наконец-то предпринял некоторые усилия для интеграции высокоскоростного PHY на кристалле в несколько своих новейших микроконтроллеров (точнее, в некоторых версиях STM32F7x3 и STM32F730, на данный момент). Однако в таблице выбора устройств нет конкретного столбца, который бы четко обозначал эту функцию, что опять-таки добавляет путаницу. Вам нужно взглянуть на данные таблицы.
источник