Muss ein USB-Gerät mit eigener Stromversorgung über den Host-Port eine Verbindung zu VCC herstellen?

16

Ein USB-Peripheriegerät mit eigener Stromversorgung versorgt sich selbst mit Strom. Ist es also in Ordnung, nur D +, D- und GND an den Host-Port anzuschließen, oder müssen Sie immer auch +5 V anschließen und dann auf die Aushandlungsphase für das Gerät warten Um dem Host mitzuteilen, dass er über eine eigene Stromversorgung verfügt und daher keine Stromversorgung möchte, vielen Dank.

Das spezielle Peripheriegerät, das ich betrachte, basiert auf einem FTDI FT4232H USB-zu-Seriell-Adapter, aber ich hoffe wirklich auf eine generische Antwort auf die Frage.

kbro
quelle
1
FTDI hat viele App-Notizen und Informationen dazu in seinen Datenblättern. Hast du es dir angesehen?
Gustavo Litovsky
Das FTDI-Datenblatt ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT4232H.pdf zeigt, dass der VBUS über eine Widerstandsbrücke mit RESET # verbunden ist, sodass das Gerät (vermutlich) durch Abziehen des USB-Kabels zurückgesetzt wird (wenn es dann über den Bus mit Strom versorgt wurde) Wenn Sie das USB-Kabel abziehen, wird das Gerät natürlich komplett ausgeschaltet!). Die Frage ist jedoch, ob die Last auf VBUS für den USB-Host etwas bedeutet und ob die fehlende Last, die VBUS n / c zurücklässt, das USB-Handshaking beeinträchtigt.
Kbro
USB hat normalerweise keine Ahnung, ob etwas angeschlossen ist. Wenn Sie nicht mehr als 100 mA ziehen, kann es nicht sagen, ob etwas angeschlossen ist.
Gustavo Litovsky
@GustavoLitovsky Eigentlich haben USB-Hosts überhaupt keine Möglichkeit, zwischen Nullstrom und 100-mA-Strom zu unterscheiden. Das einzige Mittel, das in den USB-Spezifikationen definiert ist, ist das Auftreten von Überstrom, der weit über 500 oder 900 mA liegt. Es kann jedoch alles unter Verwendung zusätzlicher Schaltkreise und zusätzlicher GPIO-Pins entworfen werden.
Ale..chenski

Antworten:

6

Die allgemeine Antwort auf diese Frage lautet "Ja". Der VBUS (+ 5 V vom Kabel) muss an das Gerät angeschlossen werden, auch wenn es mit Strom versorgt wird. Der Grund ist wie folgt:

Um den Verbindungsvorgang auf der Host-Seite zu starten, muss das Gerät D + (im FS / HS-Modus) oder D- (im Fall eines LS-Geräts) hochziehen.

USB-Spezifikationen schreiben jedoch zwingend vor, dass kein USB-Gerät Strom an einem Schnittstellen-Pin abgibt, es sei denn, es ist an ein Kabel angeschlossen (siehe Abschnitt 7.1.5.1).

Die Spannungsquelle am Pull-up-Widerstand muss von der Stromversorgung über das USB-Kabel abgeleitet oder gesteuert werden , sodass der Pull-up-Widerstand beim Entfernen von VBUS keinen Strom auf der Datenleitung liefert, an die er angeschlossen ist.

Wenn ein USB-Gerät nicht über diese Steuerung verfügt, ist eine der Datenleitungen eine Stromquelle. Vorzeitige Behauptung von Klimmzügen war eine Quelle von Problemen für einige ältere USB-Hosts. Aus diesem Grund wurde diese Regel eingeführt, und im USB-IF-Zertifizierungsprogramm gibt es dafür einen speziellen Test .

Daher ist der USB-VBUS ein wichtiges "Side-Band" -Signal im USB-Verbindungsprotokoll. Daher verfügen normale USB-Geräte-ICs über einen separaten Eingangspin, um das Vorhandensein eines USB-Hosts festzustellen. Einige IC-Hersteller (z. B. FT232H, MCP2221 usw.) überspringen diese Anforderung und gehen davon aus, dass ihr Chip nur in einer busgespeisten Konfiguration verwendet wird, in der die Pull-up-Steuerungsanforderung automatisch erfüllt wird. Wenn diese Chips jedoch in Designs mit eigener Stromversorgung ausgeführt werden, sind einige zusätzliche Schaltungsanstrengungen erforderlich, um die Aktivierung von Pull-ups mit dem Vorhandensein von VBUS am USB-Anschluss zu verknüpfen.

In Bezug auf das "Handshake" -Protokoll für die USB-Verbindung ist USB nicht auf den von VBUS entnommenen Strom angewiesen. Das Protokoll lautet wie folgt: Auf dem Host-Port muss VBUS aktiv sein. VBUS ist mit dem Gerät verbunden; Gerät erkennt den VBUS und zieht 1.5k an einem der D + / D- Drähte hoch; Der Host erkennt diese Verbindung und aktiviert nach einer Verzögerung von 100 ms die USB_RESET-Signalisierung (SE0 usw.).

Ale..chenski
quelle
18

Wenn ein Gerät mit eigener Stromversorgung keine 5-V-Spannung an die 5-V-Spannung des Hosts anschließt, kann die Stromversorgung unterbrochen werden. GNDund D+, D-tut gut.

Wohlgemerkt , dass das Niveau für D+und D-für + 3.6V max, nicht auf 5 V bewertet wie man erwarten könnte!

jippie
quelle
4
Es lohnt sich jedoch, den VBUS zu überwachen, um Unterbrechungs- / Verbindungszustände zu erkennen, da bei der anfänglichen Aushandlung von USB Pull-ups auf D + und D- erforderlich sind. Es gab einmal Probleme, bei denen ein Hub die Geräte je nach der Reihenfolge, in der der Hub mit eigener Stromversorgung und die Geräte mit eigener Stromversorgung eingeschaltet waren, nicht ordnungsgemäß auflisten konnte, es sei denn, Sie beobachten VBUS. Die Lösung bestand darin, einen potenziellen Teiler auf VBUS zu verwenden, um damit umzugehen.
Jxj
1
Aus dem gleichen Grund sollte der Pullup-Widerstand, der einen Host über das Anschließen eines Geräts informiert und dessen Anfangsgeschwindigkeit angibt, auf VBUS bezogen werden, nicht auf die lokale Stromversorgung des Geräts.
Dave Tweed
1
Hmmm - das Callout-Feld "Selbstversorgende Geräte" auf usbmadesimple.co.uk/ums_2.htm sagt ähnlich - ziehen Sie weder D + noch D- über VBUS. Interessanter ist, fahren Sie nicht D + oder D-, wenn VBUS ausgeschaltet ist. Das FT4232H-Datenblatt ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT4232H.pdf zeigt, dass VBUS eine Verbindung zu RESET # herstellt, was mit der Meldung "Fahren Sie nicht, wenn VBUS ausgeschaltet ist" zusammenhängt, aber es scheint keine zu geben garantieren, dass D + / D- beim Zurücksetzen immer unter VBUS liegen. Ich dachte, der springende Punkt beim Zurücksetzen ist, dass D + entweder über oder unter D- liegt, nicht dass es nahe an VBUS liegt.
Kbro