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
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.
Hallo Moritz, lies Dir mal, wenn du magst, die Kommentare in folgender Datei durch https://github.com/jkerdels/stm32edu/blob/master/src/rcc.c Dort geht es Schritt für Schritt durch die Initialisierung des Clock-Trees... Viele Grüße, Jochen
Kurze Ergänzung: Die dort angegebenen Referenzen in eckigen Klammern sind hier https://github.com/jkerdels/stm32edu/blob/master/src/main.c definiert. Grüße, Jochen
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
Von STM gibt es ein ganz brauchbares Tool für die F4-Clocks (Excel-Tabelle): http://www.st.com/internet/com/SOFTWARE_RESOURCES/TOOL/CONFIGURATION_UTILITY/stm32f4_clockconfig.zip Es kann auch gleich die passende "system_stm32f4xx.c" erzeugen.
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 | }
|
>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;)
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.