Forum: Mikrocontroller und Digitale Elektronik STM32F103 und Standbymode


von Arne (Gast)


Lesenswert?

Servus zusammen,

ich rätsel gerade über den Standby-Modus des STM32F103 rum. Im Manual 
RM0008 steht im Kap. 4.3.5 u.a.:
"The microcontroller exits Standby mode when an external Reset (NRST 
pin), IWDG Reset, a rising edge on WKUP pin or an RTC alarm occurs."
Ich mache das Aufwecken über einen RTC Alarm.
Weiterhin steht im Manual:
"After waking up from Standby mode, program execution restarts in the 
same way as after a Reset..."
Und da komme ich ins Grübeln. Im Standbymode führt er ja keinen Code 
aus, da die 1.8V Domain ja stromlos ist. Nun wacht er auf und die 1.8V 
Domain ist immer noch stromlos.
Dann kann er ja keinen Kaltstart machen. Was passiert dann? Geht er dann 
sofort wieder in den Standbymode?

Thanx, Arne

von Marcus H. (mharnisch) Benutzerseite


Lesenswert?

> Nun wacht er auf und die 1.8V Domain ist immer noch stromlos. Dann kann er
> ja keinen Kaltstart machen.

Warum nicht? Woraus schließt Du das alles?

"After waking up from Standby mode, program execution restarts in the 
same way as after a Reset (boot pins sampling, vector reset is fetched, 
etc.). The SBF status flag in the Power control/status register 
(PWR_CSR) indicates that the MCU was in Standby mode."

Gruß
Marcus
http://www.doulos.com/arm/

von Arne (Gast)


Lesenswert?

Hallo Marcus,

> Warum nicht? Woraus schließt Du das alles?
In der 1.8V Domain liegt doch die ALU mit Registern.
Siehe Kap. 4.1 Figure 4
Da werden "Core memories digital peripherals" der 1.8V Domain 
zugeordnet. Wie kann er Code ausführen ohne ALU?

thanx, Arne

von (prx) A. K. (prx)


Lesenswert?

Woraus schliesst du, dass er die 1,8V nicht wieder einschaltet?

von Arne (Gast)


Angehängte Dateien:

Lesenswert?

Anbei mal die Zeichnung aus dem Manual.
Ich interpretiere das so, dass ich die Backupdomain entweder per VBAT 
oder per VDD versorgen kann.
Für VBAT ist also der blaue Pfad gültig, der grüne nicht. Sonst bräuchte 
ich VDD ja gar nicht und könnte alles immer über VBAT versorgen.

bye, Arne

von (prx) A. K. (prx)


Lesenswert?

Das heisst, dass die Backup-Domain automatisch von Vbat versorgt wird, 
wenn Vdd nicht genug hergibt. Das hat aber keinen Bezug zur 
urspünglichen Frage.

von Arne (Gast)


Lesenswert?

> Woraus schliesst du, dass er die 1,8V nicht wieder einschaltet?
Es steht halt nicht explizit so im Manual. Ausserdem hätte das sicher 
gravierende Auswirkungen auf den Strombedarf. Bei 8MHz braucht er so 
6-8mA,
im Standbymode so 2µA. Mehr als Faktor 1000.
Abgesehen davon interpretiere ich die Zeichnung so, dass VBAT die 1,8V 
Domain NICHT versorgen kann. Ist die Zeichnung falsch oder hab ich 
Tomaten auf den Augen?

bye, Arne

von (prx) A. K. (prx)


Lesenswert?

Arne schrieb:

>> Woraus schliesst du, dass er die 1,8V nicht wieder einschaltet?

> Es steht halt nicht explizit so im Manual.

Ein bischen Mitdenken hat STM fest ins Manual eingeplant ;-).

> Ausserdem hätte das sicher
> gravierende Auswirkungen auf den Strombedarf.

Klar doch. Aber es behauptet doch auch keiner, dass der auch nach dem 
Aufwachen aus dem Standby kaum Strom braucht.

> Abgesehen davon interpretiere ich die Zeichnung so, dass VBAT die 1,8V
> Domain NICHT versorgen kann. Ist die Zeichnung falsch oder hab ich
> Tomaten auf den Augen?

Das nicht, aber du stehst grad etwas auf der Leitung.

Zum Prozedere des Aufwachens gehört eben auch, den Spannungsregler für 
die 1,8V wieder aufzuwecken.

Eins ist hoffentlich klar: Ohne Vdd kein Aufwachen.

von Arne (Gast)


Lesenswert?

> Ein bischen Mitdenken hat STM fest ins Manual eingeplant ;-).

Heh.. das hab ich bei deren Lib und Manual auch eingeplant und bin damit 
"aufs Maul" gefallen ;)

Ich bohr meinen Testcode morgen mal auf, dass ich nach dem Aufwecken 
etwas über den UART rausjage (mit externem Pegelwandler und eigener 
Stromversorgung). Werde den Cortex nur über Vbat versorgen. Wenn an der 
Gegenstelle (PC) was ankommt, dann hast Du Recht und ich was 
dazugelernt.

> Das nicht, aber du stehst grad etwas auf der Leitung.
Okay, dann erklär mir doch bitte wie (lt. Zeichnung) die 1.8V Domain 
über Vbat versorgt werden kann, wenn ich Vdd nicht versorge.

Schönen Feierabend!

Gruß, Arne

von (prx) A. K. (prx)


Lesenswert?

Arne schrieb:

> Stromversorgung). Werde den Cortex nur über Vbat versorgen.

Prophezeihung: Ohne Vdd wacht er überhaupt nicht auf, sondern pennt 
seelenruhig weiter.

Grund: Die Logik, die ihn aufwecken lassen kann, hängt selbst an Vdd und 
arbeitet nicht gern ohne Strom. Dein gelber Pfeil ist kein gültiger 
Strompfad.

von Arne (Gast)


Lesenswert?

> Prophezeihung: Ohne Vdd wacht er überhaupt nicht auf, sondern pennt
> seelenruhig weiter.
Aha! Somit kann er auch keinen Kaltstart ausführen, wenn der RTC Alarm 
zuschlägt. Sag ich doch die ganze Zeit ;)

> Dein gelber Pfeil ist kein gültiger Strompfad.
Grün... grün ist die Farbe der Hoffnung. :)

Wenn ich den RTC Alarm so einstelle, dass er alle 60s aufwachen soll, 
ihm Vdd fehlt, hat er es in der Vergangenheit trotzdem geschafft den 
RTC-Counter weiter hochlaufen zu lassen. Die Uhrzeit hat er mir nach 
drei Tagen korrekt auf dem LCD angezeigt. Jetzt muss ich da nur noch das 
Datum entsprechend korrigieren.

Danke!

Gruß, Arne

von Soeren A. (abraxa)


Lesenswert?

> Wenn ich den RTC Alarm so einstelle, dass er alle 60s aufwachen soll,
> ihm Vdd fehlt, hat er es in der Vergangenheit trotzdem geschafft den
> RTC-Counter weiter hochlaufen zu lassen. Die Uhrzeit hat er mir nach
> drei Tagen korrekt auf dem LCD angezeigt.

Ich bin mir nicht sicher, was du uns damit sagen moechtest. In figure 
151 (RM0008) sieht man, dass der RTC counter auch in standby weiter 
laeuft - eben auch ohne VDD. Von daher ist dein Ergebnis nicht 
ueberraschend.

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.