STM32 „USB-Gerät“ vs. „USB OTG HS“ - was ist der Unterschied?

10

Ich habe kürzlich die stm32-App für die MCU-Suche heruntergeladen und festgestellt, dass beispielsweise STM32F429 im Peripheriegerät "USB-Gerät" "NEIN" hat, während in "USB OTG FS" und "USB OTG HS" "JA" steht. Was ziemlich überraschend ist, da STM32F429 als USB-Gerät voll funktionsfähig ist, dh alle Bibliotheken und USB-Klassen unterstützt.
In einigen anderen MCUs ist "USB-Gerät" angegeben, z. STM32L052 Geben Sie hier die Bildbeschreibung ein

Dann habe ich versucht, CubeMX zu überprüfen und festgestellt, dass die Suche ein USB_Device-Peripheriegerät enthält (und STM32F429 enthält es nicht, USB-Daten werden über OTG erstellt).

Es kann eine recht einfache Frage sein, da ich vermute, dass USB-Gerät einfach dasjenige ist, das OTG nicht unterstützt, aber ich bin nicht sicher, normalerweise verwenden MCUs OTG trotzdem (und außerdem gibt es nur eine Bibliothek, warum also "NEIN" in USB angeben? periphere). Ich konnte keine Informationen dazu in Google oder in der CubeMX-Dokumentation finden.

Ich bin nicht wirklich besorgt darüber, da USB OTG HS mit der Bibliothek in Ordnung zu sein scheint, aber ich frage mich über die Terminologie.

Ich verstehe, dass das ST-Forum wahrscheinlich ein besserer Ort für diese Frage ist, aber viele Themen dort werden nach 2 Jahren einfach nicht beantwortet oder beantwortet. :) :)

Vielen Dank.

ScienceSamovar
quelle
1
Ich habe diese Erfahrung mit den ST - Foren hatte, so dass ich sympathisieren ...
dim
In Bezug darauf, dass das ST-Forum einen schlechten Beitrag leistet, ist es anscheinend nicht nur das Forum, sondern auch per E-Mail. Ich habe ein Ticket über einen möglichen Fehler in einer ihrer Dokumentationen und USB-Beispiele geöffnet, aber (noch) hat sich niemand die Mühe gemacht, mich zurückzuschreiben. Welches ist wirklich ärgerlich.
Mohammed Noureldin

Antworten:

15

Ihr Gedanke ist richtig: Die Geräte, die in der Spalte USB-Gerät mit "Ja" gekennzeichnet sind, können nur als USB-Gerät fungieren. Sie unterstützen die OTG-Spezifikation nicht und können auch nicht als Host fungieren.

Aber natürlich kann jedes Gerät, das USB OTG unterstützt, andererseits als einfaches Gerät fungieren. Wer mehr kann, kann weniger.

Sie identifizieren sie auf diese Weise, da das "USB-Gerät", "OTG FS" und "OTG HS" drei verschiedene IP-Kerne in den Chips sind. Sie haben alle ihre besonderen Fähigkeiten / Spezifikationen und erfordern möglicherweise unterschiedliche Treiber (wie Sie bemerkt haben).

Um zusammenzufassen:

  • USB-Gerät: Kann nur mit voller Geschwindigkeit (12 Mbit / s) als Gerät fungieren.
  • USB OTG FS: Kann als Gerät / Host / OTG-Peripheriegerät mit voller Geschwindigkeit (12 Mbit / s) fungieren.
  • USB OTG HS: Kann als Gerät / Host / OTG-Peripheriegerät mit voller Geschwindigkeit (12 Mbit / s) oder hoher Geschwindigkeit (480 Mbit / s) fungieren. Beachten Sie, dass der HS-Kern für [die überwiegende Mehrheit der] * ST-MCUs einen externen ULPI-PHY-Chip benötigt, um tatsächlich hohe Geschwindigkeit zu unterstützen. Der On-Chip-PHY kann nur die volle Geschwindigkeit erreichen. ... Ja, es ist sehr verwirrend.

* Bearbeiten : Es scheint, dass ST endlich einige Anstrengungen unternommen hat, um ein On-Chip-Hochgeschwindigkeits-PHY in einige seiner neuesten MCUs zu integrieren (genauer gesagt: einige der Versionen STM32F7x3 und STM32F730 im Moment). Es gibt jedoch keine bestimmte Spalte, in der diese Funktion in der Geräteauswahltabelle deutlich angegeben ist, was wiederum zu Verwirrung führt. Sie müssen sich die Datenblattdetails ansehen.

dim
quelle
Ok, danke, wollte es nur nicht von meinem eigenen Kopf hören :)
ScienceSamovar
1
In ähnlicher Weise habe ich ein iMX-System, das sowohl "USB-Host" als auch "otg fs" hat und zwei verwendbare USB-Anschlüsse bietet - aber sie erfordern unterschiedliche Treiber! Ähnliches gilt möglicherweise für ST - dieselbe Funktionalität, für die unterschiedliche Software erforderlich ist.
pjc50
Ich bin mir sicher, dass sie Geräte hatten oder hatten, die mehrere Peripherie-Ports mit unterschiedlichen Funktionsstufen hatten. Dies ist eine eindeutige Methode, um die Funktionen für eine Reihe von Teilen aufzulisten (oder es hätte in der Vergangenheit so ausgesehen)
Sean Houlihane
Hallo! Könnten Sie etwas erweitern? Wenn ein Mikrocontroller USB OTG unterstützt, könnten theoretisch zwei USB-Anschlüsse an den Chip angeschlossen sein: 1 als USB OTG-Host (z. B. Einstecken einer Tastatur) und der andere USB als Gerät? Gibt es einen Begriff, der dieses Verhalten beschreibt?
NessDan
1
@Ness Wenn der Chip nur den USB-OTG-Block einbettet, können Sie dies nicht. Viele High-End-MCUs enthalten jedoch sowohl das USB-Gerät als auch die USB-OTG-Blöcke. Dann können Sie beide gleichzeitig verwenden und haben zwei unabhängige Ports auf Ihrer MCU: einen als Gerät und den anderen als Host, ja. Überprüfen Sie die Datenblätter.
Dim