STM32F4 Clocks

OP #2721195
Hallo,

also ich hab mal ein paar Fragen zu den Clocks der STM32F4.
Nach dem Reset wird der Interne Takt verwendet also alle Clocks = 16MHz?
Was passiert wenn ich ausversehen die aktuelle Clock-Source abschalte? 
Läuft er dann wieder mit internem Takt weiter (ClockException-Handler?)
Was ist HCLK?

Wäre sehr hilfreich wenn ihr mir die Fragen beantworten könntet.

Moritz
#2721204
Moritz M. schrieb:
> Nach dem Reset wird der Interne Takt verwendet also alle Clocks = 16MHz?

Nach dem Reset ist der HSI aktiv (High Speed, intern).

> Was passiert wenn ich ausversehen die aktuelle Clock-Source abschalte?
> Läuft er dann wieder mit internem Takt weiter (ClockException-Handler?)

So ist der Plan. Das habe ich zwar noch nicht getestet, aber für solche 
Fälle gibt es diese Exception. Ob sie auftritt, wenn du es 
softwareseitig umschaltest, oder nur wenn der Quarz ausfällt, weiss ich 
gerade nicht.

> Was ist HCLK?

High speed clock
HCLK ist dein Systemtakt, der aus HSI, HSE, PLL... gewonnen wird, je 
nach Konfiguration.

> Wäre sehr hilfreich wenn ihr mir die Fragen beantworten könntet.

Kein Problem.
#2721421
Hi,

im "Reference Manual" ab Seite 84 sind die clocks beschrieben. Auf Seite 
85 ist der "Clock Tree" auch graphisch dargestellt. Anhand dessen kann 
man die clocks des Controllers finde ich ganz gut verstehen (Bei mir 
wars jedenfalls so, allderdings beim STM32F1).

lg much

edit: hier der link zum manual: 
http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/REFERENCE_MANUAL/DM00031020.pdf
OP #2721558
Hallo,

also ich hab einfach mal ein bisschen rumprobiert. Anscheinend geht es 
nicht, dass man einfach den Takt abdreht. Ich hab es einfach mit 
folgendem Programm mal getestet:
1
#include "stm32f4xx.h"
2

3
int main(void)
4
{
5
  SystemInit();
6
//Hier läuft der Controller mit 168MHz durch PLL und externem HSE-Quarz von 8MHz
7

8
  RCC_HSEConfig(RCC_HSE_OFF);
9

10
  SystemCoreClockUpdate();
11

12
  RCC_ClocksTypeDef RCC_Clocks;
13
  RCC_GetClocksFreq(&RCC_Clocks);
14
//Hier sind es immer noch 168MHz
15
    while(1)
16
    {
17
    }
18
}
Gast #2721566
>also ich hab einfach mal ein bisschen rumprobiert. Anscheinend geht es
>nicht, dass man einfach den Takt abdreht. Ich hab es einfach mit
>folgendem Programm mal getestet:

Schliess doch mal den Quarz kurz;)
OP #2721573
Hallo,

>> Schliess doch mal den Quarz kurz;)

also mir geht es erstmal nur um die Software.



Ist HCLK = AHB1, AHB2, AHB3 ??
Im Datenblatt steht nichts von HCLK.
HCLK ist nicht der Systemtakt, da HCLK = SYSCLK / Div_XX
und SYSCLK ist der Systemtakt.

Moritz

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.