Forum: Mikrocontroller und Digitale Elektronik STM32 - 5V tolerante Pins bei Startup


von Heiko F. (heiko50)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,
das Thema 5V - tolerante Pins am STM32 wurde in diesem schönen Forum ja 
schon häufiger besprochen. Zu meiner konkreten Frage habe ich allerdings 
noch nichts gefunden.
Laut Datenblatt des Stm32F405xx ist für die 5V toleranten Pins ein 
maximum Rating von "V_DD+4V" angegeben [Kap. 5.2, Seite 78]. Kritisch 
sollte daher die Situation sein, wenn an einem 5V-toleranten Pin bereits 
5V anliegen, während V_dd vorübergehend noch bei 0V liegt. Dies könnte 
ja beispielsweise beim Einschalten auftreten. Diese Thematik wird auch 
in der AN4899 "GPIO electrical characteristics and definitions" von ST 
beschrieben [Seite 17ff]. Als Abhilfe wird empfohlen parallel zum LDO 
(der aus der 5V Versorgung die 3,3V Versorgung erzeugt) eine Zenerdiode 
mit Begrenzungswiderstand zu schalten (siehe 
5V_Tolerant_LDO_Solution.png).

In meiner konkreten Situation soll die 5V Spannung durch ein 
Buck-Converter (LM2575) und daraus wiederum durch einen LDO (LDL1117) 
die 3,3V für den STM32 erzeugt (siehe Supply_Circuit.png). Die 5V werden 
unmittelbar über einen Pull-up Widerstand an einem 5V toleranten Pin des 
STM32 anliegen. Kritisch ist also der Zeitraum, an dem die 5V bereits 
anliegen, der LDO jedoch noch nicht die 3,3 erzeugt hat. Aus dem 
Datenblatt des LDOs (siehe LDO.pdf) gibt es zwar eine Figure 22 zur 
Turn-On Time, diese ist aber so verschwommen, dass ich leider nichts 
erkennen kann.

Ist meine Sorge überhaupt begründet? Steigt die 5V Spannung nicht 
ohnehin vermutlich wesentlich langsamer als die 3.3V wegen der 
wesentlich größeren Tiefpassverhaltens am Ausgang des Buck Converters?

Ich bin für jede Antwort dankbar und wünsche allen einen schönen 
Sonntag!

Viele Grüße,
Heiko

von Gerd E. (robberknight)


Lesenswert?

Heiko F. schrieb:
> Die 5V werden
> unmittelbar über einen Pull-up Widerstand an einem 5V toleranten Pin des
> STM32 anliegen.

Ist das ein Eingang am STM32? Dann könntest Du einfach einen 
Spannungsteiler verwenden, der dafür sorgt, daß da bei 5V in nie mehr 
als 3.3V out rauskommen.

Wenn es am STM32 ein Ausgang mit Open-Drain ist, könntest Du einfach 
einen kleinen N-FET verwenden, z.B. BSS138.

> Ist meine Sorge überhaupt begründet?

Ich würde sagen ja. Die Pins an den STM32 sind merklich empfindlicher 
als man es z.B. von früher von den Atmegas kennt. Ich würde darauf 
achten, die Abs. Max. Ratings jederzeit einzuhalten, auch schon kurze 
Überschreitungen können die Pins töten.

> Steigt die 5V Spannung nicht
> ohnehin vermutlich wesentlich langsamer als die 3.3V wegen der
> wesentlich größeren Tiefpassverhaltens am Ausgang des Buck Converters?

Und was passiert wenn der LDO z.B. wegen einem Kurzschluss woanders in 
Strombegrenzung geht?

von Stefan F. (Gast)


Lesenswert?

Heiko F. schrieb:
> Ist meine Sorge überhaupt begründet?

Ja

> Steigt die 5V Spannung nicht
> ohnehin vermutlich wesentlich langsamer als die 3.3V wegen der
> wesentlich größeren Tiefpassverhaltens am Ausgang des Buck Converters?

Deine Skizze verstehe ich so, dass die 3,3V aus den 5V gewonnen werden. 
Wenn dieser 4V erreicht hat, kann dein LDO auch schon ein paar Volt 
liefern, dann bist du im grünen Bereich.

Allerdings: Wenn an deinem LDO eine große Kapazitive Last hängt, könnte 
es zu lange dauern. Das ist eng verwandt mit Gerds Frage:

Gerd E. schrieb:
> Und was passiert wenn der LDO z.B. wegen einem Kurzschluss woanders in
> Strombegrenzung geht?

Da ich mich nicht imstande fühle, so etwas durch zu rechnen, würde ich 
die entsprechenden Eingänge des Mikrocontrollers mit Widerständen 
schützen und dann in der startenden Schaltung nachmessen.

Soweit mir bekannt ist, kann bei zu hoher Eingangsspannung (relativ zur 
Versorgungsspannung) ein ungewollter Strom durch eine parasitäre Diode 
im ADC fließen. Was mit Strombegrenzungs-Widerstand nicht weiter 
tragisch ist.

Dann gibt es da noch eine ESD Schutzschaltung die bei mehr als 5,5V 
auslösen kann und sie wie ein Thyristor verhält. Sie zieht den Eingang 
dann herunter und bleibt in diesem Zustand hängen, bis man den Chip 
Stromlos macht. Auch das ist mit  Strombegrenzungs-Widerstand nicht 
weiter tragisch.

Die Application Note AN4899 enthält dazu weitere Infos: 
https://www.st.com/content/ccc/resource/technical/document/application_note/group0/13/c0/f6/6c/29/3b/47/b3/DM00315319/files/DM00315319.pdf/jcr:content/translations/en.DM00315319.pdf

von Heiko F. (heiko50)


Lesenswert?

Gerd E. schrieb:
> Ist das ein Eingang am STM32? Dann könntest Du einfach einen
> Spannungsteiler verwenden, der dafür sorgt, daß da bei 5V in nie mehr
> als 3.3V out rauskommen.
>
> Wenn es am STM32 ein Ausgang mit Open-Drain ist, könntest Du einfach
> einen kleinen N-FET verwenden, z.B. BSS138.

Hallo Gerd,
vielen Dank für die ausführliche Antwort!
Es handelt sich in einem Fall um einen einfachen Eingang. Hier werde ich 
vorsichtshalber den Spannungsteiler einbauen.
Bei dem anderen Anschluss handelt es sich um einen I2C-Bus (SCL und 
SDA). Bei SDA wäre es daher bidirektional, daher ist es hier leider 
etwas komplizierter.

Gerd E. schrieb:
> Und was passiert wenn der LDO z.B. wegen einem Kurzschluss woanders in
> Strombegrenzung geht?

Das ist ein sehr guter Punkt. Prinzipiell ist die Schaltung aber so 
ausgelegt, dass "eigenltich" kein Kurzschluss auftreten sollte. Der LDO 
kann aber natürlich trotzdem bspw. in die Temperaturbegrenzung laufen 
oder einfach kaputt gehen. Da werde ich nochmal drüber nachdenken 
müssen.

Vielen Dank für die Antwort nochmals!

von Heiko F. (heiko50)


Lesenswert?

Hallo Stefan,
auch dir vielen Dank für die Antwort!

Stefan ⛄ F. schrieb:
> Deine Skizze verstehe ich so, dass die 3,3V aus den 5V gewonnen werden.
> Wenn dieser 4V erreicht hat, kann dein LDO auch schon ein paar Volt
> liefern, dann bist du im grünen Bereich.
>
> Allerdings: Wenn an deinem LDO eine große Kapazitive Last hängt, könnte
> es zu lange dauern.

Das verstehst du soweit richtig. An dem LDO hängt prinzipiell nur die 
Ausgangskapazität von 4,7uF und dann ausschließlich der Mikrocontroller 
mit seinen Entkopplungskondensatoren. Eine große kapazitive Last erwarte 
ich daher nicht.

Stefan ⛄ F. schrieb:
> Da ich mich nicht imstande fühle, so etwas durch zu rechnen, würde ich
> die entsprechenden Eingänge des Mikrocontrollers mit Widerständen
> schützen und dann in der startenden Schaltung nachmessen.

Begrenzungswiderstände an den Eingängen existieren soweit, diese können 
jedoch nicht beliebig hoch gewählt werden. Ich habe leider weder im 
Datenblatt noch in der Application Note genauere Angaben gefunden, wie 
groß der Strom über die Schutz-Dioden werden darf und ab welcher 
Spannung sie einschreiten. Hast du da Werte gefunden? In meiner I2C 
Verbindung kann ich mir leider keine Serienwiderstände im KiloOhmbereich 
erlauben.

@Stefan & Gerd
Habt ihr allgemein eine Meinung zu der Möglichkeit mit der 
parallelgeschalteten Zenerdiode zum LDO aus der Application Note von ST, 
die ich im Eingangspost erwähnt habe? Gegen einen Kurzschlüss würde 
diese auch nicht helfen, aber ggf. beim Einschalten und falls der LDO in 
die Temperaturbegrenzung geht?

Viele Grüße und vielen Dank nochmals!

von Stefan F. (Gast)


Lesenswert?

Heiko F. schrieb:
> Ich habe leider weder im
> Datenblatt noch in der Application Note genauere Angaben gefunden, wie
> groß der Strom über die Schutz-Dioden werden darf und ab welcher
> Spannung sie einschreiten. Hast du da Werte gefunden?

Iinj -5 / +0 mA

Positive injection is not possible on these I/Os. A negative injection 
is induced by V IN <V SS . I INJ(PIN) must never be exceeded. Refer to 
Table 11 for the values of the maximum allowed input voltage.

Mifft.

von Heiko F. (heiko50)


Lesenswert?

Stefan ⛄ F. schrieb:
> Iinj -5 / +0 mA
>
> Positive injection is not possible on these I/Os. A negative injection
> is induced by V IN <V SS . I INJ(PIN) must never be exceeded. Refer to
> Table 11 for the values of the maximum allowed input voltage.

Hm, also darf überhaupt kein positiver Strom fließen im Falle eines zu 
hohen V_in. Das ist natürlich eine recht strenge Anforderung an den 
Eingangswiderstand ... Misst trifft es ganz gut.

EDIT
Bleibt noch die Aussage aus der Application Note, dass sie eine 
Zenerdiode zwischen der 5V und 3,3V-Domäne empfehlen.

"If it occurs that VDD=0V while VDDX=5V (even transient), it is 
recommended to place a Zenner diode (for instance 3.3V) between VDD and 
VDDX.In the example shown in Figure9, VDD is the output of the LDO 
supplied by VDDX."

Seite 19
https://www.st.com/content/ccc/resource/technical/document/application_note/group0/13/c0/f6/6c/29/3b/47/b3/DM00315319/files/DM00315319.pdf/jcr:content/translations/en.DM00315319.pdf

Ich würde das vielleicht mal ausprobieren mit einer Zener-Diode und 
einem kleinen Begrenzungswiderstand parallel zu dem LDO, der den 
Kondensator auf der 3,3V Seite in 100us auf die erforderlichen 1V 
auflädt.

: 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.