5V Toleranz am VBUS-Sensoreingang

8

Ich entwerfe ein Gerät um den STM32L476. Mein Gerät ist hauptsächlich batteriebetrieben, verfügt jedoch über einen USB-Anschluss, den ich nach dem Anschließen als alternative Stromquelle (über einen 3,3-V-Regler) verwenden möchte, um den Batterieverbrauch zu begrenzen. Es ist auch möglich, dass der Benutzer den USB-Anschluss anschließt, ohne dass Batterien vorhanden sind.

Ich möchte erkennen können, wann der USB-Anschluss angeschlossen ist, daher verwende ich PA9 als OTF_FS_VBUS.

Die gute Nachricht : Das Datenblatt besagt, dass der PA9-Pin 5 V tolerant ist.

Die schlechte Nachricht : 5V-tolerante Pins scheinen tatsächlich nur dann 5V-tolerant zu sein, wenn Strom angelegt wird. Datenblatt §6.2 Tabelle 18 sagt:

Maximale Eingangsspannung an FT_xxx-Pins: min (VDD, VDDA, VDDIO2, VDDUSB, VLCD) + 4,0 V.

In meinem Fall, wenn keine Batterien vorhanden sind und der Benutzer den USB-Anschluss anschließt, gibt es eine Zeit vor dem Start des Reglers, in der die Spannung an PA9 5 V beträgt, während an den CPU-Versorgungsstiften überhaupt keine Stromversorgung anliegt.

Die noch schlechtere Nachricht : Strominjektion ist nicht erlaubt: Datenblatt §6.2, Tabelle 19, sagt:

Eingespritzter Strom an FT_xxx: -5 / + 0 (siehe Anmerkung 4)

Anmerkung 4: Eine positive Injektion wird durch VIN> VDDIOx induziert, während eine negative Injektion durch VIN <VSS induziert wird. IINJ (PIN) darf niemals überschritten werden.

Es scheint also, dass ich keinen einfachen Widerstand verwenden kann, um den Überstrom an PA9 während des Startvorgangs des Reglers zu begrenzen. Jegliche Strommenge, die von VBUS zu PA9 fließen würde, bevor der VDD hochfährt, ist anscheinend verboten.

Was haben die anderen gemacht?

Ich habe mir zahlreiche Designs rund um STM32-Chips angesehen, ihre VBUS-Verbindungen, und sie scheinen sich nicht darum zu kümmern. Sie verbinden VBUS direkt mit PA9 oder schließlich über einen Widerstand, aber ich habe nie etwas Komplizierteres gesehen. Aber es handelt sich meistens um Entwicklungsboards, daher denke ich, dass die Robustheit (ist das ein Wort?) Nicht sehr wichtig ist. Und sie werden normalerweise nicht über den USB-Anschluss mit Strom versorgt. Es wird davon ausgegangen, dass der Benutzer den USB-Anschluss nicht anschließt, bevor er die Karte mit Strom versorgt.

Was ist mein Plan?

Legen Sie dies zwischen VBUS am USB-Anschluss und dem PA9-Pin der MCU:

VBUS-Schutz

Ich habe wirklich versucht, es einfach zu halten. Grundsätzlich wird sichergestellt, dass VUSB_CPU (der PA9-Pin) niemals über VCPU + 4 V (Vz + Vbe) liegen kann, ohne Strom zu verbrauchen, wenn dies in Ordnung ist.

Meine Hauptfragen sind : Habe ich Recht mit meiner Analyse? Ist diese Schaltung eine gute Lösung? Sorge ich mich um Dinge, die irrelevant sind? Warum scheint sich sonst niemand um dieses potenzielle Problem zu kümmern?

Zusätzliche Frage : Ich plane USB OTG zu verwenden. Ist das ein Problem, wenn sich zwischen dem Stecker und dem PA9-Pin ein 4,7-k-Widerstand befindet? Ich denke, es wäre, wenn ich während der SRP VBUS-Impulse verwenden müsste, aber diese Methode ist anscheinend veraltet. Bin ich also gut, unabhängig von der Rolle (Gerät / Host) meines Geräts?

Ein letzter : Was ist der maximale Strom, der vom VDDUSB-Versorgungsstift gezogen wird? Das Datenblatt gibt für das USB-Peripheriegerät Folgendes an: 16,4 µA / MHz für die AHB-Taktdomäne + 23,2 µA / MHz für die unabhängige Taktdomäne, aber wir wissen nicht, woher es stammt (VDD oder VDDUSB).

trübe verlorenes Vertrauen in SE
quelle
Eine andere PA9-Schutzoption wäre, einen Mos-Schalter zwischen die USB + 5V und PA9 zu legen und dann das Gate des Schalters mit dem Ausgang des Reglers anzusteuern.
Mark
Warum nicht einen Widerstandsteiler verwenden? 430k und 630k geben Ihnen 3,3 V am Pin.
B Degnan
Ein Widerstandsteiler löst das Einspritzproblem jedoch nicht. Der Teiler speist 3,3 Volt in den Stift ein, bevor das Teil eingeschaltet wird.
Mark
Ich verstehe aus dem Datenblatt, dass der Pin 4 V aushalten kann, auch wenn er ausgeschaltet ist (ist das richtig?). Ein Widerstandsteiler wäre also eine gute Lösung, würde aber dauerhaft Strom ziehen. Ich habe vergessen zu erwähnen, dass ich diesbezüglich enge Einschränkungen habe.
schwächer verlorenes Vertrauen in SE

Antworten:

4

Verwenden Sie den Widerstandsteiler (430k / 620k) für Vbus - dies hält den Mikrocontroller auf dem neuesten Stand, und die parasitäre Stromaufnahme ist kein Problem, da er ausschließlich von Vbus und nicht von der Batterie stammt (was auch immer der Fall ist) Ich nehme an, Sie möchten sparen).

ThreePhaseEel
quelle
Dumm von mir ... Ich habe den Widerstandsteiler wegen des Stromverbrauchs ausgeschlossen, aber meine Argumentation war offensichtlich unvollständig. In der Tat ist es kein Problem, Strom aus vbus zu beziehen. Warum macht niemand das in seinen Brettern? ST selbst (Discovery Board), Olimex, ...? Ich verstehe diesen Punkt immer noch nicht.
schwächer verlorenes Vertrauen in SE
0

Die wahrscheinlich einfachste Methode ist die Verwendung eines hochohmigen Widerstands (10-100 k), der einen größeren Kondensator (ein paar uF oder mehr) speist, so dass es einige Zeit dauert, bis die Spannung ansteigt. Ich würde mir keine Sorgen um den Bruchteil eines Volt machen, der baut sich über dem Kondensator auf, während der Regler startet. Wenn das Mikro einen ESD-Schutz hat, können die Eingänge 5-10 V für einige zehn US-Dollar verarbeiten

Sam
quelle
Das klingt großartig ... aber nur, bis Sie darüber nachdenken, was passiert, wenn die Stromversorgung unterbrochen wird. Der Kondensator kann die Situation tatsächlich verschlimmern, als nur den großen Widerstand zu haben - der Widerstand kann nicht viel Strom liefern, der geladene Kondensator jedoch.
Chris Stratton
Könntest du es durch einen kleinen Zener fahren? In diesem Abschnitt des Datenblattes stand VDD + 4V, oder? Wenn Sie einen Zener hätten, der die Schiene auf weniger als VDD + 4V absenkt, wäre das in Ordnung?
Sam
Ich visualisiere Ihren Zener-Vorschlag ohne Schaltplan nicht gut. Aber wenn die Lösung die gleiche Komplexität wie meine hat (3 billige diskrete Komponenten), werde ich nicht viel gewinnen.
schwächer verlorenes Vertrauen in SE
Grundsätzlich gilt: Eingang-> Zener-> PA9, Zener in Reihe mit dem Eingang im Gegensatz zu einem Vorwiderstand, Zener fällt ein oder zwei Volt ab, sodass die Spannung an PA9 immer etwas niedriger ist. Wenn die Entwickler-Boards sie nur binden, ist es wahrscheinlich in Ordnung. Ich denke, die Warnungen gelten möglicherweise nach dem Einschalten der MCU. Überprüfen Sie, ob es einen Abschnitt zur Stromsequenzierung oder zum Startverhalten gibt.
Sam
1
@ Tom das ist eigentlich mein Hauptproblem. Ich habe nachgesehen, sie machen nichts. PA9 ist direkt mit dem VBUS über den USB-Anschluss (nicht einmal über einen Widerstand) auf der Discovery-Demokarte verbunden. Wenn ich also nichts verpasst habe, steht dies im völligen Widerspruch zum Datenblatt. Mein Problem ist nicht wirklich die Schutzschaltung an sich. Ich denke, meine Lösung kann die Arbeit erledigen, auch wenn sie sicherlich verbessert werden kann. Um ehrlich zu sein, ist mein Hauptproblem nur: Ist das alles wirklich notwendig?
Dim verlorenes Vertrauen in SE