Forum: Mikrocontroller und Digitale Elektronik Mehr Strom am USB Port


von Hans (Gast)


Lesenswert?

Salut,

ich hätte da mal ne Frage. Ich bin gerade dabei eine Schaltung zu 
entwickeln, die über den USB Port eines beliebigen Computers (USB 2.0, 
USB 3.0 haben noch nicht alle PCs) gespiesen werden soll. Jedoch 
benötigt die Schaltung 500mA oder sogar noch mehr.

1. Bekanntlich liefert ein USB Port zu Beginn lediglich 100mA und noch 
nicht die vollen 500mA, die müssen vom PC zuerst freigegeben werden. Wie 
kann ich diese 500mA freigeben? Gibt es dafür einen Baustein, der das 
für mich macht, oder eine Beschaltung (zum Beispiel der Daten-Pins), die 
ich auf dem Print anbringen kann?

2. Ist es möglich noch mehr als die 500mA zu ziehen, wenn ja wie?

PS: Am  besten wäre eine Lösung, die ohne manuelle Änderung in den 
Einstellungen des PCs funktioniert, sprich eine Schaltung auf dem Print. 
Des öfteren wird auch von aktiven USB Hubs geredet aber das ist nicht 
was ich suche. Es sollte ohne weitere Hardware möglich sein.

Ich bedanke mich mich bereits im Voraus für euer Feedback.

Grüss Hans

von Hmm (Gast)


Lesenswert?

Hans schrieb:
> 1. Bekanntlich liefert ein USB Port zu Beginn lediglich 100mA und noch
> nicht die vollen 500mA, die müssen vom PC zuerst freigegeben werden. Wie
> kann ich diese 500mA freigeben? Gibt es dafür einen Baustein, der das
> für mich macht, oder eine Beschaltung (zum Beispiel der Daten-Pins), die
> ich auf dem Print anbringen kann?

Das steht im Descriptor.

Für das Bastelprojekt kannst du ruhig von 500mA ausgehen. Das geht so 
gut wie immer, außer an einem Buspowered Hub. Dann gibts halt eine 
Fehlermeldung. Für Eigenbau-Bastelkram ist das durchaus akzeptabel.

Für ein Serienprodukt ist das nicht tragbar.

Aber schau dir mal das an, möglicherweise ist das was für dich:
https://www.maximintegrated.com/en/app-notes/index.mvp/id/5801
Ums mal ehrlich zu sagen, damit kenne ich mich nicht aus :-)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Hans schrieb:
> 2. Ist es möglich noch mehr als die 500mA zu ziehen, wenn ja wie?
> PS: Am  besten wäre eine Lösung, die ohne manuelle Änderung in den
> Einstellungen des PCs funktioniert
Das kommt immer alles auf die genaue Implementierung der Hardware beim 
jeweiligen PC an. Ich hatte schon PCs, die konnte man mit einem 
Kurzschluss am USB neu booten lassen...

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Hans schrieb:
> Gibt es dafür einen Baustein, der das
> für mich macht, oder eine Beschaltung (zum Beispiel der Daten-Pins), die
> ich auf dem Print anbringen kann?
Bei den FT232RL-Adaptern kann man den Deskriptor über ein Tool des 
Herstellers ändern, sodass man die 500mA abfragen kann. Die 
UART-Funktionalität kann man ja einfach ignorieren. Das hat aber einen 
Nachteil: Die Schaltung weiß nicht, wann/ob der PC die 500mA überhaupt 
freigibt, und einfach 500mA zu ziehen kann schief gehen. Vielleicht gibt 
es andere IC's die das besser machen, zum Beispiel hier:
http://www.st.com/en/interfaces-and-transceivers/usb.html
Falls das nicht passend ist oder du lieber selber basteln möchtest:
Mit meinem USB-Tutorial mit STM32 könntest du so etwas selbst 
implementieren, du musst im Beispielcode praktisch nur auf 
"SET_CONFIGURATION" reagieren und einen Pin schalten, um die Schaltung 
zu benachrichtigen, dass der Strom freigegeben ist. Geht aber nur mit 
500mA (USB 2.0).

von Mad (Gast)


Lesenswert?

Hmm schrieb:
> Für ein Serienprodukt ist das nicht tragbar.

Sehr wohl, wenn auch nicht in Ordnung.

In der Industrie-Praxis werden häufig einfach 
Power-Distribution-Switches (Micrel & co), verwendet die stumpf nach dem 
Boot 5V an die Buchse legen. Nix mit 100mA aushandeln usw...

Je nach Temperatur und Typ schalten die bei 0,8 A ab oder 1 A oder oder 
oder... Wie Lothar schrieb: Manche von den Switches sind nicht schnell 
genug beim abschalten und belasten dann eben die 5 V des Boards mit 
allem was geht...

Je nach dem ob der Fragende schon weiß an welchem Host er die Baugruppe 
betreiben will, rate ich einfach dazu es zu testen. Wenn dahinter kein 
Produktivsystem steckt und der Host auch abrauchen darf bei 
Dauerbelastung....

von Jim M. (turboj)


Lesenswert?

Hans schrieb:
> 2. Ist es möglich noch mehr als die 500mA zu ziehen, wenn ja wie?

Mach es einfach. Praktisch alle 2,5" HDD Gehäuse arbeiten so - 
schnellere Platten selbst ziehen gerne mal so ~1A unter Last oder beim 
Anlaufen.

Funktioniert direkt am PC angeschlossen ganz gut, aber sehr viele Hubs 
haben dann ein Problem.

Übrigens machen das auch Gadgets wie USB Lampen oder Tassenwärmer, die 
melden sich oftmals überhaupt nicht am Bus an.

Man darf dann natürlich kein offizielles USB Logo auf des Produkt 
kleben.

Was man übrigens vermeiden sollte: Dicke Kondensatoren (>10µF) direkt an 
VBUS 5V. Das gibt Ärger beim Anstecken.

von Hmm (Gast)


Lesenswert?

Mad schrieb:
> Hmm schrieb:
>> Für ein Serienprodukt ist das nicht tragbar.
>
> Sehr wohl, wenn auch nicht in Ordnung.
>
> In der Industrie-Praxis werden häufig einfach
> Power-Distribution-Switches (Micrel & co), verwendet die stumpf nach dem
> Boot 5V an die Buchse legen. Nix mit 100mA aushandeln usw...

Eh, alles richtig.

Das

Mad schrieb:
> Hmm schrieb:
>> Für ein Serienprodukt ist das nicht tragbar.
>
> Sehr wohl, wenn auch nicht in Ordnung.
>
> In der Industrie-Praxis werden häufig einfach
> Power-Distribution-Switches (Micrel & co), verwendet die stumpf nach dem
> Boot 5V an die Buchse legen. Nix mit 100mA aushandeln usw...
>
> Je nach Temperatur und Typ schalten die bei 0,8 A ab oder 1 A oder oder
> oder... Wie Lothar schrieb: Manche von den Switches sind nicht schnell
> genug beim abschalten und belasten dann eben die 5 V des Boards mit
> allem was geht...
>
> Je nach dem ob der Fragende schon weiß an welchem Host er die Baugruppe
> betreiben will, rate ich einfach dazu es zu testen. Wenn dahinter kein
> Produktivsystem steckt und der Host auch abrauchen darf bei
> Dauerbelastung....

Das ist alles richtig. Aber die Definition von "Tragbar für ein 
Seriengerät" zweifle ich einfach mal an.

Früher oder später steckt das ein Kunde an ein fast voll belegtes 
7-Port-Buspowered Hub an, und der PC sagt "Kurzschluss". Dann ist das 
Geschrei wieder groß (ja, ich spreche aus Erfahrung...). Kunden sind 
enorm kreativ, was das Austesten von Grenzen angeht.

Aber wie schon geschrieben - für einen Bastler ist das wirklich egal, da 
kann man ruhig einfach 500mA annehmen. Mache ich Zuhause auch einfach 
so.

Host austesten ist nicht anzuraten. Aus eigenen Messungen weiß ich , 
dass das Limit oft einen starken Temperaturkoeffizienten hat.

von Michael M. (Gast)


Lesenswert?

An das Protokoll mit "..zuerst 100mA und erst bei Kommunikation und 
Anforderung 500mA" halten sich nach meinen Erfahrungen nur die wenigsten 
USB Ports. Auch USB Ports von namhaften Notebookherstellern liefern 
direkt 500mA, teilweise sogar bis 1A (USB 2.0)
Wenn du aber sicher gehen willst, musst du die Datenleitungen hochohmig 
auf ein bestimmtes Potenzial ziehen. Dies wird beim einstecken vom USB 
Port ausgewertet und er schaltet die 500mA frei. An die genauen Werte 
kann ich mich leider nicht mehr erinnern aber ich glaube mit 
(+5V)--(100k)--(D-)--(100k)--(D+)--(100k)--(GND) hat es damals bei mir 
funktioniert. Sollte allerdings nicht so schwer sein die exakten Werte 
zu finden.

von Klaus (Gast)


Lesenswert?

Michael M. schrieb:
> An das Protokoll mit "..zuerst 100mA und erst bei Kommunikation und
> Anforderung 500mA" halten sich nach meinen Erfahrungen nur die wenigsten
> USB Ports.

Das ist ja für den Host auch nicht verlangt. Das sind die Regeln für ein 
Device, der Host darf nur nicht weniger als 100mA liefern (Bus powered 
Hub) und das Device darf erst nach Erlaubnis bis zu 500mA ziehen. Wenn 
der Host immer mehr als 500mA liefert, erfüllt er alle Regeln, eine 
Strombegrenzung steht nicht in der Spec.

Michael M. schrieb:
> Dies wird beim einstecken vom USB
> Port ausgewertet und er schaltet die 500mA frei.

Richtig ist: Das Device wertet diese Widerstände aus und passt seinen 
Strom an. Der Port tut da gar nichts. Diese Widerstände in ein Device 
einzubauen ist sinnlos.

MfG Klaus

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Nur mal als Gegenbeispiel - mein P5K Asus Mainboard schaltet bei über 
110mA, die nicht angemeldet werden, den Port ab und Windows beschwert 
sich über zu viel 'Stromspannung', die aus dem Port gezogen werden.
Das gibt es also auch. Nur der Begriff der 'Stromspannung' ist etwas 
rätselhaft, aber vermutlich den Nerds bei M$ geschuldet.

von Klaus (Gast)


Lesenswert?

Matthias S. schrieb:
> mein P5K Asus Mainboard schaltet bei über
> 110mA, die nicht angemeldet werden, den Port ab

Ist ja ok, das darf er. Aber ein Port, der nicht abschaltet, ist 
trotzdem normgerecht, obwohl das hier gerne bezweifelt wird. Nur darum 
gings mir

MfG Klaus

von Michael M. (Gast)


Lesenswert?

Klaus schrieb:

> Das ist ja für den Host auch nicht verlangt. Das sind die Regeln für ein
> Device, der Host darf nur nicht weniger als 100mA liefern (Bus powered
> Hub) und das Device darf erst nach Erlaubnis bis zu 500mA ziehen. Wenn
> der Host immer mehr als 500mA liefert, erfüllt er alle Regeln, eine
> Strombegrenzung steht nicht in der Spec.

Wieso begrenzen dann einige Controller schon unter 500mA? Wäre dann doch 
nur zusätzlicher/unnötiger Aufwand für den Hersteller


> Michael M. schrieb:
>> Dies wird beim einstecken vom USB
>> Port ausgewertet und er schaltet die 500mA frei.
>
> Richtig ist: Das Device wertet diese Widerstände aus und passt seinen
> Strom an. Der Port tut da gar nichts. Diese Widerstände in ein Device
> einzubauen ist sinnlos.

Oh okay ja stimmt. Denkfehler meinerseits. Habe meine Widerstände damals 
auch Deviceseitig verbaut.


Matthias S. schrieb:
> Nur mal als Gegenbeispiel - mein P5K Asus Mainboard schaltet bei über
> 110mA, die nicht angemeldet werden, den Port ab und Windows beschwert
> sich über zu viel 'Stromspannung', die aus dem Port gezogen werden.

Wie lädt im Umkehrschluss aber dann ein Handy? Diese kommen teilweise 
sogar mit einem "USB-Kabel" ohne Datenleitungen und laden, auch am PC, 
mit ~500mA

von Schwarzseher (Gast)


Lesenswert?

Michael M. schrieb:
> Wie lädt im Umkehrschluss aber dann ein Handy? Diese kommen teilweise
> sogar mit einem "USB-Kabel" ohne Datenleitungen und laden, auch am PC,
> mit ~500mA

Nur die Billig-Händies.
Und Leute, die solche Schund-Geräte kaufen, haben auch keine 
hochwertigen Mainboards im Computer. Deshalb können die straflos 500mA 
ohne Anmeldung saugen.

von Jim M. (turboj)


Lesenswert?

Matthias S. schrieb:
> Nur mal als Gegenbeispiel - mein P5K Asus Mainboard schaltet bei über
> 110mA, die nicht angemeldet werden, den Port ab und Windows beschwert
> sich über zu viel 'Stromspannung', die aus dem Port gezogen werden.

Laut Maunual oder hast Du das auch mal ausprobiert? Wie schon gesagt: 
USB HDDs liefern 500mA (das Maximum laut Spec) im Deskriptor und saugen 
dann je nach verbauter Platte 700mA bis über 1A an 5V.

Meckert Dein Mobo auch mit solchen USB HDDs? Nein? Dachte ich mir. USB 
HDDs dürften auch der Hauptgrund sein warum USB 3 dann bis 900mA 
zulässt.

Nur extrem alte (und nur USB 1.1 fähige) Notebooks von vor 2000 hatten 
teilweise USB Ports die keine 500mA liefern können. In späteren Geräten 
verbaute man kräftigere 5V Regler.

Übrigens funktioniert das Mobo-Limit mit self-powered Hubs nicht. Die 
messen eher selten den aufgenommenen Strom.

Michael M. schrieb:
> Wie lädt im Umkehrschluss aber dann ein Handy? Diese kommen teilweise
> sogar mit einem "USB-Kabel" ohne Datenleitungen und laden, auch am PC,
> mit ~500mA

An diesem PC könnte man das so nicht laden. Aber die Handies die ich 
kenne melden brav ihre 500mA an den PC und saugen dann auch nicht mehr. 
Einige ältere Sony gehen so weit das sie die 500mA Ladung erst mit dem 
OK vom Host einschalten. Das 230V-Netzteil nutzte einen anderen Pin.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Jim M. schrieb:
> Laut Maunual oder hast Du das auch mal ausprobiert?

Ausprobiert natürlich - als ich eine Tastaturbeleuchtung per USB speisen 
wollte.

Jim M. schrieb:
> Meckert Dein Mobo auch mit solchen USB HDDs?

Ja, das tut es.

Jim M. schrieb:
> Dachte ich mir.

Falsch gedacht, Besserwisser. Eine USB Platte mit mehr als 500mA geht 
bei mir nur mit dem mitgelieferten Y-Kabel an 2 Ports.

Jim M. schrieb:
> Übrigens funktioniert das Mobo-Limit mit self-powered Hubs nicht.

Ah, ganz schlau. Natürlich funktioniert das nicht, das ist aber trivial.

Jim M. schrieb:
> An diesem PC könnte man das so nicht laden.

Mein Telefon meldet sich als 500mA Gerät an und berichtet dann von 
LowPower Ladevorgang.
Insegsamt würd ich Jim raten, nicht so viel von sich auf andere zu 
schliessen.

: Bearbeitet durch User
von Klaus (Gast)


Lesenswert?

Michael M. schrieb:
> Wieso begrenzen dann einige Controller schon unter 500mA? Wäre dann doch
> nur zusätzlicher/unnötiger Aufwand für den Hersteller

Die Idee beim Entwurf von USB war, daß der Host sein Powerbudget 
verteilen kann. Wenn er weniger als 500mA mal Anzahl der Ports zur 
Verfügung hat, kann er dynamisch solange Geräte mit 500mA zulassen, bis 
für die letzten Ports nur noch 100mA zur Verfügung stehen. Wenn man 
sowieso einen Kurzschlußschutz hat, der nicht gerade eine Polyfuse ist, 
oder einen extra Wandler, den man wegen der Akkulaufzeit auch stilllegen 
kann, ist das kein besonderer Aufwand.

Jim M. schrieb:
> Übrigens funktioniert das Mobo-Limit mit self-powered Hubs nicht.

Na sicher funktioniert das. Der Hub meldet sich mit 500mA an. An seinen 
4 Ports werden nur 100mA zugelassen. 100mA bleiben für den Hub. So ist 
das gedacht.

MfG Klaus

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.