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!