STM32f4 Blink-LED Clock auf 168MHz

OP #4714937
Lesenswert?
• ▲
▼
Hallo,
ich habe mir das STM32f401 Discovery Board zugelegt und versuche mich 
gerade an diesem einfachen Einstiegsbeispiel, welches bei der CooCox 
Installationsanleitung enthalten ist:

http://www.mikrocontroller.net/articles/STM32_CooCox_Installation

Leider lässt sich bei mir die Clock nicht auf 168 MHz einstellen.

Das Board besitzt einen 8 MHz Quarz, ich habe system_stm32f4xx.c und 
stm32f4xx.h so modifiziert wie in der Anleitung vorgegeben, die main.c 
mit #include "system_stm32f4xx.h" erweitert und am Anfang der main() 
SystemInit(); aufgerufen. Ohne SystemInit(); funktioniert das Beispiel 
mit dem Internen Quarz. Mit SystemInit(); tut sich nichts. Ich habe auch 
mal den Debugger laufen lassen. Dieser landet dann in einer 
Endlosschleife in einem File namens: startup_stm32f4xx.s

Alle Screenshots befinden sich im Anhang. Ich bin echt gespannt wo mein 
Fehler liegt...

Viele Grüße,

Tom
Angehängte Dateien:
Gast #4714975
Lesenswert?
• ▲
▼
Tom P. schrieb:
> Leider lässt sich bei mir die Clock nicht auf 168 MHz einstellen.

Wo stellst du die denn bzw. versuchst es?
In CubeMX lässt sie sich entsprechend einstellen.

Bei dir fehlt noch die "SystemClockInit()" (oder so ähnlich).
Die kann man wunderbar mit CubeMX erzeugen und enthält die Einstellungen 
für die PLL und Vorteiler.

Und Programmcode kann man als .h, .c, .cpp oder wie auch immer als 
Textdatei hier anhängen.
Persönliche Seite #4714985
Lesenswert?
• ▲
▼
Hast Du denn die PLLs in der system_stm32f4xx.c eingestellt bzw 
kontrolliert ob das stimmt? HAst Du auch die PLL über die RCC 
eingestellt (RCC->PLLCFGR).
Konsultiere das Datenblatt und berechne dir die Werte mit dem CubeMX 
aus.

Danach:
1
SystemInit();
2
SystemCoreUpdate();
3
SysTick_Config(SystemCoreClock/10000);

Toggle nun mit dem SysTick_Handler.

Gruß
Daniel
OP #4716573
Lesenswert?
• ▲
▼
Hallo,
vielen Dank für eure Hilfe!

Ich habe mir CubeMX zugelegt und dort die die Werte für die PLLs 
berechnet. Die Werte konnte ich dann in "system_stm32f4xx.c" eintragen. 
Ansonsten musste ich nichts verändern.

Mit folgenden Werten läuft mein uC nun mit 84 MHz:

#define PLL_M      4
#define PLL_N      84
#define PLL_P      2

Viele Grüße,

Tom

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.