STM32 RTC friert ein, wenn der Strom ausgeschaltet ist

Ich verwende ein STM32F745VGT6-Benutzerboard mit Keil µVision 5. Ich möchte den internen RTC-Kalender mit der internen Uhr (LSI) verwenden.

Meine Frage ist: erste Uhr einschalten Start 02:00:00 dann läuft die Zeit. Zum Beispiel, wenn die Zeit 02:05:00 ist, schalte ich plötzlich die Energie aus (schalte die Energie für V dd , nicht für V Battery ab ) und warte dann 10 Minuten. Nach dem Einschalten ist die Uhr immer noch 02:05:00. Ich stecke fest. Es ist so nervig.

Ich liefere eine unterbrechungsfreie 3,3-Volt-BIOS-Batterie an STM 6.Pin (V Batt ), wie im beigefügten Bild. Wenn ich die Batterie entferne, beginnt jedes Ausschalten und Einschalten mit 02:00:00. Ich glaube also, dass V Batt funktioniert.

Batterieschaltung

Antworten (2)

Ich möchte den internen RTC-Kalender mit der internen Uhr (LSI) verwenden.

Es wird nicht funktionieren. Aus dem Referenzhandbuch

4.1.3 Batterie-Backup-Domäne

Beschreibung der Sicherungsdomäne

Um den Inhalt der RTC-Sicherungsregister und des SRAM zu sichern und die RTC zu versorgen, wenn V DD ausgeschaltet ist, kann der Pin V BAT mit einer optionalen Standby-Spannung verbunden werden, die von einer Batterie oder einer anderen Quelle geliefert wird. Damit die RTC auch dann funktioniert, wenn die digitale Hauptversorgung (V DD ) ausgeschaltet ist, versorgt der V BAT - Pin die folgenden Blöcke mit Strom:

  • Der RTC
  • Der LSE-Oszillator
  • Das Backup-SRAM, wenn der Low-Power-Backup-Regler aktiviert ist
  • PC13 bis PC15 I/Os plus PI8 I/O (wenn verfügbar)

Das Umschalten auf die V BAT -Versorgung wird durch den in den Reset-Block eingebetteten Power-Down-Reset gesteuert.

Leider ist die LSI-Uhr nicht auf der Liste, deshalb stoppt sie und die RTC, wenn V DD weg ist.

Ich möchte den internen RTC-Kalender mit der internen Uhr (LSI) verwenden.

Ich denke deswegen geht es nicht. Gemäß AN4759 Using Hardware Real-Time Clock (RTC) in Low-Power Modes with STM32 Microcontrollers , Seite 36/51 können wir die folgende Aussage lesen :

Verwenden des richtigen Leistungsreduzierungsmodus

Abhängig von den Anwendungsbeschränkungen, wie dem maximalen oder durchschnittlichen Stromverbrauch, der Häufigkeit des Aufwachens oder alternativ der maximalen Aufwachzeit, können mehrere Niedrigleistungsmodi verwendet werden. Das RTC-Peripheriegerät kann in den folgenden Energiesparmodi aktiv sein :

  • Schlafmodus
  • Run-Modus mit geringem Stromverbrauch
  • Energiesparmodus
  • Stoppmodus, wenn die RTC-Uhr von LSE oder LSI(a) bereitgestellt wird
  • Standby-Modus, wenn die RTC-Uhr von LSE oder LSI bereitgestellt wird
  • Abschaltmodus, wenn die RTC-Uhr von LSE(b) bereitgestellt wird

Da Sie das LSI verwenden, ist der niedrigste Energiemodus, der für Ihr RTC-Peripheriegerät erreichbar ist, der Standby-Modus. Der Abschaltmodus wird erreicht, wenn Sie Ihr System ausschalten (auch wenn Sie VBAT angeschlossen haben), was in Ihrem Fall der Fall ist.

Die Tatsache, dass VBAT angeschlossen ist, ermöglicht es Ihnen, den RTC-Wert beizubehalten, bevor Sie die Hauptstromversorgung abschalten, aber hier, die Tatsache, dass Sie die LSI-Stromversorgung des RTC-Peripheriegeräts verwenden, ändert sich der Wert nicht.

Wenn Sie erreichen möchten, was Sie wollen (die RTC funktioniert auch dann, wenn die Hauptstromversorgung ausgeschaltet ist, ABER mit angeschlossenem VBAT), müssen Sie die LSE verwenden.