USB Spannungsversorgung + Netzteil

Gast #6492346
Lesenswert?

Die Frage ist sicherlich nicht neu, aber ich habe keine 
zufriedenstellende Antwort bisher finden können:

Es geht um die Stromversorgung über USB und zusätzlich extern für einen 
STM32F1 mit USB.

Das Gerät benötigt im idle Modus < 200mW aber während es etwas tut, bis 
zu 4 Watt maximal.

Nur eine externe Stromversorgung ist sicherlich sehr ungünstig, da dann 
nur D+, D- und GND verbunden wird und sofern keine Spannungsversorgung 
vorhanden ist, D+ und D- über die internen Schutzdioden geclampt werden?

Eine Andere Möglichkeit wäre, die 5V des USB Ports für die 
Spannungsversorgung zu nutzen und das externe Netzteil ebenfalls. Beide 
über Dioden, sodass wenn vorhanden, das externe Netzteil mit einer 
Spannung > 5V übernimmt (vor dem BuckConv.).
Dazu würde ich dann noch eine Netzteil-Erkennung einbauen, bevor das 
Gerät in den Betriebsmodus wechselt prüft es, ob das Netzteil vorhanden 
ist und sobald es ausgesteckt ist, schaltet es sofort aus. Die Zeit 
dazwischen sollte ein kleiner Kondensator überbrücken können. (So kann 
die Software den Benutzer freundlich auf die Notwendigkeit des Netzteils 
hinweisen und das ganze wäre fast DAU kompatibel ...)

Leider kommen mir beide Lösungen etwas unprofessionell vor, daher würde 
ich gerne von euch ein paar Ratschläge haben. Es ist zwar nur eine Hobby 
Bastelei, aber wenn man schon etwas bastelt, dann doch sinnvollerweise 
auch vernünftig.

Danke :)
Gast #6492480
Lesenswert?

Dazu gibt die Application Note AN4879. Sie bestätigt, dass der STM32 mit 
Spannung versorgt sein muss, bevor die Datenleitungen kontaktiert 
werden.

Dort empfehlen sie einen 3,3V Spannungsregler zwischen USB-Buchse und 
STM32. Zusätzlich kann der STM32 optional von extern versorgt werden. 
Die meisten Spannungsregler (ich kann dazu den LF33 empfehlen) kommen 
damit problemlos klar. Dioden sind nicht nötig.

Auf die Clamping Dioden solltest du dich besser nicht verlassen. Denn an 
den 5V toleranten Eingängen (DP und DM) darf kein positiver Strom 
"injected" werden. Negativer Strom ist bis 5mA erlaubt. Siehe "Absolute 
maximum ratings" im Datenblatt.

Vor DP und DM gehört eigentlich immer eine externe Schaltung zum Schutz.
#6492490
Lesenswert?

Erwin schrieb:
> Nur eine externe Stromversorgung ist sicherlich sehr ungünstig, da dann
> nur D+, D- und GND verbunden wird und sofern keine Spannungsversorgung
> vorhanden ist, D+ und D- über die internen Schutzdioden geclampt werden?

D+ und D- werden im Host auf GND gezogen, d.h. es macht nix wenn da 
keine Spannung anliegt. USB Stecker stellen mechanisch sicher das GND 
vor D+ u. D- verbunden wird.
Gast #6492519
Lesenswert?

Stefan ⛄ F. schrieb:
> Vor DP und DM gehört eigentlich immer eine externe Schaltung zum Schutz.

Da hätte ich jetzt z.B. den typischen USBLC6-2SC6 genommen, der würde 
dann an USB 5V und USB GND angeschlossen. Danach würde dann der MCU 
kommen.


Ich frage mich aber, wie jetzt folgendes Szenario wäre:

Die gesamte Platine wird nur von externen 12V versorgt, woraus dann die 
3.3V generiert werden. 12V ist jetzt nicht angesteckt. Per USB ist 
lediglich GND, D+ und D- verbunden. Das Gerät wird nur per USB 
eingesteckt. Was passiert nun?

Liegen die Leitungen im "Nullzustand" beide mit Pulldowns auf low und 
warten darauf, vom MCU mit dem 1.5K auf D+ hochgezogen zu werden zwecks 
Initialisierung? Dann wäre das ja ok, denn das passiert ja erst, wenn 
wir 3.3V zur Versorgung des MCUs hätten?

Sorry für meine Fragen, aber USB ist für mich Neuland
Gast #6492562
Lesenswert?

Erwin schrieb:
> Liegen die Leitungen im "Nullzustand" beide mit Pulldowns auf low und
> warten darauf, vom MCU mit dem 1.5K auf D+ hochgezogen zu werden zwecks
> Initialisierung? Dann wäre das ja ok, denn das passiert ja erst, wenn
> wir 3.3V zur Versorgung des MCUs hätten?

Wenn danach jemand im laufenden Betrieb das Netzteil des STM32 
abschaltet, hast du an den beiden USB Pins des STM32 Spannungen 
außerhalb der Spezifikation.
Gast #6492586
Lesenswert?

Stefan ⛄ F. schrieb:
> Wenn danach jemand im laufenden Betrieb das Netzteil des STM32
> abschaltet, hast du an den beiden USB Pins des STM32 Spannungen
> außerhalb der Spezifikation.

Das stimmt leider. Gibt es denn eine andere Möglichkeit, das Gerät 
extern zu bestromen und dennoch (korrekt) per USB zu verbinden?

Ein (USB) Isolator erscheint mir etwas teuer dafür?
Gast #6492616
Lesenswert?

Ja, natürlich könnte ich vom USB 5V einfach 3.3V für den MCU generieren. 
Dann würde der erst ein mal funktionieren. Jetzt habe ich aber noch eine 
Menge an anderem Kram auf dem Board, welches auch 3.3V aber eben bis zu 
4W benötigt.

Das würde dann mein Problem auf diese Seite verschieben, wenn im Betrieb 
die 12V wegfallen, würden die SPI & I2C Chips plötzlich kein VCC mehr 
haben und an ihren Eingängen außerhalb der Spezifikationen betrieben 
werden?

Zudem lese ich:

• Self-powered applications: platforms providing their own power supply 
and acting as an upstream port on
the cable insertion. Not allowed, under any condition, to draw any 
current from the USB interface.

• Bus-powered applications: a platform supplied only through VBUS and 
acting as an upstream port.


Entweder ganz oder gar nicht? (3.1.1. vs. 3.1.2.)
Gast #6492622
Lesenswert?

Erwin schrieb:
> Ja, natürlich könnte ich vom USB 5V einfach 3.3V für den MCU generieren.
> Dann würde der erst ein mal funktionieren. Jetzt habe ich aber noch eine
> Menge an anderem Kram auf dem Board, welches auch 3.3V aber eben bis zu
> 4W benötigt.

Der muss ja nicht zwingend an den gleichen 3,3V hängen.

Freilich musst du dir dann Gedanken darüber machen, wie du den µC vor zu 
viel Spannung von dieser Peripherie schützt. Dort ist es aber oft 
leichter als am USB Bus, wo strenge Anforderungen an Layout und 
Widerstände gelten.

Oder du nimmst einen größeren STM32, der für USB einen separaten VDDUSB 
Pin hat.
Gast #6492649
Lesenswert?

Stefan ⛄ F. schrieb:
> Oder du nimmst einen größeren STM32, der für USB einen separaten VDDUSB
> Pin hat.

Das wird glaube ich nicht einfacher: When the VDDUSB is connected to a 
separated power supply, it is independent from VDD or VDDA, but it must 
be the last supply to be provided and the first to be removed.

Ich werde mir das noch mal in Ruhe überlegen, wie ich das jetzt 
anstellen werde. Vielen Dank aber für deine Hinweise :)
#6492689
Lesenswert?

Erwin schrieb:
> Gibt es denn eine andere Möglichkeit, das Gerät
> extern zu bestromen und dennoch (korrekt) per USB zu verbinden?

Es kommt darauf an, wofür USB benutzt wird. Wenn ein virtueller COM-Port 
ausreicht, nehme ich einen FT230XS und 2 Optokoppler. Der FT230XS (und 
nur der) wird Bus Powered betrieben, die eigentliche Schaltung nur mit 
dem externen Netzteil.

Das funktioniert absolut korrekt und sehr zuverlässig, egal, in welcher 
Reihenfolge ein- und ausgesteckt wird. Bonus: keine Masseschleife 
zwischen Maschine und PC-Schutzleiter.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren