STM32L4 Power supply design

OP #5934510
Lesenswert?

Hallo,
ich möchte eine Platine mit STM32L4 designen. Da ich VCC und AVCC des 
Controllers mit unabhängigen Spannungsversorgungen beschalte, wollte ich 
gern eine Funktion einplanen, die mir die beiden Spannungen sequenziert 
ein- und abschaltet. In diesem Datenblatt auf Seite 21/22 (Das Diagramm) 
ist nämlich zu lesen, dass es da einen "verboten Zustand" der 
Versorgungsspannungen gibt:
https://www.mouser.de/datasheet/2/389/stm32l431cb-956249.pdf
Während VCC <1V, darf AVCC maximal VCC + 0,3V betragen.
Wenn VCC >1V sind die Spannungen unabhängig.

Kann mir mal jemand erklären, wie das auf Seite 21 mit dem Entladen der 
"decoupling-capacitors" gemeint ist? Ich nehme an, der MCU entlädt die 
AVCC und VCC Kapazitäten mit unterschiedlicher Geschwindigkeit, um mit 
AVCC unter dem im Diagramm zu sehenden "Totbereich" 0,3V über'm 
fallenden VCC zu kommen - irgendwie so? aber könnte mir das noch mal 
jemand detaillierter übersetzen? Was hat denn das mit den 1mJ zu tun? 
Das wird da ja im Zusammenhang beschrieben, nur scheinen das für mich 
zwei unterschiedliche Funktionen zu sein, ein mal, dass VCC unter die 
anderen Spannungen fallen darf, solange die Aufnahme das MCU 1mJ nicht 
übersteigt, aber was DARAN erlaubt es jetzt die 
Entkopplungskondensatoren unterschiedlich schnell zu entladen? Werden 
die mit 1mJ entladen?


Für die Einschaltphase der Spannungen wollte ich also einen 
Spannungsregler mit "power-good-pin" nehmen, und ebendiesen Pin an den 
enable Pin des zweiten Reglers schalten. So würde AVCC erst einschalten, 
wenn die VCC Spannung von ~3.3V erreicht wäre, also weit über der 1V 
Grenze. Passt soweit, vorher brauche ich die Analoge Spannung auch 
nicht, und so wäre das Einschalten schon mal sicher sequenziert. Denkbar 
wäre auch ein Spannungsteiler an der Ausgangsspannung des ersten 
Reglers, so hätte ich über das variieren des Spannungsteilers eine 
änderbare Schaltschwelle, oder sogar ein Fester Komparator für zwei 
Schaltschwellen, falls den nicht schon der Enable-Pin des zweiten 
Reglers implementiert). Zumindest Wollte ich wie beschrieben so die 
Start Sequenz sicherstellen.
Spricht bis hier irgendetwas dagegen?




Ich möchte aber noch eine weitere Sicherheit in Hardware implementieren:
In dem (Fehler-)Fall aber, dass VCC unter 1,71V abfällt (darunter läuft 
der Kern nicht mehr), und AVCC nicht vorher ordnungsgemäß von der 
Shutdown-Routine abgeschaltet wurde, hätte ich gerne noch eine Funktion 
(Notbremse), die AVCC möglichst schnell abschaltet. Der MCU könnte es ja 
dort nicht mehr, und bliebe AVCC eingeschaltet, während VCC fiele, 
entstünde wieder ein verbotener Zustand. Dagegen also was in Hardware.

Sicherlich kann man per Software fünf VCC Spannungs-Schwellen 
einstellen, bei deren Unterschreiten ein Interrupt generiert werden 
könnte, der AVCC garantiert rechtzeitig abschaltet! Und das würde auch 
solange niemand an der Software rumfrickelt funktionieren.
Ich möchte aber eine "Idioten-Funktion", sprich: wenn irgendein Idiot 
(ich) zu doof war das Ganze so zu programmieren, dass es sicher 
herunterfährt, dann soll trotzdem immer mittels Hardware sichergestellt 
sein, dass die Spannungen in nicht-schädlicher Reihenfolge ein- und 
ausgeschaltet werden, und der MCU nach so einem Fehler nicht hinüber 
ist.
Ich möchte da nämlich einiges probieren, die STM32L4 bringen eine Menge 
interessanter Funktionen zum Energie-Management mit, und die Platine 
soll mein Experimentierboard werden, sodass ich also bei der Planung 
auch davon ausgehen möchte, dass das Ding mal falsch programmiert wurde, 
oder irgendwo  ein Fehler passiert.

Aber wie mache ich das? Wie kriege ich, wenn ein rasch fallendes VCC 
auffällt, das AVCC Signal schnell und sicher unter das des VCC + 0,3V?
Kann ich die Kapazität von AVCC einfach mit einem Transistor auf GND 
ziehen und so entladen? Im Datenblatt steht ja, wenn die Funktionen von 
AVCC nicht genutzt werden, soll man sie auf VCC schalten. Aber darf im 
aus- bzw. shutdown Modus AVCC auf GND gezogen werden, oder spricht da 
was dagegen?
Man könnte auch beim Fallen von VCC unter 1.71V, die AVCC-Versorgung 
trennen und den AVCC-Pin mit VCC zusammenlegen, das würde in jedem Fall 
verhindern dass AVCC >= VCC +0,3V, ginge dann ja nicht mehr.

Ich kanns mir ja eigentlich schon fast selber denken, aber ich frage 
trotzdem nochmal:
Zwischen MCU und Entkopplungskondensator zu trennen ist wohl in jedem 
Fall nicht ratsam, weil diese Kondensatoren dann nicht mehr nah genug am 
MCU sind, da noch Pins und die interne Elektronik der highside-switches 
und lange Leiterbahnen mit ihren dazugehörigen parisitären Effekten 
zwischen hängen?

Gibt es vielleicht extra Spannungsregler mit Unterbrechungsfunktion, die 
die Entladung der Kapazitäten automatisch und schnell machen?

Wie würdet ihr das Vorhaben in Hardware implementieren, wenn ihr 
solltet?

Habe glaube ich erst mal genug erklärt was ich vor habe, ich hoffe Ihr 
habt ein paar Tipps!
OP #5934568
Lesenswert?

Mw E. schrieb:
> Warum willst du da jetzt mit 2 Quellen ran?

Ich wollte mir ein möglichst umfangreiches Power-Experimentier-Board mit 
Analogen Schutz-Funktionen und Power-Sequencing entwerfen, um damit die 
Funktionen des STM32L4 auszuprobieren.
Als ich gelesen habe, dass man AVCC und VCC unabhängig versorgen kann, 
dachte ich, dass es auch auch Sinn macht dies zu tun.

Da das unabhängige Versorgen des AVCC und VCC doch ein sinnloses 
Vorhaben scheint, weil der Tiefpass auch reicht, und das auch gar keine 
Vorteile bietet, widme ich mich lieber sinnvollen Herausforderungen.


Eigentlich hatte ich vor, zum Experimentieren einen STM32 einzusetzen, 
an dem man direkt den Core über einen Pin versorgen kann, während die 
internen Linearregler des STM32 ausgeschaltet sind, um so einen extrem 
effizienter Betrieb zu erreichen, (solange der eingesetzte externe 
Regler effizienter als der ersetzte interne überbrückte LDO ist).
Vielleicht widme ich mich besser wieder dieser Aufgabe.
(Firma: fritzler-avr.de) #5935267
Lesenswert?

Ob sich das lohnt hängt davon ab wie oft der L4 rechnen muss.
Der ist ja auch nur stromsparend wenn er seine ganzen Schlafzustände 
ausspielen kann.

In denen ist der Stromverbrauch aber so gering, dass ein Schaltregler da 
alleine durch seine Umschaltverluste weniger Wirkungsgrad als ein LDO 
hat.
(wir reden hier von µA!)

Wenn man bereits die passende Kernspannung aus einem Schaltregler auf 
seinem Layout hat dann kann man damit auch den STM32 versorgen.
#5935673
Lesenswert?

Die Versorgung per Tiefpass reicht eigentlich aus. Bei der getrennten 
Versorgung des Cores muss das entsprechende Derivat ausgewählt werden, 
der das auch kann. Je nach Versorgung macht das aber nur selten 
sonderlich Sinn. Nur wenn es um extrem sparsamen Betrieb geht. Wenn das 
Ding eh fast die ganze Zeit pennt, bringt ein Schaltregler nicht 
sonderlich viel und macht nur Aufwand.

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