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.
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.
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.
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.
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
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.
schwach
Ale..chenski
b20000
Ale..chenski
b20000