kann ein weiblicher A-USB-Port auf einem OTG-Host verwendet werden?

Ich entwerfe ein USB-Gerät, das die ganze Zeit als Host fungiert. Anstelle einer Mini-AB-OTG-Buchse möchte ich eine klassische A-Buchse auf der Platine verwenden. Ist dies zulässig und kann dies möglicherweise zu Problemen führen?

Klarstellung: Ich stelle diese Frage, weil ich ein Gerät habe, bei dem ich die OTG-Funktionalität nutzen möchte, dh dem Benutzer die Möglichkeit geben möchte, es an den Computer ODER an ein Peripheriegerät anzuschließen, aber ich kann das Mini/ Micro-OTG-Anschlüsse und möchten klassische USB-A- und -B-Anschlüsse verwenden. Idealerweise möchte ich, dass der OTG-Port sowohl als Gerät als auch als Host kommunizieren kann, aber das ist wahrscheinlich unmöglich (?), Wenn ich also einen Weg finde, dem Benutzer zu ermöglichen, das Gerät ENTWEDER als Host oder als Gerät zu verbinden mit EINEM der beiden Ports würde das reichen.

Klarstellung Nr. 2:Ich möchte den OTG-Port in erster Linie als Host-Port verwenden, aber wenn ich ihn auch als Geräte-Port verwenden kann, ist das eine zusätzliche Funktion auf dem Gerät, an dem ich arbeite, was es attraktiver machen wird. Allerdings möchte ich keine Mini- oder Mikrostecker verwenden. Ich verstehe, dass sie der neue Trend und all das sind und dass sie großartig für Smartphones und Tablets sind, aber für die Anwendung, an der ich arbeite, können und wollen wir sie nicht verwenden. Ich möchte allen danken, die bereits geantwortet haben, ob ich einen Hostport vom Typ A verwenden kann. Irgendwelche Hinweise, wie ich einen B-Port hinzufügen könnte, der ebenfalls mit demselben OTG-Port verbunden ist, und den Benutzer das Produkt als Host oder als Gerät verbinden lassen könnte, aber nicht gleichzeitig, sondern mit einem Typ-A- und -B-Anschluss als ein einzelner Micro- oder Mini-USB-Anschluss sind sehr willkommen. Verwirrung für den Benutzer ist hier kein Problem, da wir dies im Handbuch klarstellen können (z. B. können Sie den Host- oder Geräteport verwenden, aber nicht gleichzeitig - wenn Sie den Hostport verwenden, funktioniert der Geräteport nicht). oder umgekehrt). Hoffe das macht es klar.

Warum denkst du, dass es ein Problem sein könnte? So ist es bei allen Host-Only-Appliances.
Wenn Ihr Design die ganze Zeit nur Host ist, warum erwähnen Sie dann OTG in der Überschrift?
@AliChen, weil der von mir verwendete SoC über einen OTG-Anschluss verfügt und ich sicherstellen möchte, dass ich keine Probleme verursache, wenn ich tatsächlich eine USB-A-Buchse mit dem Anschluss verwende.
Sie möchten Ihr System/Gerät also als OTG, als Port mit zwei Rollen verwenden. Dann widerspricht Ihre Klarstellung Ihrem ersten Satz, "die ganze Zeit als Gastgeber agieren". Bitte entscheiden Sie sich und formulieren Sie Ihre Frage ohne Widersprüche neu.
@AliChen Ich habe eine Klarstellung hinzugefügt, um die Verwirrung zu beseitigen. Danke für den Hinweis.

Antworten (4)

Sie können sicherlich OTG-Hardware im Mikrocontroller verwenden, um nur einen USB-Host zu erstellen. Sie müssen die OTG-Erweiterungen für nichts verwenden. Tatsächlich sollten Sie nicht einmal etwas über OTG erwähnen. Was Sie tun, ist ein Host, und daher sollten Sie einen weiblichen A-Anschluss verwenden. Und wenn Sie beabsichtigen, eine Verbindung zu einem USB-Flash-Speicher herzustellen, welchen anderen Anschluss könnten Sie verwenden? Herkömmliche USB-Flash-Speicher werden im Allgemeinen immer an A-Anschlüsse angeschlossen.

Gehen Sie also gleich vor und verwenden Sie die A-Buchse. Sie verwenden es genau so, wie es verwendet werden soll. Denken Sie daran, dass Sie die Buchse A mit 5 V versorgen müssen.

danke, was ist, wenn ich sowohl einen USB A- als auch einen B-Anschluss (klassischer Stil) an den OTG-Anschluss anschließen möchte und dem Benutzer erlauben möchte, einen der beiden zu verwenden, um entweder das Gerät an seinen Computer anzuschließen oder ein Peripheriegerät wie a Maus zum Gerät? In diesem Fall kann der OTG-Port wahrscheinlich nur als Host oder Gerät fungieren, aber nicht gleichzeitig? Gibt es eine Möglichkeit, dies elektrisch richtig zu machen? Auf dem SoC kann ich den OTG-Port als Host konfigurieren (dh erzwingen). Der Grund, warum ich frage, ist, dass ich die OTG-Funktionalität mag, aber die Mini/Mikro-Anschlüsse hasse, in unserer Anwendung sind diese ein Problem.
@ b20000: Dafür ist der ID-Pin da, also kommen Sie dafür nicht von den 5-poligen Anschlüssen weg.
@b20000, und wie wollen Sie verhindern, dass Ihre Kunden gleichzeitig zwei Kabel von einem Host und an ein Gerät anschließen?
@AliChen vielleicht mit ti.com/lit/ds/symlink/ts3usb30.pdf ? Damit sollte ich in der Lage sein, 2 Anschlüsse an denselben OTG-Anschluss anzuschließen und dann möglicherweise den VBUS zu verwenden, der am Typ-B-Anschluss bereitgestellt wird, um zu erkennen, dass etwas daran angeschlossen ist, und den D + / D- auf den Typ-B-Anschluss umzuschalten? Standard könnte Typ A Port verbunden sein.
@ b20000, ja, ein USB-Mux kann helfen, B physisch von A zu trennen und die Verwirrung des Kunden zu verringern. Technisch kannst du machen was du willst. Hier ist ein Beispiel für ein anderes, komplexeres und verwirrendes Gerät, superuser.com/questions/1136864/…
@AliChen Wenn ich diesen Mux verwende und es schaffe, ihn mit dem Vorhandensein von VBUS umzuschalten oder nicht, was mache ich mit dem ID-Pin? Auf dem SoC habe ich die Möglichkeit, den OTG-Port in den Host-Modus zu zwingen. Ich bin mir nicht sicher, wie das mit dem ID-Pin zusammenhängt.
@AliChen, dieses verwirrende Gerät, auf das Sie sich beziehen, ist ein guter Grund, KEINEN Typ C- oder Mikro- / Mini-OTG-Anschluss zu verwenden :-)
Der ID-Pin sollte korrekt mit der VBUS-Präsenz am B-Anschluss verbunden sein.
@AliChen würde es ausreichen, den ID-Pin intern über ein Pulldown an GND anzuschließen, wenn VBUS vorhanden ist?
@b20000, ??? Sie müssen entscheiden, wie Ihre Ports funktionieren sollen, vorzugsweise auf klare und vernünftige Weise. Zeichnen Sie das Gerätezustandsdiagramm für alle Anwendungsfälle und gestalten Sie die ID-Pin-Steuerung entsprechend.

Der physische Anschluss ist nicht zwingend erforderlich, damit er funktioniert. Es ist zwingend erforderlich, die Vorschriften einzuhalten und den Endbenutzer ehrlich gesagt nicht zu verwirren. Wenn Ihr Gerät ein Vollzeit-Host sein soll, unabhängig von seinen OTG-Fähigkeiten, dann fahren Sie fort und verwenden Sie die USB-A-Buchse in voller Größe. Das ist eine vollkommen legitime Verwendung. In diesem Fall sollte der ID-Pin Ihres Mikrocontrollers für den Host-Modus dauerhaft auf Ihrer Platine verdrahtet sein, wenn Sie dies in Ihrem Code nicht tun können.

USB Typ-A hat keinen ID-Pin :-)
Zur Verdeutlichung: Der Mikrocontroller mit OTG-Fähigkeit kann einen ID-Pin haben, der gebunden werden müsste, wenn er nicht im Code behandelt wird.
Außerdem kann man nicht "konform" sein, wenn man nicht standardmäßige nicht konforme Steckverbinder verwendet. Es handelt sich also entweder um Micro-AB (Mini-Anschlüsse werden ausgemustert) oder um eine Typ-A-Steckdose. Oder Typ-C.
ok, ich sehe, dass das OP "OTG" im Titel hat, was bedeuten könnte, dass die Hauptverwirrung darin besteht, was mit der zusätzlichen OTG-Funktionalität zu tun ist. Dann ist Ihre Bemerkung zum ID-Pin gut angebracht.
Wie wäre es mit zwei Anschlüssen und einem verschiebbaren Stück Kunststoff, das jeweils nur einen freilegt? Würden die Standards zulassen, dass ein Gerät ein konformer Host ist, wenn sich der Schieber in einer Position befindet, die nur einen Typ-A-Anschluss freilegt, und ein konformes Gerät, wenn sich der Schieber in einer Position befindet, in der nur der Typ-B-Anschluss freigelegt ist? Ich habe Computer mit einem 5-poligen DIN- und PS/2-Tastaturanschluss gesehen.
@supercat, das scheint ein seltsam spezifischer Randfall zu sein, und ich bezweifle den USB - wenn er sich dafür entschieden hat. Ich kann jedoch nicht erkennen, warum es nicht standardkonform sein sollte, wenn die Anschlüsse zu einem bestimmten Zeitpunkt nur konform verwendet werden.

Ja, die Standard-Typ-A-Buchse ist immer noch eine Standardmethode für das USB-Host-Design.

Die Industrie bewegt sich jedoch in Richtung Typ-C-Steckverbinder. Der Typ-C mag auf den ersten Blick zu kompliziert aussehen, aber Sie können sich für eine minimale Typ-C-Konfiguration (nur USB2.0, CC-Pins 56k Pullup) entscheiden, um die grundlegende Hostfunktionalität bereitzustellen, ohne jedoch vollständig USB-kompatibel zu sein.

Wenn Sie jedoch die OTG-Funktionalität verwenden möchten (gemäß Fragenklärung), ist dies mit einer Typ-A-Buchse nicht möglich, da der A-Anschluss nicht über den erforderlichen ID-Pin zum Umschalten der Funktion verfügt.

Der OTG-Port hat nur zwei physische Datenleitungen, D+ und D-. Der Bus KANN NICHT GLEICHZEITIG GERÄT UND HOST SEIN! Es entweder das eine oder das andere. In Ihrer MCU gibt es zwei verschiedene logische Funktionen/Controller, einen Host-Controller und einen Geräte-Controller. Sie teilen sich einen einzigen USB-PHY, mittels internem Multiplexer von zwei verschiedenen Datenpfaden.

Sie können jedoch zwei USB-Anschlüsse, eine Typ-B-Buchse und eine Typ-A-Buchse, anschließen, D + / D- elektrisch parallel verbinden, aber den VBUS vom B-Anschluss als OTG-Schaltsignal verwenden. Das wird eine hässliche Weisheit darstellen, es widerspricht jeder USB-Spezifikation und es wird massive Benutzerverwirrung stiften.

Natürlich wird es für eine Weile eine große Unannehmlichkeit für den Benutzer sein, aber Typ-C wird Ihr Design zeitgemäß cool aussehen lassen (und für Sie teurer in der Herstellung sein :-( )

Irgendwelche Hinweise, wie ich einen B-Port hinzufügen könnte, der ebenfalls mit demselben OTG-Port verbunden ist, und den Benutzer das Produkt als Host oder als Gerät verbinden lassen könnte, aber nicht gleichzeitig, sondern mit einem Typ-A- und -B-Anschluss als ein einzelner Micro- oder Mini-USB-Anschluss sind sehr willkommen.

Afaict, was Sie in diesem Fall tun möchten, ist

  1. Verwenden Sie einen USB-Mux-Chip.
  2. Verwenden Sie die VBUS-Leitung vom B-Anschluss als Steuerleitung.

Wenn Vbus am B-Anschluss vorhanden ist, schalten Sie den MUX auf den B-Anschluss und signalisieren dem Prozessor, in den Gerätemodus zu wechseln (z. B. indem Sie seinen ID-Pin hoch* treiben).

Wenn Vbus am B-Anschluss nicht vorhanden ist, schalten Sie den MUX auf den A-Anschluss und signalisieren dem Prozessor, in den Host-Modus zu wechseln (z. B. indem Sie seinen ID-Pin auf Low* treiben).

Wenn die beiden Buchsen nahe beieinander liegen, Sie sich nicht um die Einhaltung von Standards kümmern und darauf vertrauen, dass Ihre Benutzer nicht beide Kabel gleichzeitig einstecken, können Sie möglicherweise den Mux-Chip überspringen.

* Achten Sie jedoch auf die Spannungspegelspezifikationen für den ID-Eingangspin, Sie möchten ihn wahrscheinlich nicht direkt mit Vbus verbinden.