Forum: Mikrocontroller und Digitale Elektronik USB 3.0 900mA für USB 2.0-Board


von Egon (Gast)


Lesenswert?

Hallo,

ich möchte ein Carrierboard für ein Board mit einem i.MX6 Prozessor 
designen und dieses optional über USB versorgen (Prozessor hat USB 2.0 
Funktionalitäten).
Allerdings könnten die 500mA von USB 2.0 zu wenig sein.
Jetzt ist die Frage, wenn ich mein Board über einen USB 3.0 Port am PC 
versorge, was muss ich machen um bis zu 900mA zu bekommen? Muss ich 
meinem Board irgendwie sagen, dass es ein USB 3.0 Gerät ist? Oder wird 
es automatisch bemerkt, wenn mein Board mehr als 500mA benötigt? Meine 
Recherche hat mir keine eindeutige Antwort gegeben.

Oder kann ich den Charging Mode vom USB missbrauchen und damit regulär 
versorgen ohne etwas aufzuladen?

Danke,
Egon

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Egon schrieb:
> was muss ich machen um bis zu 900mA zu bekommen? Muss ich meinem Board
> irgendwie sagen, dass es ein USB 3.0 Gerät ist?

Ja.

> Oder wird es automatisch bemerkt, wenn mein Board mehr als 500mA
> benötigt?

Nein. Übrigens darf Dein Board, via USB2.0 versorgt, auch nicht einfach 
so 500 mA aufnehmen, das darf es erst, nachdem der USB-Host den 
USB-Descriptor ausgewertet hat, in dem dieser Bedarf eingetragen ist. 
Ohne diese Interaktion darf es nur 10 mA aufnehmen.

Das alles steht fein säuberlich in der USB-Dokumentation drin.


Willst Du denn Dein "Carrierboard" wirklich an einen USB-Port eines PCs 
hängen, oder möchtest Du einfach nur ein stinknormales USB-Netzteil 
verwenden können?

In letzterem Fall musst Du Dich im Grunde genommen um überhaupt nichts 
kümmern (so, wie es z.B. der Raspberry Pi macht) - die USB-Buchse ist 
zwar eine USB-Buchse, aber mehr als +5V/GND transportiert sie nicht, das 
könnte also auch einfach eine Hohlbuchse oder eine Schraubklemme sein.

von Egon (Gast)


Lesenswert?

Rufus Τ. F. schrieb:
> Willst Du denn Dein "Carrierboard" wirklich an einen USB-Port eines PCs
> hängen, oder möchtest Du einfach nur ein stinknormales USB-Netzteil
> verwenden können?

Die Idee wäre schon gewesen den USB-Port zu nehmen um sich das Netzteil 
zu sparen.
Allerdings ist die Verbindung zu einem normalen USB-Netzteil 
möglicherweise einfacher.

Danke für deinen Input!

von Michael X. (Firma: vyuxc) (der-michl)


Lesenswert?

Technisch ist das nur ein Highsideswitch der bei >>500mA abschaltet. 
Nach Spec sinds 650mA bis 2.0, ab 3.0 sind 1,1A drin. Als Rückkanal 
dient der Overcurrentsense, damit merkt dann der Host daß dort irgendwas 
nicht stimmt.
Was der Host nicht merkt ist ob der Client jetzt 10mA oder 640mA zieht. 
Das könnte man sicher in den Treiber reinprogrammieren und zur Erkennung 
einen Currentmonitor benutzen, aber machen tuts eigentlich niemand. 
Zumindest nicht in den Referenzdesigns der Hersteller, die dann leicht 
abgewandelt in den Markt gedrückt werden.

von Thomas (Gast)


Lesenswert?

Du kannst natürlich soviel Strom ziehen wie dein Anschluss her gibt. Der 
weiß erst mal nichts von 500mA oder 900mA.
Aber: Ein USB Gerät darf nach Spec erst mal nur 100mA ziehen (low Power) 
Nach der Enumeration darf ein High Power Device dann 500mA ziehen (USB1 
oder USB2)
Nur wenn du ein USB 3 Gerät hast darfst du 900mA ziehen
Falls das Device einen Suspend bekommt sind es 0.5mA bzw 3mA. Das halten 
aber nur die wenigsten Geräte ein.
Das betrifft dich aber nur dann wenn du spec konform sein must. Die 
meisten Hosts liefern wesentlich mehr Strom in der Regel wird eine 1A 
Polyfuse zum Schutz eingebaut.
Anders ist die Sache wenn ein Hub dazwischen ist. Dort wird der Strom 
oft überwacht.
Das gibt dann die lustigen Fehlermeldungen.

Thomas

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.