Hej,
also rein von meinem bisherigen Verständnis gibt mir ein USB-Anschluss
erstmal 100 mA, wenn ich was angeschlossen habe und wenn ich 500 mA
möchte, muss ich mir das erst vom USB freigeben lassen.
Nun habe ich eine Applikation in Planung, die normalerweise von einem
Lipo über einen Buck-Boost-DC-DC-Converter versorgt wird und ein MCU die
Applikation ausschaltet, wenn eine gewisse Batteriespannung
unterschritten wird, so dass es nicht zur Tiefentladung kommen kann.
Ausgeschaltet wird auch automatisch, wenn ich die Applikation aus der
Hülle nehme (das ist sowieso funktions-/handlingbedingt regelmäßig
nötig) und dann liegt auch ein USB-Anschluss frei, der widerum zum Laden
des Lipos verwendet werden soll. Das Laden funktioniert auch in meinen
Gedanken einfach über einen MCP7381, den ich ja wiederrum extern über
einen Widerstand auf einen Ladestrom von 500mA "programmieren" kann.
Nun wäre meine Frage, wie bekomme ich am einfachsten die 450-500mA aus
dem USB raus?? Ich meine es gibt ja mittlerweile anscheinend Prototypen
von selbstenummeriernden Chips (z.B. MAX8895), wo aber schon das
Datenblatt nur auf Anfrage erhältlich ist. Gibt es da nicht auch
einfachere Lösungen?
Ich habe schon Ladeschaltungen gesehen, wo einfach vom USB
D+/D-/ID-Stecker auf Masse kurzgeschlossen sind. Was bewirkt das?
Danke für die Hilfe!
Das Jumpern und Kurzschließen der Leitungen kann einem USB Gerät das an
ein Netzteil angeschlossen wird signalisieren wie viel Strom es kriegen
kann, ist also genau das falsche Ende für Deine Anwendung.
Der IO-Warrior24 PowerVampire ist ein Chip der genau dafür gebaut ist
Strom vom USB anzufordern:
http://www.codemercs.com/index.php?id=64&L=0
Naja...also es wird sich niemand anderes den Strom klauen, da so wie
vorgesehen der andere USB-Stecker-Partner nur einfach vorhanden ist (und
somit theoretisch volle 500 mA geben könnte) und gleichzeitig als
Aufbewahrung für die Applikation dient, wo man sie halt einfach
reinsteckt, damit sie nicht im Weg liegt oder verloren geht.
FT232R, dort kann man im EEPROM den Strombedarf einstellen und einen Pin
bei erfolgreicher Anmeldung schalten lassen.
Zusätzlich könntest du so auch den Ladezustand auf dem Terminal
auswerten, wenn dein Chip ein UART hat.
Kennst du schon LM3658? Der Chip kann wahlweise vom Netzteil oder USB
laden und stellt den Strom von 100mA bis 1A passend ein, je nach Quelle.
Leider meldet er sich nicht am Bus an.
N'Abend,
jontheodomar schrieb:> also rein von meinem bisherigen Verständnis gibt mir ein USB-Anschluss> erstmal 100 mA, wenn ich was angeschlossen habe und wenn ich 500 mA> möchte, muss ich mir das erst vom USB freigeben lassen.
Also das habe ich gerade noch mal ausprobiert, bevor ich hier
gepostet habe und eins ist sicher, auf einem alten P1/100, K6/200,
AMD Athlon XP 2800, AMD Phenom und AMD Opteron Board kann ich
immer 500mA ziehen, ohne das ich den On-Board USB-Controller
dazu überreden muß.
Und wenn ichd as richtig lese, muß das Device anmelden WIEVIEL
Strom es benötigt und das wars. Da kein einziges Mainboard über
seperate Power-Switchs verfügt (Unter Windows wird ja beim Eject
die Spannung abgeschaltet), welche den Strom messen, kannste
ziehen, bis die Leitebahn abraucht, denn sonnst könnte man auch
keine externe 2"5 Festplatte am USB-Port betreiben, denn die
zieht beim Anlaufen 1A
> Nun wäre meine Frage, wie bekomme ich am einfachsten die 450-500mA aus> dem USB raus?? Ich meine es gibt ja mittlerweile anscheinend Prototypen> von selbstenummeriernden Chips (z.B. MAX8895), wo aber schon das> Datenblatt nur auf Anfrage erhältlich ist. Gibt es da nicht auch> einfachere Lösungen?> Ich habe schon Ladeschaltungen gesehen, wo einfach vom USB> D+/D-/ID-Stecker auf Masse kurzgeschlossen sind. Was bewirkt das?
Garantiert nicht an der Ladeschaltug, sondern an dem Netzteil das
die 5V über eine USB-Buchse bereitstellt. Das Kurzschließern
sagt dem USB-Device, das es an einem Netzteil angeschlossen ist
und bedenkenlos 500mA ziehen darf.
Grüße
Michelle
Michelle Konzack schrieb:> denn sonst könnte man auch keine externe 2"5 Festplatte am> USB-Port betreiben, denn die zieht beim Anlaufen 1A
Das funktioniert NICHT an jedem PC, sondern nur in vielen glücklichen
Fällen.
oszi40 schrieb:> Michelle Konzack schrieb:>> denn sonst könnte man auch keine externe 2"5 Festplatte am>> USB-Port betreiben, denn die zieht beim Anlaufen 1A>> Das funktioniert NICHT an jedem PC, sondern nur in vielen glücklichen> Fällen.
Inzwischen ist es anscheinend nicht mehr die Regel, sondern eher
die Ausnahme, das sich dir PCs an die USB-Konventionen halten...
Gruss
Harald
PS: Wie ist das eigentlich bei USB 3 ? Muss dort auch erhöhter
Strombedarf angemeldet werden?
Malzeit
erst mal stellt sich die frage, ob gewerblich eingesetzt, oder privater
bastelkram. bzw soll es usb konform sein (mot oder ohne kuckuck) oder
einfach nur laufen?
Wenns einfach nur laufen soll, ausprobieren, und wenns tut sich darüber
freuen.
Wenn usb konform, dann gibt es da noch ein paar mehr hürden bzw
allgemeines unwissen.
1. 100mA darf man NUR ziehen wenn man auch über usb kommuniziert / sich
enummeriren läst. ansonsten darf man nur 2,5mA ziehen. (Suspend)
2. biz zu 500mA muss man am USB Host anfordern, der das auch ablehenen
kann.
3. ggf mal die USB Charging specification lesen. die ist hier ganz
aufschlusreich. z.B. bis zu 1,5A zum laden, ...
4. die ganzen USB Ladegeräte (oder wie man sich auch immer nennen mag)
verhalten sich zum grossen teil nicht nach spec.
5. es gibt auch bei batterie betriebenen usb geräten noch ein paar
ausnahmen mit jeder menge einschränkungen (z.B. die 100mA für bis zu
45Min, wenn ..... )
...danke erstmal für die ganzen Antworten! Ich hab mich jetzt
mittlerweile für den FTDI (FT232R) in Kombination mit dem ohnehin schon
eingeplanten MCP7381-Lade-IC entschieden...somit bleibt alles konform
(denn es ist gewerblich...auch wenn man an manchen Antworten ja die
Konformitätstreue manch anderer gewerblicher Anwendung ablesen
kann)...auch wenn der FTDI-Chip finanziell ganz schön reinhaut...aber
ich denke, mit dem kann man das ordentlich realisieren.
Hallo,
der FTDI hat nur den Nachteil, das der Anwender einen Treiber
installieren muss (je nach Betreibssytem) - was zum reinen Laden
natürlich recht ungünstig ist.
Sonst bräuchte man ein USB-Gerät, das sich als HID anmeldet - das geht
immer.
Sascha
@jontheodomar:
Was macht Deine geplante Applikation eigentlich, wenn der USB-Host auf
die 500mA-Anforderung antwortet:
"Tut mir leid, die 100mA müssen reichen!"
(Kann zum Beispiel passieren, wenn es ein passiver Hub ist)
jontheodomar schrieb:> auch wenn der FTDI-Chip finanziell ganz schön reinhaut
Dann nimm halt einen kleinen µC mit USB, z.B. den PIC 18F14K50. Von
Microchip gibt es komplette Libs für USB so dass die Programmentwicklung
auch kein größeres Problem ist.
Btw: Mein ASUS-Mainboard (Typ weiß ich grade nicht, Sockel AM3 mit USB3)
meckert regelmäßig, wenn ich Bastelsachen anstecke, die über 100mA
ziehen. In dem Fall wird der Port von Windows abgemeldet / nicht
angemeldet. Dieses Verhalten habe ich aber auch erst jetzt am neuen PC
festgestellt.
Michelle Konzack schrieb:> Und wenn ichd as richtig lese, muß das Device anmelden WIEVIEL> Strom es benötigt und das wars. Da kein einziges Mainboard über> seperate Power-Switchs verfügt (Unter Windows wird ja beim Eject> die Spannung abgeschaltet), welche den Strom messen, kannste> ziehen, bis die Leitebahn abraucht, denn sonnst könnte man auch> keine externe 2"5 Festplatte am USB-Port betreiben, denn die> zieht beim Anlaufen 1A
Falsch. Zuerst ist bei einer externen Platte nur der Controller aktiv,
der die Platte USB-mäßig am System anmeldet und um den nötigen Strom
bettelt. Erst wenn der bewilligt ist, wird die Platte eingeschaltet und
die Laufwerksmotoren laufen an. Bei einem Strom von 1A gibt es aber
schon öfters Probleme, gerade auch bei neuen PCs. Die (hohe)
Stromaufnahme von USB-Platten ist übrigens auch der Hauptgrund, warum
PVR-Receiver vielfach mit denen nicht zusammenarbeiten wollen.
bitte Namen einfuegen schrieb:> "Tut mir leid, die 100mA müssen reichen!"
Dann liegt es an der Intelligenz der Applikation, dafür einen passenden
Workaround zu haben. Im Extremfall kann die Anwendung nicht arbeiten, z.
B. externe Festplatte.
bitte Namen einfuegen schrieb:> "Tut mir leid, die 100mA müssen reichen!"
IIRC klappt das bei Windows (XP) sowieso nicht.
Eigentlich ist dafür vorgesehen, dass das Gerät mehrere Configurations
mit unterschiedlichem Stromverbrauch im Descriptor hat. Wenn der Strom
nicht für die erste reicht, sollte der Host halt per SetConfiguration
auf die zweite umschalten.
Windows hat aber nur den Stromverbrauch der ersten Configuration
geprüft, wenn der zu groß ist, wird das Gerät in den Suspend geschickt,
ohne die weiteren Configs zu konsultieren.
(Wie gesagt, so wars unter XP, unter 7 hab ich das noch nicht
ausprobiert)
bitte Namen einfuegen schrieb:> Was macht Deine geplante Applikation eigentlich, wenn der USB-Host auf> die 500mA-Anforderung antwortet:>> "Tut mir leid, die 100mA müssen reichen!">> (Kann zum Beispiel passieren, wenn es ein passiver Hub ist)
...ist in dem Sinne ein Fehlerfall,dass die Applikation an den falschen
Host gesteckt wurde...so kann halt dann nur mit 100mA geladen werden
(Pech für den Anwender)...ich mein eigentlich sollte schon ca. 500mA
erreicht werden, einfach für die Zeit im allgemeinen Workflow, die
vorgesehen ist, um das Teil zu Laden...aber in dem Sinne bekommt der
Benutzer ja über eine Lade-LED angezeigt ob fertig geladen ist oder
nicht...demzufolge kann er, wenn nach 5h immer noch nicht mit Laden
Schluss ist, mal in die Bedienungsanleitung schauen und feststellen,
dass er es doch bitte zum Laden an den bestimmten Host stecken soll, der
auch dafür vorgesehen ist...
Sascha Weber schrieb:> Hallo,>> der FTDI hat nur den Nachteil, das der Anwender einen Treiber> installieren muss (je nach Betreibssytem) - was zum reinen Laden> natürlich recht ungünstig ist.> Sonst bräuchte man ein USB-Gerät, das sich als HID anmeldet - das geht> immer.>> Sascha
...ist kein Problem...die Software auf Host-Seite ist in meiner Hand
(die Applikation mit dem Laden über USB ist nur eine Zusatzanwendung zu
sowieso schon bestehenden Anwendungen)
Jens schrieb:> Dann nimm halt einen kleinen µC mit USB, z.B. den PIC 18F14K50. Von> Microchip gibt es komplette Libs für USB so dass die Programmentwicklung> auch kein größeres Problem ist.
ja...gute Idee...aber im Prototyp soll es erstmal nicht auf 4-5€
ankommen...und für AVR hab ich hier schon ein super Developement Board
mit Atmega16 zu liegen...außerdem soll der µC während des Ladens aus
sein...
Es gibt noch zwei andere Stolpersteine:
Billige USB-Kabel:
Dein Gerät meldet sich ordnungsgemäß an, bekommt die 500mA genehmigt,
erhält aber anstatt 5V nur 3V, der Rest erwärmt das Kabel.
Manche Laptops:
Können nicht mehr als 300mA liefern, obwohl sie etwas anderes behaupten.
Hinzu kommen diverse Varianten von nicht konformen USB-Ladegeräten, da
der Standard erst im Nachhinein veröffentlicht wurde.
Kabel wo nur 3V rauskommen ist nicht usb konform! wenn da überhaupt ne
usb kommunikation fuktioniert ist dann schon ein Wunder. bzw der USB
detect dürfte da dann eigentlich erst gar nicht laufen. da keine 5V
erkannt werden
ein USB host der nur 300mA liefert obwohl er 500mA Configuration
aktzeptirt ist auch nicht usb konform.
aber es gibt da noch nen kleinen gemeinen stoplerstein
USB Suspend. 2,5mA düfen da nur gezogen werden. und was machen wenn der
akku tot ist?
123 schrieb:> Kabel wo nur 3V rauskommen ist nicht usb konform! wenn da überhaupt ne> usb kommunikation fuktioniert ist dann schon ein Wunder. bzw der USB> detect dürfte da dann eigentlich erst gar nicht laufen. da keine 5V> erkannt werden>> ein USB host der nur 300mA liefert obwohl er 500mA Configuration> aktzeptirt ist auch nicht usb konform.>> aber es gibt da noch nen kleinen gemeinen stoplerstein>> USB Suspend. 2,5mA düfen da nur gezogen werden. und was machen wenn der> akku tot ist?
...ich denke mit einem FT232R kann ich den suspend-mode umgehen??...
und das der akku tot geht, wird durch die selbstabschaltung seitens des
mikrocontrollers verhindert...mein favourisierter 3,7V-akku hat eine
minimal-spannung von 2,5 V...durch den mikrocontroller wird einfach
einmal in der minute per timer-interrupt die batterie-spannung über ADC
(und einen spannungsteiler bei µC-interner bandgap-referenz)
gemessen...ab 3 V akustisch/per LED gewarnt, dass er bald alle ist...ab
2,8 V die ganze einheit abgeschaltet...dann ist der akku nur noch sich
selbst überlassen also mit seiner selbstentladung (ca. 4% pro
monat)...dann sollte es noch geschafft werden ihn irgendwann mal wieder
anzuschließen...oder man wäre dann wirklich selbst schuld und der akku
müsste gewechselt werden (ist ja nicht fest eingelötet oder so)...
Hallo!
Warum nimmst du nicht einfach ein Y-USB-Kabel. Der eine Stecker hat
Betriebsspannung + Datenleitungen und der 2. Stecker holt sich
zusätzlich Strom aus der zweiten Buchse. Somit sollten 500mA möglich
sein, zumindest mein Sony Vaio Notebook kann pro USB-Anschluss 250mA
liefern. 250mA x 2 = 500mA ;)
nochmal
ein usb port hat 100mA zu liefern. nach der enumeration /
setConfiguration kann wenn in der configuration angegeben strom gezogen
werden, das sind bei USB2.0 bis zu 500mA. läuft keine Usb kommunikation
(USB Suspend) sind nur noch 2.5mA strom zu ziehen.
ein Y kabel ist genauso daneben, wie ein host port der nur 350mA
liefert, aber 500mA configurationen akzeptiert.