Forum: Mikrocontroller und Digitale Elektronik STM32F4 RTC zu schnell


von RTC (Gast)


Lesenswert?

Hallo, da ein Problem das nächste jagt wende ich mich nochmals an die 
Community.

Mittlerweile habe ich dank der Tipps die RTC auch zum laufen gebracht
mit plausiblen Werten, nur leider läuft sie etwas zu schnell, obwohl die
Prescaler laut Datenblatt richtig gesetzt wurden.
Ist die Abweichung erfahrungsgemäß wirklich so groß, dass bei der Wahl
des LSI Taktes die RTC nach einer Minute schon 4 Sekunden zu schnell
ist?
Da ich das erste mal mit der RTC arbeite, kann ich die Abweichungen noch
nicht wirklich einschätzen.
1
void ur_sh_rtc_init(void){
2
3
  RTC_InitTypeDef  RTC_InitStructure;
4
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
5
6
  PWR_BackupAccessCmd(ENABLE);
7
8
  RCC_BackupResetCmd(ENABLE);
9
  RCC_BackupResetCmd(DISABLE);
10
11
  RCC_LSICmd(ENABLE);
12
13
  while(RCC_GetFlagStatus(RCC_FLAG_LSIRDY) == RESET)  { }
14
15
  RCC_RTCCLKConfig(RCC_RTCCLKSource_LSI);
16
17
  RCC_RTCCLKCmd(ENABLE);
18
19
  RTC_WaitForSynchro();
20
21
  //Prescaler wählen
22
  //LSI = 32 kHz    127      249      1Hz
23
  RTC_InitStructure.RTC_AsynchPrediv = 127;
24
  RTC_InitStructure.RTC_SynchPrediv  = 249;    // (32KHz / 128) - 1 = 249
25
  RTC_InitStructure.RTC_HourFormat   = RTC_HourFormat_24;
26
  RTC_Init(&RTC_InitStructure);
27
28
}

von Noch einer (Gast)


Lesenswert?

32kHz? Es sind 32768Hz, genau 2^15.

Bei falscher Lastkapazität bekommst du Abweichungen von so etwa 1 
Sekunde pro Stunde.

von RTC (Gast)


Lesenswert?

Hm okay, ich bin von 32kHz ausgegangen, da dass im

http://www.st.com/web/en/resource/technical/document/application_note/DM00025071.pdf

Seite 9 Tabelle 3 stand. Oder hat sich das mittlerweile geändert?

von Schaulus Tiger (Gast)


Lesenswert?

RTC schrieb:
> Hm okay, ich bin von 32kHz ausgegangen, da dass im
>
> 
http://www.st.com/web/en/resource/technical/document/application_note/DM00025071.pdf
>
> Seite 9 Tabelle 3 stand. Oder hat sich das mittlerweile geändert?

Nein, aber genau unter der Tabelle steht auch:

"For STM32F2xx and STM32F4xx, LSI = 32 KHz, but LSI accuracy is not 
suitable for calendar application."

und laut Datenblatt (lesenswert!) darf der LSI um ±47 Prozent 
abweichen. Du hast also ein ziemlich gutes Exemplar erwischt ;)

Spendier' einen richtigen RTC-Chip, soviel Platz muss sein.

von RTC (Gast)


Lesenswert?

+- 47%? ach du heilige... :/
Na dann wird mir einiges klar...
Aber mal so ne Off-Topic Frage,
wenn der LSI soviel Abweichung mit sich bringen kann, wofür sollte man 
das Teil dann verwenden?

von ttl (Gast)


Lesenswert?

den kann man kalibrieren, gibt ne AppNote dazu
außerdem kann man den verwenden wenn man Energie sparen muss

von ttl (Gast)


Lesenswert?

außerdem braucht man für sicherheitsrelevante System 2 Oszillatoren, der 
Watchdog benutzt den auch

von (prx) A. K. (prx)


Lesenswert?

Schaulus Tiger schrieb:
> Spendier' einen richtigen RTC-Chip, soviel Platz muss sein.

Ein Uhrenquarz tät schon reichen. Der LSI ist ein interner 
R/C-Oszillator, da wäers ein Wunder wenn der für eine Uhr reicht.

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.