Hallo, ich habe aktuell ein Programm für den µC STM32F411 der zur Zeit seinen internen Oscillator verwendet und bei 25 MHz läuft. Im nächsten Schritt möchte ich gerne die Oszillatofrequenz auf 100 MHz heraufschrauben. Dazu müsste ich einen externen Oszillator verwendet. -> Muss hierbei darauf geachtet werden, dass der Oszillator eine bestimmte Frequenzstabilität hat? z.B. maximal 25ppm ? Andernfalls läuft der µC vielleicht nicht rund? Ansonsten hätte ich mir jetzt irgendeinen genommen z.B. http://www.farnell.com/datasheets/1363942.pdf und parallel dazu die 18pF Kondensatoren. Soweit so gut , der Oszillator ist eingebaut. Auf Seite 92 des Reference Manual steht das man bestimmte Register setzen muss, wenn man den externen Oszillator verwenden möchte. http://www.st.com/web/en/resource/technical/document/reference_manual/DM00119316.pdf Wiederum auf dieser Website steht das ich nur das das define von HSE_VALUE ändern muss http://stm32f4-discovery.com/2015/01/properly-set-clock-speed-stm32f4xx-devices/ Daraufhin habe ich in der "stm32fxx.h" nachgeschaut und dort ist geschrieben #if !defined (HSE_VALUE) #define HSE_VALUE ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */ #endif /* HSE_VALUE */ Was muss ich nun tun? Reicht es aus wenn ich den define Wert auf 100 MHz ändere #define HSE_VALUE ((uint32_t)100000000) ------------------------------------------------------------ Was möchte ich erreichen? Ich habe aktuell einen kleinen Rechenalgorithmus und dann werden die Daten über SPi ausgegeben. Leider dauert mir die Berechnung ein wenig zu lange, deswegen möchte ich den ARM höher takten.
Hallo Mirco, du kannst die 100MHz auch aus dem internen Takt erzeugen. Dazu musst du die PLL verwenden. Externe Quarze benötigst du nur um Timings genau einzuhalten (für z.B. Kommunikation, Audio, evtl. PWM). Generell empfehle ich dir die Verwendung der Software STM32CubeMX. Dort kannst du deinen Clock-Tree grafisch konfigurieren und dir anschauen wie ST das in C-Code umsetzt (bzw. den Code von da verwenden).
Carsten schrieb: > Hallo Mirco, > du kannst die 100MHz auch aus dem internen Takt erzeugen. Dazu musst du > die PLL verwenden. > Externe Quarze benötigst du nur um Timings genau einzuhalten (für z.B. > Kommunikation, Audio, evtl. PWM). Ich würde gerne nachher eine kleine Timing Geschichte machen. Aktuell bekomme ich auch meine SPi Frequenz von 48 MHz aus meinem SPI1 Register. Ich bin nämlich noch unschlüssig ob ich das Programm komplett neu schreibe werde bzw. umschreibe muss weil ich schon fertige Funktionen wie "*.write()" für SPI verwende. Hierfür muss ich aber die "mbed.h" einbinden und wenn ich das zusammen mit der "stm32Fxx.c" einbinde bekomme ich nur error Meldungen, in der bestimmte variablen doppelt vorkommen. https://github.com/mbedmicro/mbed/blob/master/libraries/mbed/targets/cmsis/TARGET_STM/TARGET_STM32F4XX/system_stm32f4xx.c Habe gerade hier gesehen das ich einfach nur den PLL_M umändern muss. > Generell empfehle ich dir die Verwendung der Software STM32CubeMX. Dort > kannst du deinen Clock-Tree grafisch konfigurieren und dir anschauen wie > ST das in C-Code umsetzt (bzw. den Code von da verwenden). Ach, cool. dann probiere ich das mal aus. Ist mir bis jetzt noch nicht aufgefallen...
Mirco K. schrieb: > ich habe aktuell ein Programm für den µC STM32F411 der zur Zeit seinen > internen Oscillator verwendet und bei 25 MHz läuft. Das glaube ich erst einmal nicht. HSE_VALUE steht normalerweise bei 25 MHz, damit auch mit einem z.B. 8 MHz Quarz der µC nicht übertaktet wird. Sieh genau in Deine Startup-Datei; dort wird sicherlich schon auf 100 MHz geschaltet.
m.n. schrieb: > Das glaube ich erst einmal nicht. > HSE_VALUE steht normalerweise bei 25 MHz, damit auch mit einem z.B. 8 > MHz Quarz der µC nicht übertaktet wird. > Sieh genau in Deine Startup-Datei; dort wird sicherlich schon auf 100 > MHz geschaltet. Ja, habe nachgeschaut. Mein Fehler! Das stimmt soweit auch. Da ich mit dem online Editor mbed arbeite wollte ich euch fragen wie ich folgendes Problem lösen kann. Ich würde gerne speziell nur in der SPI LIb einige Funktionen auskommentieren und nicht verwenden. Im Online mbed sind leider die einzelnen Libs nicht selektierbar :/ oder doch ?
>Ich würde gerne speziell nur in der SPI LIb einige Funktionen >auskommentieren und nicht verwenden. Wozu? Unbenutzte Funktionen werden vom Linker nicht dazugelinkt. Sie fressen also keinen Speicher weil weg.
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.