STM32 «USB Device» и «USB OTG HS» - в чем разница?


10

Недавно я загрузил приложение 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 года. :)

Спасибо.


1
У меня был такой опыт на форумах ST, поэтому я сочувствую ...
Дим

Что касается того, что форум ST имеет плохой вклад, то, видимо, это не только форум, но и электронная почта, я открыл тикет о возможной ошибке в одной из их документации и примеров USB, но никто (пока) не удосужился ответить мне. Что действительно раздражает.
Мухаммед Нурельдин

Ответы:


16

Ваша мысль верна: устройства, помеченные «Да» в столбце USB-устройства, могут просто выступать в качестве USB-устройства. Они не поддерживают спецификацию OTG и не могут выступать в роли хоста.

Но, конечно, любое устройство с поддержкой USB OTG может выступать в качестве простого устройства. Тот, кто может сделать больше, может сделать меньше.

Они идентифицируют их таким образом, потому что «устройство USB», «OTG FS» и «OTG HS» - это три разных IP-ядра в чипах. Все они имеют свои специфические возможности / спецификации, и им могут потребоваться разные драйверы (как вы заметили).

Подводить итоги:

  • USB-устройство: может работать только как устройство на полной скорости (12 Мбит / с)
  • USB OTG FS: способен работать как устройство / хост / периферия OTG на полной скорости (12 Мбит / с)
  • USB OTG HS: способен выступать в качестве устройства / хоста / периферии OTG на полной скорости (12 Мбит / с) или высокой скорости (480 Мбит / с). Обратите внимание, что ядру HS для [подавляющего большинства] * ST MCU требуется внешний физический чип ULPI для поддержки высокой скорости. PHY на чипе может работать только на полной скорости. ... Да, это очень запутанно.

* Редактировать : Кажется, что ST наконец-то предпринял некоторые усилия для интеграции высокоскоростного PHY на кристалле в несколько своих новейших микроконтроллеров (точнее, в некоторых версиях STM32F7x3 и STM32F730, на данный момент). Однако в таблице выбора устройств нет конкретного столбца, который бы четко обозначал эту функцию, что опять-таки добавляет путаницу. Вам нужно взглянуть на данные таблицы.


Хорошо, спасибо, просто хотел услышать это не из своей головы :)
ScienceSamovar

1
Relatedly У меня есть система IMX , которая имеет как «USB HOST» и «OTG фс», придав ему два используемые порты USB - но они требуют различных драйверов! Нечто подобное может относиться к ST - та же функциональность, требующая другого программного обеспечения.
pjc50

Действительно, я уверен, что они имели или имели в прошлом устройства, которые имели несколько периферийных портов с различным уровнем функциональности. Это однозначный способ перечисления функций для ряда деталей (или это могло бы показаться так в прошлом)
Шон Хулихейн,

Привет! Не могли бы вы немного расширить? Если микроконтроллер поддерживает USB OTG, теоретически можно ли подключить к чипу два порта USB: 1 для работы в качестве хоста USB OTG (например, для подключения клавиатуры), а другой USB для работы в качестве устройства? Есть ли термин для описания этого поведения?
NessDan

1
@Ness Если чип встраивает только блок USB OTG, нет, вы не можете. Но многие высокопроизводительные MCU включают в себя как USB-устройство, так и блоки USB OTG. Тогда вы можете использовать оба одновременно и иметь два независимых порта на вашем MCU: один действует как устройство, а другой как хост, да. Проверьте таблицы данных.
тусклый
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.