Forum: Mikrocontroller und Digitale Elektronik Akku-Ladeschaltung an USB - was mit D+/D- ?


von Arndt (Gast)


Lesenswert?

Hallo,

ich will ein Modul (Akkulader, 5V, 500mA) an einem USB-Port betreiben.

Ich verbinde VBUS mit +5V des Moduls und GND mit Masse des Moduls.

So weit ist alles klar.

Meine Frage:

Müssen D+ und/oder D- auch noch irgendwie verschaltet werden, damit der 
USB-Port korrekt Spannung führt? Z.B. über einen Widerstand?

von Joachim B. (jar)


Lesenswert?

Arndt schrieb:
> So weit ist alles klar.

mir nicht, wer mit wem und warum

Ein HTC Smartphone hatte sein Ladegerät mal über 100 Ohm zwischen D+ und 
D- identifiziert und wusste das es mehr als 0,5A saugen darf.

Andere Hersteller haben verschiedenste Methoden entwickelt um den 
Tablets oder Smartphones verschiedene Ladeströme zu erlauben 
signalisieren.

In Netzteilen steckt i.d.R nicht unbedingt ein USB Controller.
In deinem Modul etwa?

Was soll denn der USB Port mit dem Modul anstellen? vor allem wenn er 
schlau ist, üblicherweise wird erst 100mA erlaubt und erst nach einer 
Aushandlung als hi power device wird am USB2 Port auch 0,5A genehmigt.

Ich weiss nicht was du vorhast und was dein Ziel ist.

von Jonathan S. (joni-st) Benutzerseite


Lesenswert?

"Eigentlich" gehört dort ein USB-Chip dran, der mit dem Host den maximal 
erlaubten Strom aushandelt und dann entsprechend nur diesen Strom 
fließen lässt. Ansonsten darf man laut Spezifikation maximal 2mA 
(Standby, unangemeldet) ziehen, wenn ich mich richtig erinnere. Wenn man 
sich anmeldet, darf man 100mA ziehen, und nach Verhandlung mit dem Host 
entsprechend mehr (meistens 500mA).

Uneigentlich lassen die meisten die Datenleitungen einfach offen und 
ziehen ihre 500mA. Wenn's ein Bastelprojekt ist, mach das so. Wenn es 
ein richtiges Produkt wird, bau besser einen passenden Chip ein.


Jonathan

von Arndt (Gast)


Lesenswert?

Also, ich habe einen MCP73831 (Laderegler). Der soll einen 
3,7V-LiIon-Akku laden.

Dafür benötigt er +5V.

Die +5V würde ich gerne von einem USB-Port oder einem 
USB-Steckernetzteil nehmen können.


Der Ladestrom ist auf etwas unter 500mA eingestellt.

von Arndt (Gast)


Lesenswert?

Jonathan S. schrieb:
> Uneigentlich lassen die meisten die Datenleitungen einfach offen und
> ziehen ihre 500mA. Wenn's ein Bastelprojekt ist, mach das so. Wenn es
> ein richtiges Produkt wird, bau besser einen passenden Chip ein.

Bastelprojekt.

von Arndt (Gast)


Lesenswert?

Jonathan S. schrieb:
> Wenn es
> ein richtiges Produkt wird, bau besser einen passenden Chip ein.

Was für einen Chip kann man da nehmen?

von Joachim B. (jar)


Lesenswert?

Arndt schrieb:
> Die +5V würde ich gerne von einem USB-Port oder einem
> USB-Steckernetzteil nehmen können.

du hast doch alle Antworten bekommen, machs so einfach ran und wenn es 
nicht funktioniert hast du einen Fehler gemacht oder die USB Quelle 
spielt nicht mit weil nix ausgehandelt wird.

von Boris O. (bohnsorg) Benutzerseite


Lesenswert?

»Battery Charging«:
http://www.usb.org/developers/docs/devclass_docs/

Aus Herstellersicht (neben anderen):
https://www.maximintegrated.com/en/app-notes/index.mvp/id/4803

Um die Beschaltung von D+/D- kommst du nur nicht drumrum, wenn mehr als 
500mA notwendig sind. Ansonsten der Abschnitt über USB-Controller und 
ihr Verhalten, non-enumerating devices zu erkennen.

von Arndt (Gast)


Lesenswert?

Danke für die vielen Antworten!

Joachim B. schrieb:
> machs so einfach ran und wenn es
> nicht funktioniert hast du einen Fehler gemacht oder die USB Quelle
> spielt nicht mit weil nix ausgehandelt wird.

Werde es gleich testen und das Ergebnis posten.

von Arndt (Gast)


Lesenswert?

Also es scheint zu funktionieren. Der Ladevorgang läuft und der PC, an 
dessen USB-Port das ganze hängt, meckert nichts an.

Sollte in Zukunft irgendwas nicht gehen, poste ich hier noch mal.

von Arndt (Gast)


Lesenswert?

PS: Danke Boris für die Links!

von Soul E. (Gast)


Lesenswert?

Boris O. schrieb:

> Um die Beschaltung von D+/D- kommst du nur nicht drumrum, wenn mehr als
> 500mA notwendig sind. Ansonsten der Abschnitt über USB-Controller und
> ihr Verhalten, non-enumerating devices zu erkennen.

Wobei der TO ebendies nicht beschalten, sondern auswerten sollte. Die 
Beschaltung sitzt im USB-Ladeport (Netzteil oder PC) und er baut ja das 
zu ladende Gerät.

Ansonsten D+/D- einfach offenlassen und mit moderat schlechtem Gewissen 
500 mA ziehen.

von Sven B. (scummos)


Lesenswert?

Arndt schrieb:
> Jonathan S. schrieb:
>> Wenn es
>> ein richtiges Produkt wird, bau besser einen passenden Chip ein.
>
> Was für einen Chip kann man da nehmen?

Der Zug ist doch eh abgefahren. Kein richtiges Produkt der Welt handelt 
mit dem Host den richtigen Strom aus, du steckst die Dinger dran und die 
ziehen ein Ampere aus dem Bus und es tut sowieso immer. Du kannst dich 
effektiv drauf verlassen dass der Controller kein Problem damit hat, 
wenn du mehr Strom ziehst als über das Protokoll ausgehandelt, denn wenn 
er das nicht tut funktioniert halt die Hälfte der Geräte nicht.

Die Idee des Standards ist auch irgendwie blöd, wenn mein Gerät 
Bus-powered ist, was soll ich denn dann machen -- extra einen Controller 
vorschalten, der erstmal aushandelt dass ich jetzt leider mehr als 2mA 
brauche, um meine Schaltung überhaupt mal in Betrieb zu nehmen?

: Bearbeitet durch User
von Arndt (Gast)


Lesenswert?

soul e. schrieb:
> Ansonsten D+/D- einfach offenlassen und mit moderat schlechtem Gewissen
> 500 mA ziehen.

"mit moderat schlechtem Gewissen" - was für eine geile Umschreibung ist 
das denn?!!!! ;O)))


Sven B. schrieb:
> Die Idee des Standards ist auch irgendwie blöd, wenn mein Gerät
> Bus-powered ist, was soll ich denn dann machen -- extra einen Controller
> vorschalten, der erstmal aushandelt dass ich jetzt leider mehr als 2mA
> brauche, um meine Schaltung überhaupt mal in Betrieb zu nehmen?

Ach, dachte, es gibt da eventuell schon fertige Bausteine im 
Cent-Bereich, die das erledigen.

von S. R. (svenska)


Lesenswert?

Sven B. schrieb:
> Die Idee des Standards ist auch irgendwie blöd, wenn mein Gerät
> Bus-powered ist, was soll ich denn dann machen -- extra einen Controller
> vorschalten, der erstmal aushandelt dass ich jetzt leider mehr als 2mA
> brauche, um meine Schaltung überhaupt mal in Betrieb zu nehmen?

Der Controller kann mit dem minimal erlaubten Strom anlaufen und sich 
anmelden. Wenn das durch ist, schaltet er die leistungsfressenden 
Bestandteile der Schaltung ein. Nicht jedes Gerät mit USB-Host ist in 
der Lage, 500 mA zu liefern, und immer mindestens 100 mA zu erlauben ist 
auch doof für akkubetriebene Hosts.

USB-OtG macht auch gerne mal bei 100 mA einen Strich. Manche Tastaturen 
und Mäuse mögen dann einfach nicht. Und ältere (feste) USB-Chipsätze 
liefern auch gerne 2-3 Ampere ohne Anmeldung - zumindest, bis sie den 
eingebauten Rauch abwerfen.

Es gibt einen Unterschied zwischen billigen, chinesischen 
USB-Heizplatten und -Raketenwerfern und dem, was die USB-Entwickler sich 
mal gedacht hatten.

von Sven B. (scummos)


Lesenswert?

S. R. schrieb:
> Sven B. schrieb:
>> Die Idee des Standards ist auch irgendwie blöd, wenn mein Gerät
>> Bus-powered ist, was soll ich denn dann machen -- extra einen Controller
>> vorschalten, der erstmal aushandelt dass ich jetzt leider mehr als 2mA
>> brauche, um meine Schaltung überhaupt mal in Betrieb zu nehmen?
>
> Der Controller kann mit dem minimal erlaubten Strom anlaufen und sich
> anmelden.

Also ich weiß nicht was du für einen Controller hast, aber meiner läuft 
mit 2 mA definitiv nicht los, geschweige denn dass man damit das USB in 
Betrieb nehmen kann.

Außerdem werde ich bestimmt nicht jedes Bauteil meiner Schaltung 
abschaltbar machen nur um mich an diesen sinnlosen Standard zu halten 
...

: Bearbeitet durch User
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.